From d17316508cd76c6e75f099731f6e5275298ece73 Mon Sep 17 00:00:00 2001 From: Richie Zhang <12566991+StaticallyTypedRice@users.noreply.github.com> Date: Mon, 11 May 2020 10:16:08 -0700 Subject: 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. --- install.sh | 73 +++++++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 51 insertions(+), 22 deletions(-) (limited to 'install.sh') 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 -- cgit v1.2.3