forked from Tormak9970/bash-shortcuts
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdeploy.sh
67 lines (53 loc) · 1.69 KB
/
deploy.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
echo "[TASK]: Loading config..."
unclean_output=$(<.vscode/settings.json)
prepped_output="${unclean_output//[\s\{\}\" ]/""}"
IFS=',:' read -r -a tmps <<< $prepped_output
deck_ip="${tmps[1]}"
deck_port="${tmps[3]}"
deck_home_dir="${tmps[5]}/Desktop/dev-plugins/Shortcuts"
echo "[INFO]: Loaded config"
echo ""
echo "[TASK]: Deploying plugin to deck..."
function scpDirRecursive() {
# $1 from dir
# $2 to dir
files=($(ls $1))
if ssh -q deck@$deck_ip "[ -d $2 ]"; then
for file in "${files[@]}"; do
if [ -d "$1/$file" ]; then
scpDirRecursive "$1/$file" "$2/$file"
else
diff=$(ssh deck@$deck_ip "cat $2/$file" | diff - $1/$file)
if [ "$diff" != "" ]; then
scp -P $deck_port $1/$file deck@$deck_ip:$2/$file
echo "[INFO]: Copied $1/$file to $2/$file"
else
echo "[INFO]: Skipping $1/$file. No changes detected."
fi
fi
done
else
scp -r -P $deck_port $1 deck@$deck_ip:$2
echo "[INFO]: Copied $1 to $2"
fi
}
#? Copy general files
echo "[TASK]: Copying general files..."
genFiles=(LICENSE main.py package.json plugin.json README.md)
for genFile in "${genFiles[@]}"; do
diff=$(ssh deck@$deck_ip "cat $deck_home_dir/$genFile" | diff - $genFile)
if [ "$diff" != "" ]; then
scp -P $deck_port $genFile deck@$deck_ip:$deck_home_dir/$genFile
echo "[INFO]: Copied ./$genFile to $deck_home_dir/$genFile"
else
echo "[INFO]: Skipping $genFile. No changes detected."
fi
done
#? Copy frontend
echo "[TASK]: Copying frontend..."
scpDirRecursive "./dist" "$deck_home_dir/dist"
#? Copy default files
echo "[TASK]: Copying defaults..."
scpDirRecursive "./defaults" "$deck_home_dir"
echo "[DONE]"