-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathinstallScripts
More file actions
executable file
·130 lines (122 loc) · 3.17 KB
/
installScripts
File metadata and controls
executable file
·130 lines (122 loc) · 3.17 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/bash
set -e
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
cd $SCRIPT_DIR
echo -e "\033[34;1mInstalling $(basename $SCRIPT_DIR)...\033[0m"
ORIGINAL_ARGS=("$@")
# Argument flags
ARG_I3=0
ARG_NIRI=0
ARG_XFCE=0
ARG_NO_SUDO=0
ARG_ANDROID=0
ARG_WSL=0
ARG_SOFTLINKS=0
# Parse arguments
while [[ $# -gt 0 ]]; do
case "$1" in
-h|--help)
echo "Usage: ./installScripts [OPTIONS]"
echo ""
echo "Install scripts to ~/.bin directory."
echo ""
echo "Options:"
echo " -h, --help Show this help message"
echo " --i3 (Compatibility flag, no effect)"
echo " --niri (Compatibility flag, no effect)"
echo " --xfce (Compatibility flag, no effect)"
echo " -a, --android Install for Android/Termux environment"
echo " -w, --wsl Install for Windows Subsystem for Linux environment"
echo " --no-sudo Skip operations requiring sudo privileges"
echo " --link Create symlinks instead of copying files"
echo ""
exit 0
;;
--i3)
ARG_I3=1
shift
;;
--niri)
ARG_NIRI=1
shift
;;
--xfce)
ARG_XFCE=1
shift
;;
-a|--android)
ARG_ANDROID=1
shift
;;
-w|--wsl)
ARG_WSL=1
shift
;;
--no-sudo)
ARG_NO_SUDO=1
shift
;;
--link)
ARG_SOFTLINKS=1
shift
;;
*)
echo "Unknown option: $1"
echo "Use -h or --help for usage information"
exit 1
;;
esac
done
function isAndroid() {
if [[ $ARG_ANDROID == 1 ]]; then
return 0
fi
return 1
}
function isWSL() {
if [[ $ARG_WSL == 1 ]]; then
return 0
fi
return 1
}
function hasNoSudo() {
if [[ $ARG_NO_SUDO == 1 ]]; then
return 0
fi
return 1
}
function useSoftlinks() {
if [[ $ARG_SOFTLINKS == 1 ]]; then
return 0
fi
return 1
}
echo -e "\033[34;1mCopying scripts\033[0m"
cd $SCRIPT_DIR/ScriptsLinux
[ ! -d "$HOME/.bin" ] && mkdir -p $HOME/.bin
EXISTING=()
if isAndroid; then
echo -e "\033[33;1mDetected Android environment\033[0m"
EXISTING=($(ls /data/data/com.termux/files/usr/bin/))
else
if [[ -L /bin ]] && [[ "$(readlink -f /bin)" == "/usr/bin" ]]; then
EXISTING=($(ls /usr/bin/))
else
EXISTING=($(ls /bin/))
fi
fi
for FILE in $(rg --files --hidden); do
if [[ " ${EXISTING[*]} " =~ " ${FILE} " ]]; then
echo -e " \033[33mScript '$FILE' already present in /bin skipping\033[0m"
continue
fi
if useSoftlinks; then
echo -e " \033[2mLinking $FILE => ./ScriptsLinux/$FILE\033[0m"
rm -f $HOME/.bin/$FILE
ln -sf $SCRIPT_DIR/ScriptsLinux/$FILE $HOME/.bin/$FILE
else
echo -e " \033[2mCopying $FILE\033[0m"
rm -f $HOME/.bin/$FILE
cp $SCRIPT_DIR/ScriptsLinux/$FILE $HOME/.bin/$FILE
fi
done