diff options
author | Charadon <charadon@charadon-gmpc.hsd1.ga.comcast.net> | 2022-07-14 02:59:17 -0400 |
---|---|---|
committer | Charadon <charadon@charadon-gmpc.hsd1.ga.comcast.net> | 2022-07-14 02:59:17 -0400 |
commit | bada5c05b7639adb110606de248760712b4d5255 (patch) | |
tree | 0ac6f22572baa39eacf941525c2379276eb2d251 | |
parent | dc9b88d10505c72d1559b1a65a86d3026fb6e334 (diff) | |
download | dscip-bada5c05b7639adb110606de248760712b4d5255.tar.gz |
Moved configurable variables to config.sh
-rw-r--r-- | config.sh | 24 | ||||
-rwxr-xr-x | dscip | 75 |
2 files changed, 51 insertions, 48 deletions
diff --git a/config.sh b/config.sh new file mode 100644 index 0000000..8da5c81 --- /dev/null +++ b/config.sh @@ -0,0 +1,24 @@ +# Variables that control the program. # +# GIT Repo # +DSCIP_GITREPO="https://www.example.com/example/example.git" +# GIT MODE: # +# pull: Doesn't delete previous clone and just pulls changes. # +# clone: Deletes previous clone, and creates a fresh clone. # +DSCIP_GITMODE="clone" +# Branch to check # +DSCIP_BRANCH="master" +WORKING_DIRECTORY="." +# Commands to run before building. # +DSCIP_PRE_CMD="$WORKING_DIRECTORY/pre.sh" +# Commands to run to build program. # +DSCIP_BUILD_CMD="$WORKING_DIRECTORY/build.sh" +# Commands to run after building is done. # +DSCIP_POST_CMD="$WORKING_DIRECTORY/post.sh" +# Daemon mode options # +DSCIP_DAEMON="false" # If daemon mode should be enabled or not. # +DSCIP_DAEMON_FORK="true" # If the daemon should run in the background. # +DSCIP_SLEEP="60" # How many seconds before the daemon re-runs itself. # +# etc # +DSCIP_DISREGARD_COMMIT_CHECK="false" # If the script should just rebuild even # +# if upstream has not updated. # +DSCIP_OUTPUT_TO="/dev/stdout" # Output to file, default is stdout. diff --git a/dscip b/dscip index 9621800..8d8b33c 100755 --- a/dscip +++ b/dscip @@ -17,45 +17,23 @@ ################################################################################ set -e - -# Variables that control the program. # -# GIT Repo # -DSCIP_GITREPO="https://www.example.com/example/example.git" -# GIT MODE: # -# pull: Doesn't delete previous clone and just pulls changes. # -# clone: Deletes previous clone, and creates a fresh clone. # -DSCIP_GITMODE="clone" -# Branch to check # -DSCIP_BRANCH="master" -WORKING_DIRECTORY="." -# Commands to run before building. # -DSCIP_PRE_CMD="$WORKING_DIRECTORY/pre.sh" -# Commands to run to build program. # -DSCIP_BUILD_CMD="$WORKING_DIRECTORY/build.sh" -# Commands to run after building is done. # -DSCIP_POST_CMD="$WORKING_DIRECTORY/post.sh" -# Daemon mode options # -DSCIP_DAEMON="false" # If daemon mode should be enabled or not. # -DSCIP_DAEMON_FORK="true" # If the daemon should run in the background. # -DSCIP_SLEEP="60" # How many seconds before the daemon re-runs itself. # -# etc # -DSCIP_DISREGARD_COMMIT_CHECK="false" # If the script should just rebuild even # -# if upstream has not updated. # +. "$(dirname "$0")/config.sh" ################################################################################ # Check if script is currently running, and if not, reset LOCK # -if [ -f $WORKING_DIRECTORY/LOCK ]; then - LOCKED_PID=$(cat $WORKING_DIRECTORY/LOCK) - if ps -U $USER -p "$LOCKED_PID"; then - echo "Script still running. Exiting..." +if [ -f "$WORKING_DIRECTORY/LOCK" ]; then + LOCKED_PID=$(cat "$WORKING_DIRECTORY/LOCK") + if ps -p "$LOCKED_PID"; then + echo "Script still running. Exiting..." 2>> "$DSCIP_OUTPUT_TO" exit 0 else - rm $WORKING_DIRECTORY/LOCK + echo "Script not running, resetting lock..." 2>> "$DSCIP_OUTPUT_TO" + rm "$WORKING_DIRECTORY/LOCK" fi fi -echo "$$" > $WORKING_DIRECTORY/LOCK +echo "$$" > "$WORKING_DIRECTORY/LOCK" if [ "$DSCIP_DAEMON" = "true" ]; then if [ "$DSCIP_DAEMON_FORK" = "true" ] && [ ! "$FORKED" = "true" ]; then @@ -67,38 +45,38 @@ fi build () { if [ "$DSCIP_GITMODE" = "clone" ]; then rm -rf "$WORKING_DIRECTORY/wrkdir" # Clean Up # - git clone -b $DSCIP_BRANCH $DSCIP_GITREPO wrkdir # Clone git # + git clone -b "$DSCIP_BRANCH" "$DSCIP_GITREPO" wrkdir 2>> "$DSCIP_OUTPUT_TO" # Clone git # elif [ "$DSCIP_GITMODE" = "pull" ]; then if [ ! -d "$WORKING_DIRECTORY/wrkdir" ]; then - git clone -b $DSCIP_BRANCH $DSCIP_GITREPO wrkdir + git clone -b "$DSCIP_BRANCH" "$DSCIP_GITREPO" wrkdir 2>> "$DSCIP_OUTPUT_TO" fi cd wrkdir - git pull + git pull 2>> "$DSCIP_OUTPUT_TO" else - echo "Invalid GITMODE, choose either 'clone' or 'pull'" + echo "Invalid GITMODE, choose either 'clone' or 'pull'" 2>> "$DSCIP_OUTPUT_TO" exit 1 fi - cd $WORKING_DIRECTORY/wrkdir - $DSCIP_PRE_CMD - cd $WORKING_DIRECTORY/wrkdir - $DSCIP_BUILD_CMD - cd $WORKING_DIRECTORY/wrkdir - $DSCIP_POST_CMD - mkdir -p $WORKING_DIRECTORY/meta - echo "$CURRENT_COMMIT" > $WORKING_DIRECTORY/meta/LAST_COMMIT # Save commit # + cd "$WORKING_DIRECTORY/wrkdir" + $DSCIP_PRE_CMD 2>> "$DSCIP_OUTPUT_TO" + cd "$WORKING_DIRECTORY/wrkdir" + $DSCIP_BUILD_CMD 2>> "$DSCIP_OUTPUT_TO" + cd "$WORKING_DIRECTORY/wrkdir" + $DSCIP_POST_CMD 2>> "$DSCIP_OUTPUT_TO" + mkdir -p "$WORKING_DIRECTORY/meta" + echo "$CURRENT_COMMIT" > "$WORKING_DIRECTORY/meta/LAST_COMMIT" # Save commit # } run () { - mkdir -p $WORKING_DIRECTORY - cd $WORKING_DIRECTORY + mkdir -p "$WORKING_DIRECTORY" + cd "$WORKING_DIRECTORY" # Loads last commit hash if it exists. # if [ -f "$WORKING_DIRECTORY/meta/LAST_COMMIT" ]; then - LAST_COMMIT="$(cat $WORKING_DIRECTORY/meta/LAST_COMMIT)" + LAST_COMMIT="$(cat "$WORKING_DIRECTORY/meta/LAST_COMMIT")" fi # Loads current commit hash # - CURRENT_COMMIT=$(git ls-remote $DSCIP_GITREPO | awk "/refs\/(heads|tags)\/$DSCIP_BRANCH/{print \$1}") + CURRENT_COMMIT=$(git ls-remote "$DSCIP_GITREPO" | awk "/refs\/(heads|tags)\/$DSCIP_BRANCH/{print \$1}") # If LAST_COMMIT doesn't exist, that means it's a first run and we can go ahead and build. # # Or skip the commit check if DSCIP_DISREGARD_COMMIT_CHECK is set to true. @@ -111,12 +89,13 @@ run () { else build fi - rm $WORKING_DIRECTORY/LOCK # Remove lock # + rm "$WORKING_DIRECTORY/LOCK" # Remove lock # + echo "Done." 2>> "$DSCIP_OUTPUT_TO" } run while [ "$DSCIP_DAEMON" = "true" ]; do - sleep $DSCIP_SLEEP + sleep "$DSCIP_SLEEP" run done |