28 lines
717 B
Bash
Executable File
28 lines
717 B
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "Usage: $0 <password>"
|
|
exit 1
|
|
fi
|
|
|
|
PASSWORD="$1"
|
|
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_NAME="$(basename "$PROJECT_DIR")"
|
|
TIMESTAMP="$(date +%Y%m%d_%H%M%S)"
|
|
OUTPUT="$HOME/${PROJECT_NAME}_${TIMESTAMP}.tar.gz.enc"
|
|
|
|
echo "Creating encrypted archive of '$PROJECT_NAME'..."
|
|
|
|
tar czf - \
|
|
--exclude-from="$PROJECT_DIR/.gitignore" \
|
|
--exclude=".git" \
|
|
-C "$(dirname "$PROJECT_DIR")" \
|
|
"$PROJECT_NAME" | \
|
|
openssl enc -aes-256-cbc -pbkdf2 -salt -pass "pass:$PASSWORD" -out "$OUTPUT"
|
|
|
|
echo "Done: $OUTPUT"
|
|
echo ""
|
|
echo "To decrypt and extract:"
|
|
echo " openssl enc -d -aes-256-cbc -pbkdf2 -in \"$OUTPUT\" -pass pass:<password> | tar xzf -"
|