-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathkenobi
executable file
·169 lines (160 loc) · 8.02 KB
/
kenobi
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
#!/bin/bash
# Puny-Wan Kenobi - Updater & Permissions Editor
# Puny BuildTools, (c) 2024 Stefan Vogt
#
# version 1.3
echo "Puny-Wan Kenobi 1.3 - the update is strong with this one"
echo -e "Puny BuildTools, (c) 2024 Stefan Vogt\n"
if ! [ -d ~/FictionTools ]; then
echo -e "'FictionTools' folder not found in home directory. Aborting program.\n"
exit 1
fi
while getopts ':puhc' opts
do
case $opts in
u) # update
echo -e "initiating Puny BuildTools update [...]\n"
workingDir=$(pwd)
cd ~/FictionTools
git pull
cd "${workingDir}"
echo
exit 0
;;
c) # check permissions
echo -e "checking component permissions [...]\n"
workingDir=$(pwd)
cd ~/FictionTools
printf "puny CLI -> "
[ -x puny ] && printf "okay... executable bit is set\n" || printf "error... not executable\n"
printf "pi6 -> "
[ -x pi6 ] && printf "okay... executable bit is set\n" || printf "error... not executable\n"
printf "bundle.sh -> "
[ -x Templates/Resources/bundle.sh ] && printf "okay... executable bit is set\n" || printf "error... not executable\n"
printf "ifftool.sh -> "
[ -x ifftool.sh ] && printf "okay... executable bit is set\n" || printf "error... not executable\n"
printf "cpcscr.sh -> "
[ -x cpcscr.sh ] && printf "okay... executable bit is set\n" || printf "error... not executable\n"
printf "degaspi1.sh -> "
[ -x degaspi1.sh ] && printf "okay... executable bit is set\n" || printf "error... not executable\n"
printf "makescr.sh -> "
[ -x scrload/makescr.sh ] && printf "okay... executable bit is set\n" || printf "error... not executable\n"
echo -e "\nchecking a few module permissions [...]\n"
printf "dos.sh -> "
[ -x Templates/dos.sh ] && printf "okay... executable bit is set\n" || printf "error... not executable\n"
printf "amiga.sh -> "
[ -x Templates/amiga.sh ] && printf "okay... executable bit is set\n" || printf "error... not executable\n"
printf "all.sh -> "
[ -x Templates/Resources/all.sh ] && printf "okay... executable bit is set\n" || printf "error... not executable\n"
echo -e "\nShould you notice errors here or encounter issues regarding permissions"
echo -e "when working with the Puny BuildTools, run 'kenobi -p' to fix them."
cd "${workingDir}"
echo
exit 0
;;
p) # set permissions
echo -e "setting permissions may take a while [...]\n"
workingDir=$(pwd)
cd ~/FictionTools
echo "-> applying permissions to directories..."
find . -type d -exec chmod 0755 {} \;
echo "-> applying permissions to binaries and scripts..."
find . -type f -exec chmod 0755 {} \;
echo "-> applying permissions to files..."
find . -name "LICENSE" -exec chmod 0644 {} \;
find . -name "README" -exec chmod 0644 {} \;
find . -name "*.txt" -exec chmod 0644 {} \;
find . -name "*.md" -exec chmod 0644 {} \;
find . -name "*.c" -exec chmod 0644 {} \;
find . -name "*.h" -exec chmod 0644 {} \;
find . -name "*.asm" -exec chmod 0644 {} \;
find . -name "*.fnt" -exec chmod 0644 {} \;
find . -name "*.bin" -exec chmod 0644 {} \;
find . -name "*.dsk" -exec chmod 0644 {} \;
find . -name "*.DSK" -exec chmod 0644 {} \;
find . -name "*.cpm" -exec chmod 0644 {} \;
find . -name "*.adf" -exec chmod 0644 {} \;
find . -name "*.d64" -exec chmod 0644 {} \;
find . -name "*.d71" -exec chmod 0644 {} \;
find . -name "*.d81" -exec chmod 0644 {} \;
find . -name "*.EXE" -exec chmod 0644 {} \;
find . -name "*.exe" -exec chmod 0644 {} \;
find . -name "*.BAS" -exec chmod 0644 {} \;
find . -name "*.bas" -exec chmod 0644 {} \;
find . -name "*.CFG" -exec chmod 0644 {} \;
find . -name "*.BIN" -exec chmod 0644 {} \;
find . -name "*.BAT" -exec chmod 0644 {} \;
find . -name "*.bat" -exec chmod 0644 {} \;
find . -name "*.def" -exec chmod 0644 {} \;
find . -name "z3-*" -exec chmod 0644 {} \;
find . -name "*.png" -exec chmod 0644 {} \;
find . -name "*.dot" -exec chmod 0644 {} \;
find . -name "*.pdf" -exec chmod 0644 {} \;
find . -name "*.z3" -exec chmod 0644 {} \;
find . -name "*.z5" -exec chmod 0644 {} \;
find . -name "*.inf" -exec chmod 0644 {} \;
find . -name "*.info" -exec chmod 0644 {} \;
find . -name "*.zasm" -exec chmod 0644 {} \;
find . -name "*.rec" -exec chmod 0644 {} \;
find . -name "*.gif" -exec chmod 0644 {} \;
find . -name "*.out*" -exec chmod 0644 {} \;
find . -name "*.inc" -exec chmod 0644 {} \;
find . -name "*.yaml" -exec chmod 0644 {} \;
find . -name "*.transcript" -exec chmod 0644 {} \;
find . -name "*.yml" -exec chmod 0644 {} \;
find . -name "*.man" -exec chmod 0644 {} \;
find . -name "*.html" -exec chmod 0644 {} \;
find . -name "*.l" -exec chmod 0644 {} \;
find . -name "*.pu" -exec chmod 0644 {} \;
find . -name "*.lst" -exec chmod 0644 {} \;
find . -name "makefile" -exec chmod 0644 {} \;
find . -name "Makefile" -exec chmod 0644 {} \;
find . -name "*.dsp" -exec chmod 0644 {} \;
find . -name "*.svg" -exec chmod 0644 {} \;
find . -name "*.cpp" -exec chmod 0644 {} \;
find . -name "*.cmd" -exec chmod 0644 {} \;
find . -name "*.mingw" -exec chmod 0644 {} \;
find . -name "*.ans" -exec chmod 0644 {} \;
find . -name "*.bak" -exec chmod 0644 {} \;
find . -name "*.tmp" -exec chmod 0644 {} \;
find . -name "*.COM" -exec chmod 0644 {} \;
find . -name "*.com" -exec chmod 0644 {} \;
find . -name "*.old" -exec chmod 0644 {} \;
find . -name "*.OLD" -exec chmod 0644 {} \;
find . -name "*.vdk" -exec chmod 0644 {} \;
find . -name "dragondos_header" -exec chmod 0644 {} \;
find . -name "dragon_bytefill" -exec chmod 0644 {} \;
find . -name "*.prg" -exec chmod 0644 {} \;
find . -name "*.PRG" -exec chmod 0644 {} \;
find . -name "*.16" -exec chmod 0644 {} \;
find . -name "*.256" -exec chmod 0644 {} \;
find . -name "*.seq" -exec chmod 0644 {} \;
find . -name "*.APP" -exec chmod 0644 {} \;
find . -name "Makefile*" -exec chmod 0644 {} \;
chmod 644 .punyrc
chmod 644 .punywsl
chmod 644 .gitignore
chmod 644 Templates/Resources/config.sh
echo -e "-> done.\n"
cd "${workingDir}"
exit 0
;;
h)
echo -e "Provides updates via Git and uses the force to edit permissions.\n"
echo -e "Switches:"
echo -e " [kenobi -u] -> initate update"
echo -e " fetches the latest changes from the Puny BuildTools repository\n"
echo -e " [kenobi -c] -> check permissions"
echo -e " checks if the bundled applications have the right permissions\n"
echo -e " [kenobi -p] -> edit permissions"
echo -e " sets and fixes permissions for all bundled applications\n"
echo -e " [kenobi -h] -> show this help menu\n"
;;
*)
echo -e "Wrong argument passed.\nType: $(basename $0) [-h] for help.\n"
exit 0
;;
esac
done
if [ $OPTIND -eq 1 ]; then echo -e "Nothing to be done. No options passed. Use [-h] for help.\n"; fi
shift "$(($OPTIND -1))"