@@ -16,32 +16,35 @@ source lib/helper.sh
16
16
menu (){
17
17
18
18
target=" "
19
- move= " ~/ "
20
- write =false
19
+ __move= " "
20
+ __write =false
21
21
verbose=false
22
22
23
- while getopts " :t:r:mwvh " opt; do
23
+ while getopts " :t:r:m:wivh " opt; do
24
24
case $opt in
25
25
t)
26
- target=$OPTARG
26
+ target=" $OPTARG "
27
27
;;
28
28
r)
29
- rlstype=$OPTARG
29
+ rlstype=" $OPTARG "
30
30
;;
31
31
m)
32
- if [[ -d $OPTARG ]] && [[ ! -z $OPTARG ]]; then
33
- move=$OPTARG
34
- else
35
- move=$move
36
- fi
32
+ __move=" $OPTARG "
37
33
;;
38
34
w)
39
35
if $OPT ; then
40
- write=true
36
+ __write=true
37
+ printf ' %s\n' " Write mode: $__write "
41
38
else
42
- write=false
39
+ __write=false
40
+ fi
41
+ ;;
42
+ i)
43
+ if ! [[ $OPT ]]; then
44
+ __interactive=true
45
+ elif [[ $OPT ]]; then
46
+ __interactive=false
43
47
fi
44
- printf " Write mode: $write \n"
45
48
;;
46
49
h)
47
50
helpmsg
@@ -72,13 +75,13 @@ helpmsg(){
72
75
# just a simple help screen
73
76
# not valid anymore anyways
74
77
75
- echo -e " \n"
76
78
echo -e " \tideal.sh\n"
77
79
echo -e " \tUsage:"
78
80
echo -e " \t$0 -t /path/to/target -v\n"
79
81
80
82
echo -e " \t-m" " \t" " Directory to move broken releases into."
81
83
echo -e " \t-w" " \t" " Writable mode, default doesnt touch anything."
84
+ echo -e " \t-i" " \t" " When flag is passed interactive mode will be disabled."
82
85
echo -e " \t-v" " \t" " Toggles verbose output aka also printing successful."
83
86
echo -e " \t-r" " \t" " Specify type of release. ie: mp3 or movie."
84
87
echo -e " \t-h" " \t" " Prints this message.\n"
@@ -100,6 +103,8 @@ make_list_of_failed(){
100
103
rm $LOGPATH
101
104
touch $LOGPATH
102
105
fi
106
+
107
+ printf ' %s\n' " --------------------------------[ CORRUPT ]--------------------------------"
103
108
for BROKEN in ${failed[@]} ; do
104
109
if [ -d $BROKEN ]; then
105
110
echo -en " $BROKEN " " \n" >> $LOGPATH
@@ -109,6 +114,7 @@ make_list_of_failed(){
109
114
fi
110
115
done
111
116
117
+ printf ' %s\n' " -------------------------------[ INCOMPLETE ]------------------------------"
112
118
for INCOMPLETE in ${incomplete[@]} ; do
113
119
if [ -d $INCOMPLETE ]; then
114
120
echo -en " $INCOMPLETE " " \n" >> $LOGPATH
@@ -157,6 +163,88 @@ listfiles() {
157
163
}
158
164
159
165
166
+ create_temp_dir (){
167
+
168
+ # takes $1 param as output directory
169
+ # creates two sub dirs within that.
170
+
171
+ printf ' %s\n' " $1 "
172
+
173
+ if [[ ! -d " $1 " ]]; then
174
+ mkdir -p " $1 "
175
+ fi
176
+
177
+ if [[ ! -z " $1 " ]] && [[ -d $1 ]]; then
178
+ output=" $1 "
179
+ else
180
+ printf ' %s\n' " Something wrong with output directory. Quitting."
181
+ exit 1
182
+ fi
183
+
184
+ if [[ ! -z $2 ]]; then
185
+ new=" $output /$2 "
186
+ else
187
+ printf ' %s\n' " Seems to be missing an argument. Quitting."
188
+ exit 1
189
+ fi
190
+
191
+
192
+ if [[ ! -d " $new " ]]; then
193
+ printf ' %s\n' " $new does not exist, creating it."
194
+ mkdir -p " $new "
195
+ fi
196
+
197
+
198
+ }
199
+
200
+ move_broken (){
201
+
202
+ OLDIFS=$IFS
203
+ IFS=$( echo -en " \n\b" )
204
+
205
+
206
+ # mv_opt="-r"
207
+
208
+ # if [[ "$3" == true ]];then
209
+ # mv_opt="-ri"
210
+ # elif [[ "$3" == false ]];then
211
+ # mv_opt="-r"
212
+ # fi
213
+
214
+ # for all the corrupt releases
215
+ if [[ ${# failed[@]} == 0 ]]; then
216
+ printf ' %s\n' " broken rls: ${# failed[@]} "
217
+ else
218
+ for crpt in " ${failed[@]} " ; do
219
+ if [[ -d " ${crpt} " ]]; then
220
+ printf ' %s\n' " Moved $crpt to $__move /broken/"
221
+ mv " $crpt " " $__move /broken/"
222
+ else
223
+ printf ' %s\n' " Failed to remove: $crpt "
224
+ printf ' %s\n' " Did the folder move?"
225
+ fi
226
+ done
227
+ fi
228
+
229
+ # for all the incomplete releases
230
+ if [[ ${# incomplete[@]} == 0 ]]; then
231
+ printf ' %s\n' " incomplete rls: ${# incomplete[@]} "
232
+ else
233
+ for inco in " ${incomplete[@]} " ; do
234
+ if [[ -d " ${inco} " ]]; then
235
+ printf ' %s%s\n' " Moved $inco to $__move /incomplete"
236
+ mv " $inco " " $__move /incomplete/"
237
+ else
238
+ printf ' %s\n' " Failed to remove: $inco "
239
+ printf ' %s\n' " Did the folder move?"
240
+ fi
241
+ done
242
+ fi
243
+
244
+
245
+ IFS=${OLDIFS}
246
+ }
247
+
160
248
runnable (){
161
249
162
250
OLDIFS=$IFS
@@ -207,3 +295,18 @@ runnable(){
207
295
208
296
menu " $@ "
209
297
runnable " $target " " $rlstype "
298
+ if [[ ! -z " $__move " ]] && [[ " $__write " == true ]]; then
299
+ printf ' %s\n' " BEFORE $__move "
300
+
301
+ if [[ ! ${# broken[@]} == 0 ]]; then
302
+ create_temp_dir " $__move " " broken"
303
+ fi
304
+
305
+ if [[ ! ${# incomplete[@]} == 0 ]]; then
306
+ create_temp_dir " $__move " " incomplete"
307
+ fi
308
+
309
+ move_broken " ${failed[@]} " " ${incomplete[@]} " " $__move "
310
+ else
311
+ printf ' %s\n' " Requirements not met."
312
+ fi
0 commit comments