2
2
3
3
# ##################################################################################
4
4
# #
5
- # FTPGrab v4.2.4 #
5
+ # FTPGrab v4.3.0 #
6
6
# #
7
7
# Simple script to grab your files from a remote FTP server. #
8
8
# #
9
9
# MIT License #
10
- # Copyright (c) 2013-2017 Cr@zy #
10
+ # Copyright (c) 2013-2017 CrazyMax #
11
11
# #
12
12
# Permission is hereby granted, free of charge, to any person obtaining a copy #
13
13
# of this software and associated documentation files (the "Software"), to deal #
@@ -282,6 +282,7 @@ function ftpgrabProcess() {
282
282
local _SKIP_DL=0
283
283
local _RESUME=0
284
284
local _START_TIME=$( awk " BEGIN{srand();print srand()}" )
285
+ local _EXCLUDE=0
285
286
if [ ${_DEST_FILE: -1} == " /" ]
286
287
then
287
288
mkdir -p " $_DEST_FILE "
@@ -292,24 +293,42 @@ function ftpgrabProcess() {
292
293
ftpgrabAddLog " Hash: $_SRC_HASH "
293
294
ftpgrabAddLog " Size: $( ftpgrabGetHumanSize " $_SRC_FILE_PROC " ) "
294
295
295
- # Check validity
296
- local _DL_STATUS=$( ftpgrabIsDownloaded " $_SRC_FILE_PROC " " $_SRC_FILE " )
297
-
298
- if [ ${_DL_STATUS: 0: 1} -eq ${FILE_STATUS_NEVER_DL} ]
299
- then
300
- ftpgrabAddLog " Status: Never downloaded..."
301
- elif [ ${_DL_STATUS: 0: 1} -eq ${FILE_STATUS_SIZE_EQUAL} ]
302
- then
303
- local _SKIP_DL=1
304
- ftpgrabAddLog " Status: Already downloaded and valid. Skip download..."
305
- elif [ ${_DL_STATUS: 0: 1} -eq ${FILE_STATUS_SIZE_DIFF} ]
296
+ # Check exclude
297
+ if [ ! -z " $DL_EXCLUDE_REGEX " ]
306
298
then
307
- if [ " $DL_RESUME " == " 1" ]; then local _RESUME=1; fi
308
- ftpgrabAddLog " Status: Exists but sizes are different..."
309
- elif [ ${_DL_STATUS: 0: 1} -eq ${FILE_STATUS_HASH_EXISTS} ]
299
+ IFS=' ;' read -ra EXCLUDE_REGEX <<< " $DL_EXCLUDE_REGEX"
300
+ for _P in " ${EXCLUDE_REGEX[@]} " ; do
301
+ if $( echo " $_SRC_FILE_SHORT " | grep -Eq " ^$_P $" )
302
+ then
303
+ local _EXCLUDE=1
304
+ local _SKIP_DL=1
305
+ ftpgrabAddLog " Status: File skipped with exclude filter '$_P '..."
306
+ break
307
+ fi
308
+ done
309
+ fi
310
+
311
+ # Check validity
312
+ if [ " $_EXCLUDE " == " 0" ]
310
313
then
311
- local _SKIP_DL=1
312
- ftpgrabAddLog " Status: Hash sum exists. Skip download..."
314
+ local _DL_STATUS=$( ftpgrabIsDownloaded " $_SRC_FILE_PROC " " $_SRC_FILE " )
315
+
316
+ if [ ${_DL_STATUS: 0: 1} -eq ${FILE_STATUS_NEVER_DL} ]
317
+ then
318
+ ftpgrabAddLog " Status: Never downloaded..."
319
+ elif [ ${_DL_STATUS: 0: 1} -eq ${FILE_STATUS_SIZE_EQUAL} ]
320
+ then
321
+ local _SKIP_DL=1
322
+ ftpgrabAddLog " Status: Already downloaded and valid. Skip download..."
323
+ elif [ ${_DL_STATUS: 0: 1} -eq ${FILE_STATUS_SIZE_DIFF} ]
324
+ then
325
+ if [ " $DL_RESUME " == " 1" ]; then local _RESUME=1; fi
326
+ ftpgrabAddLog " Status: Exists but sizes are different..."
327
+ elif [ ${_DL_STATUS: 0: 1} -eq ${FILE_STATUS_HASH_EXISTS} ]
328
+ then
329
+ local _SKIP_DL=1
330
+ ftpgrabAddLog " Status: Hash sum exists. Skip download..."
331
+ fi
313
332
fi
314
333
315
334
# Check if download skipped and want to hide it in log file
@@ -501,6 +520,7 @@ DL_USER=""
501
520
DL_GROUP=" "
502
521
DL_CHMOD=" "
503
522
DL_REGEX=" "
523
+ DL_EXCLUDE_REGEX=" "
504
524
DL_RETRY=3
505
525
DL_RESUME=0
506
526
DL_SHUFFLE=0
@@ -553,7 +573,7 @@ mkdir -p "$HASH_DIR"
553
573
if [ ! -d " $HASH_DIR " ]; then ftpgrabEcho " ERROR: Cannot create dir $HASH_DIR with $( whoami) user" ; exit 1; fi
554
574
if [ ! -w " $HASH_DIR " ]; then ftpgrabEcho " ERROR: Dir $HASH_DIR is not writable by $( whoami) " ; exit 1; fi
555
575
556
- ftpgrabEcho " FTPGrab v4.2.4 ($BASENAME_FILE - $( date +" %Y/%m/%d %H:%M:%S" ) )"
576
+ ftpgrabEcho " FTPGrab v4.3.0 ($BASENAME_FILE - $( date +" %Y/%m/%d %H:%M:%S" ) )"
557
577
ftpgrabEcho " --------------"
558
578
559
579
# Check required packages
0 commit comments