diff options
Diffstat (limited to 'deploy.sh')
| -rwxr-xr-x | deploy.sh | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..17fc4ad --- /dev/null +++ b/deploy.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +set -e + +SCRIPT_DIR="$( cd "$( dirname "$BASH_SOURCE[0]" )" && pwd )" + +symlinkFile() { + filename="$SCRIPT_DIR/$1" + destination="$HOME/$2/$1" + + # mkdir -p $(dirname "$destination") + + if [ -L "$destination" ]; then + echo "[WARNING] $filename already symlinked" + return + fi + + if [ -e "$destination" ]; then + echo "[ERROR] $destination exists but it's not a symlink. Please fix that manually" + exit 1 + fi + + ln -s "$filename" "$destination" + echo "[OK] $filename -> $destination" +} + +deployManifest() { + for row in $(cat $SCRIPT_DIR/$1); do + if [[ "$row" =~ ^#.* ]]; then + continue + fi + + filename=$(echo $row | cut -d \| -f 1) + operation=$(echo $row | cut -d \| -f 2) + destination=$(echo $row | cut -d \| -f 3) + + case $operation in + symlink) + symlinkFile $filename $destination + ;; + + *) + echo "[WARNING] Unknown operation $operation. Skipping..." + ;; + esac + done +} + +# Only useful if you want to have multiple MANIFESTS, +# otherwise just hardcode it +# +#if [ -z "$@" ]; then +# echo "Usage: $0" +# echo "ERROR: no MANIFEST file is provided" +# exit 1 +#fi + +deployManifest "./MANIFEST" + |
