aboutsummaryrefslogtreecommitdiff
path: root/load_config.sh
diff options
context:
space:
mode:
Diffstat (limited to 'load_config.sh')
-rwxr-xr-xload_config.sh55
1 files changed, 55 insertions, 0 deletions
diff --git a/load_config.sh b/load_config.sh
new file mode 100755
index 0000000..ec59828
--- /dev/null
+++ b/load_config.sh
@@ -0,0 +1,55 @@
+#!/usr/bin/env bash
+
+# Ensure good argument is passed
+if [[ $# -ne 1 ]]; then
+ echo "Usage: $0 (desktop | laptop)"
+ exit 1
+elif [[ "$1" != "laptop" && "$1" != "desktop" ]]; then
+ echo "Target must be \"laptop\" or \"desktop\""
+ exit 1
+fi
+
+TARGET=$1
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
+make_dir() {
+ local dir="$1"
+ echo "mkdir -p $dir"
+ if ! mkdir -p "$dir" 2>/dev/null; then
+ echo "Failed - using sudo..."
+ sudo mkdir -p "$dir"
+ fi
+}
+
+copy_file() {
+ local src="$1"
+ local dest="$2"
+ echo "cp -a $src $dest"
+ if ! cp -a "$src" "$dest" 2>/dev/null; then
+ echo "Failed - using sudo..."
+ sudo cp -a "$src" "$dest"
+ fi
+}
+
+copy_to_disk() {
+ local root="$1"
+ cd "$root"
+
+ find . -mindepth 1 | while read -r node; do
+ # ./node -> /node
+ dest="${node#.}"
+
+ if [[ -d "$node" ]]; then
+ make_dir "$dest"
+ else
+ make_dir "$(dirname "$dest")"
+ copy_file "$node" "$dest"
+ fi
+ done
+}
+
+copy_to_disk "$SCRIPT_DIR/common"
+copy_to_disk "$SCRIPT_DIR/$TARGET"
+
+cd "$SCRIPT_DIR"
+echo "Done."