From 0ec24ecaf29c23c1b8e3b4b9b5a10d09f2607fb5 Mon Sep 17 00:00:00 2001 From: sometimesuseful <> Date: Wed, 13 Nov 2024 15:13:24 +0000 Subject: [PATCH 1/6] remove unused function parameter --- modules/create_archive | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/create_archive b/modules/create_archive index 6f39fd0..a3b4672 100755 --- a/modules/create_archive +++ b/modules/create_archive @@ -73,7 +73,6 @@ create_archive() { local input_file="$1" local password="$2" local volumes="$3" - local size="$4" local archive_name="$5" 7z a -mhe=on "-p${password}" "$volumes" "$archive_name" "${input_file}" @@ -102,7 +101,6 @@ main() { "$input_file" \ "$password" \ "$volumes" \ - "$size" \ "$archive_name" log "NOTICE" "Archive created" From 42bf72e127abac2e16cfb6cb3168b8ea76db516b Mon Sep 17 00:00:00 2001 From: sometimesuseful <> Date: Wed, 13 Nov 2024 15:19:24 +0000 Subject: [PATCH 2/6] remove error handling for mkdir, it's unlikely to fail and the script would exit on error due to set -e anyway --- modules/create_archive | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/create_archive b/modules/create_archive index a3b4672..b9d00f2 100755 --- a/modules/create_archive +++ b/modules/create_archive @@ -88,7 +88,7 @@ main() { check_dependencies "7z" check_input "$input_file" "$password" "$size" - mkdir -p "$archive_dir" || { log "ERROR" "Unable to create archive directory"; exit 1; } + mkdir -p "$archive_dir" volumes="$(get_volumes "$input_file" "$size")" archive_name="$(generate_name)" From 34529d337265e1645c395ab38d4d8ab1cece276e Mon Sep 17 00:00:00 2001 From: sometimesuseful <> Date: Wed, 13 Nov 2024 15:21:02 +0000 Subject: [PATCH 3/6] move some things around for improved readability --- modules/create_archive | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/create_archive b/modules/create_archive index b9d00f2..bbb7efe 100755 --- a/modules/create_archive +++ b/modules/create_archive @@ -83,20 +83,19 @@ main() { local password="${2:-}" local size="${3:-}" local volumes archive_name archive_dir - archive_dir="$(dirname "$0")/../archives" check_dependencies "7z" check_input "$input_file" "$password" "$size" + archive_name="$(generate_name)" + archive_dir="$(dirname "$0")/../archives" mkdir -p "$archive_dir" volumes="$(get_volumes "$input_file" "$size")" - archive_name="$(generate_name)" - - trap 'cleanup "$archive_name"' ERR INT log "INFO" "Packing '${input_file}' into archive '$archive_name' with password '${password}'" + trap 'cleanup "$archive_name"' ERR INT create_archive \ "$input_file" \ "$password" \ From 9b013d99967e5babdc0dab8994ec7235831531d6 Mon Sep 17 00:00:00 2001 From: sometimesuseful <> Date: Wed, 13 Nov 2024 15:31:19 +0000 Subject: [PATCH 4/6] fixed unbound variable error and missing function parameter --- modules/create_archive | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/create_archive b/modules/create_archive index bbb7efe..bbe91fd 100755 --- a/modules/create_archive +++ b/modules/create_archive @@ -61,6 +61,7 @@ get_volumes() { generate_name() { # Generates a random archive name of 20 alphanumeric characters + local archive_dir="$1" local archive_name archive_name="$archive_dir/$(tr -dc '[:alnum:]' < /dev/urandom | head -c 20).7z" @@ -73,7 +74,7 @@ create_archive() { local input_file="$1" local password="$2" local volumes="$3" - local archive_name="$5" + local archive_name="$4" 7z a -mhe=on "-p${password}" "$volumes" "$archive_name" "${input_file}" } @@ -87,10 +88,10 @@ main() { check_dependencies "7z" check_input "$input_file" "$password" "$size" - archive_name="$(generate_name)" archive_dir="$(dirname "$0")/../archives" mkdir -p "$archive_dir" + archive_name="$(generate_name "$archive_dir")" volumes="$(get_volumes "$input_file" "$size")" log "INFO" "Packing '${input_file}' into archive '$archive_name' with password '${password}'" From 665e3568425d9eed2015ec796a6f99a4c2b03823 Mon Sep 17 00:00:00 2001 From: sometimesuseful <> Date: Wed, 13 Nov 2024 15:43:41 +0000 Subject: [PATCH 5/6] fixed bug where volumes argument would be set to an invalid value --- modules/create_archive | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/create_archive b/modules/create_archive index bbe91fd..cc9dbed 100755 --- a/modules/create_archive +++ b/modules/create_archive @@ -46,15 +46,19 @@ get_volumes() { local input_file="$1" local size="${2:-}" local volumes="" - local smart_size + local smart_size="" if [[ -n "$size" ]]; then log "INFO" "Volumes size is set to ${size}MB" - smart_size="$(calc_smart_volumes "$input_file" "$size" || echo -n)" - volumes="-v${smart_size}m" + smart_size="$(calc_smart_volumes "$input_file" "$size" || true)" fi - [[ -n "$volumes" ]] && log "INFO" "Volumes set to '$volumes'" || log "INFO" "Volumes argument unset" + if [[ -n "$smart_size" ]]; then + volumes="-v${smart_size}m" + log "INFO" "Volumes set to '$volumes'" + else + log "INFO" "Volumes argument unset" + fi echo "$volumes" } From 3e76fc49b06ef126bf54c8c0401142cb28a16704 Mon Sep 17 00:00:00 2001 From: sometimesuseful <> Date: Wed, 13 Nov 2024 15:48:36 +0000 Subject: [PATCH 6/6] added logging for when the input file is smaller than volume size --- modules/create_archive | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/create_archive b/modules/create_archive index cc9dbed..1a2c8e0 100755 --- a/modules/create_archive +++ b/modules/create_archive @@ -32,7 +32,10 @@ calc_smart_volumes() { total_size=$(du -s -BM "${input_file}" | grep -oP '^\d+') || return 1 # If total file size is smaller than volume size, don't pack it into volumes - (( total_size < size )) && return 1 + if (( total_size < size)); then + log "WARN" "$input_file is smaller than ${size}MB, skipping volumes" + return 1 + fi num_volumes=$(( (total_size + size - 1) / size )) smart_size=$(( (total_size + num_volumes - 1) / num_volumes ))