Compare commits

...

2 commits

Author SHA1 Message Date
PedoDeveloper
537e018647 Added basic archiving script 2024-11-09 06:42:05 +00:00
PedoDeveloper
9b15435ef6 Fixed typo 2024-11-09 05:43:45 +00:00
2 changed files with 61 additions and 1 deletions

View file

@ -1,6 +1,6 @@
# Autoshare # Autoshare
An upcoming project. This will be a single program that fully automates the content sharing process (packing content into archives, creating previews, uploading archives and previews, and creating a post template ready to be copied and pasted. An upcoming project. This will be a single program that fully automates the content sharing process (packing content into archives, creating previews, uploading archives and previews, and creating a post template ready to be copied and pasted).
It will be written in a mixture of Bash and Python. Tails and Whonix will be supported, with the goal of making the program work natively in Tails without the need to install additional software. It will be written in a mixture of Bash and Python. Tails and Whonix will be supported, with the goal of making the program work natively in Tails without the need to install additional software.

60
modules/archive.sh Executable file
View file

@ -0,0 +1,60 @@
#!/bin/bash
archive_dir="$(dirname "$0")/../archives"
input_file="${1}"
archive_pwd="${2}"
size="$3"
check_dependencies() {
if ! mkdir -p "$archive_dir"; then
echo "ERROR: Unable to create archive directory"
exit 1
fi
if ! command -v 7z 2>&1 >/dev/null; then
echo "ERROR: 7z must be installed"
exit 1
fi
}
check_input() {
if [[ ! -e "${input_file}" ]]; then
echo "ERROR: Input file '${input_file}' does not exist"
exit 2
fi
echo "Archiving file/directory '${input_file}'" >&2
}
set_volumes() {
volumes=
if [[ "$size" =~ ^[1-9][0-9]*$ ]]; then
volumes="-v${size}m"
elif [[ -n "$size" ]]; then
echo "Invalid size $size, must be a number"
exit 2
fi
echo "Volumes set to '$volumes'" >&2
}
generate_name() {
archive="$archive_dir/$(base64 /dev/urandom | tr -dc [:alnum:] | head -c 20).7z"
echo "Generated archive name $archive" >&2
}
create_archive() {
echo "Packing ${input_file} into archive $archive with password ${archive_pwd}"
[[ -n "$volumes" ]] && echo "and volumes of size $size MB"
7z a -mhe=on "-p${archive_pwd}" "$volumes" "$archive" "${input_file}" >&2
}
check_dependencies
check_input
set_volumes
generate_name
create_archive