summaryrefslogtreecommitdiff
path: root/deploy.sh
diff options
context:
space:
mode:
authoryuzu-eva <cafebabe@disroot.org>2025-05-08 14:01:37 +0200
committeryuzu-eva <cafebabe@disroot.org>2025-05-08 14:01:37 +0200
commitef7c1605a027b52bbff1b01ea693b60f53fa3a71 (patch)
tree1089334258aefbd459d18cf6968e78f1194739b0 /deploy.sh
initial commit
Diffstat (limited to 'deploy.sh')
-rwxr-xr-xdeploy.sh59
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"
+