Compare commits
2 commits
7290e7dca8
...
537e018647
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
537e018647 | ||
|
|
9b15435ef6 |
2 changed files with 61 additions and 1 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# 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.
|
||||
|
||||
|
|
|
|||
60
modules/archive.sh
Executable file
60
modules/archive.sh
Executable 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue