summaryrefslogtreecommitdiffstats
path: root/install.sh
diff options
context:
space:
mode:
authorRichie Zhang <12566991+StaticallyTypedRice@users.noreply.github.com>2020-05-11 10:16:08 -0700
committerGitHub <noreply@github.com>2020-05-11 13:16:08 -0400
commitd17316508cd76c6e75f099731f6e5275298ece73 (patch)
treef20ed8d6391f9e6ecdd1c3306f3cdd4d44243183 /install.sh
parentb83aae0b57f79f89c34d7dc9c3433fec64255e18 (diff)
Improve shell scripts (#705)
* Improve init-db.sh Allow custom database parameters. Abstract common functionality. * Improve install.sh Abstract common functionality. Ask to automagically reload the project when source files are changed.
Diffstat (limited to 'install.sh')
-rwxr-xr-xinstall.sh73
1 files changed, 51 insertions, 22 deletions
diff --git a/install.sh b/install.sh
index d84761a2..fb42b26d 100755
--- a/install.sh
+++ b/install.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
set -e
# Set the database variable to the default first.
@@ -10,25 +10,55 @@ export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
export JWT_SECRET=changeme
export HOSTNAME=rrr
+yes_no_prompt_invalid() {
+ echo "Invalid input. Please enter either \"y\" or \"n\"." 1>&2
+}
+
+ask_to_init_db() {
+ init_db_valid=0
+ init_db_final=0
+ while [ "$init_db_valid" == 0 ]
+ do
+ read -p "Initialize database (y/n)? " init_db
+ case "$init_db" in
+ [yY]* ) init_db_valid=1; init_db_final=1;;
+ [nN]* ) init_db_valid=1; init_db_final=0;;
+ * ) yes_no_prompt_invalid;;
+ esac
+ echo
+ done
+ if [ "$init_db_final" = 1 ]
+ then
+ source ./server/db-init.sh
+ read -n 1 -s -r -p "Press ANY KEY to continue execution of this script, press CTRL+C to quit..."
+ echo
+ fi
+}
+
+ask_to_auto_reload() {
+ auto_reload_valid=0
+ auto_reload_final=0
+ while [ "$auto_reload_valid" == 0 ]
+ do
+ echo "Automagically reload the project when source files are changed?"
+ echo "ONLY ENABLE THIS FOR DEVELOPMENT!"
+ read -p "(y/n) " auto_reload
+ case "$auto_reload" in
+ [yY]* ) auto_reload_valid=1; auto_reload_final=1;;
+ [nN]* ) auto_reload_valid=1; auto_reload_final=0;;
+ * ) yes_no_prompt_invalid;;
+ esac
+ echo
+ done
+ if [ "$auto_reload_final" = 1 ]
+ then
+ cd ui && yarn start
+ cd server && cargo watch -x run
+ fi
+}
+
# Optionally initialize the database
-init_db_valid=0
-init_db_final=0
-while [ "$init_db_valid" == 0 ]
-do
- read -p "Initialize database (y/n)? " init_db
- case "$init_db" in
- [yY]* ) init_db_valid=1; init_db_final=1;;
- [nN]* ) init_db_valid=1; init_db_final=0;;
- * ) echo "Invalid input. Please enter either \"y\" or \"n\"." 1>&2;;
- esac
- echo
-done
-if [ "$init_db_final" = 1 ]
-then
- source ./server/db-init.sh
- read -n 1 -s -r -p "Press ANY KEY to continue execution of this script, press CTRL+C to quit..."
- echo
-fi
+ask_to_init_db
# Build the web client
cd ui
@@ -39,6 +69,5 @@ yarn build
cd ../server
RUST_LOG=debug cargo run
-# For live coding, where both the front and back end, automagically reload on any save, do:
-# cd ui && yarn start
-# cd server && cargo watch -x run
+# For live coding, where both the front and back end, automagically reload on any save
+ask_to_auto_reload