|
@@ -27,11 +27,12 @@ main() {
|
|
|
local -a uris
|
|
|
|
|
|
# Parse our options; anything after '--' is for the backend
|
|
|
- while getopts ":hc:d:o:n:N:H:rf:u:q" OPT; do
|
|
|
+ while getopts ":hc:d:D:o:n:N:H:rf:u:q" OPT; do
|
|
|
case "${OPT}" in
|
|
|
h) help; exit 0;;
|
|
|
c) cset="${OPTARG}";;
|
|
|
d) dl_dir="${OPTARG}";;
|
|
|
+ D) old_dl_dir="${OPTARG}";;
|
|
|
o) output="${OPTARG}";;
|
|
|
n) raw_base_name="${OPTARG}";;
|
|
|
N) base_name="${OPTARG}";;
|
|
@@ -52,6 +53,13 @@ main() {
|
|
|
error "no output specified, use -o\n"
|
|
|
fi
|
|
|
|
|
|
+ # Legacy handling: check if the file already exists in the global
|
|
|
+ # download directory. If it does, hard-link it. If it turns out it
|
|
|
+ # was an incorrect download, we'd still check it below anyway.
|
|
|
+ if [ ! -e "${output}" -a -e "${old_dl_dir}/${filename}" ]; then
|
|
|
+ ln "${old_dl_dir}/${filename}" "${output}"
|
|
|
+ fi
|
|
|
+
|
|
|
# If the output file already exists and:
|
|
|
# - there's no .hash file: do not download it again and exit promptly
|
|
|
# - matches all its hashes: do not download it again and exit promptly
|