diff options
author | Richie Zhang <12566991+StaticallyTypedRice@users.noreply.github.com> | 2020-05-11 10:16:08 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-11 13:16:08 -0400 |
commit | d17316508cd76c6e75f099731f6e5275298ece73 (patch) | |
tree | f20ed8d6391f9e6ecdd1c3306f3cdd4d44243183 /install.sh | |
parent | b83aae0b57f79f89c34d7dc9c3433fec64255e18 (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-x | install.sh | 73 |
1 files changed, 51 insertions, 22 deletions
@@ -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 |