blackbox_register_new_file: Accept multiple files on the command line.

This commit is contained in:
tlimoncelli@stackexchange.com
2015-06-20 15:54:08 +00:00
parent c0dda22c9c
commit d45625086a
2 changed files with 47 additions and 29 deletions

View File

@@ -1,16 +1,17 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# blackbox_register_new_file -- Enroll a new file in the blackbox system. # blackbox_register_new_file -- Enroll new file(s) in the blackbox system.
# #
# Takes a previously unencrypted file and enrolls it into the blackbox # Takes previously unencrypted file(s) and enrolls them into the blackbox
# system. It will be kept in the repo as an encrypted file. On deployment # system. Each file will be kept in the repo as an encrypted file. On deployment
# to systems that need the plaintext (unencrypted) versions, run # to systems that need the plaintext (unencrypted) versions, run
# blackbox_postdeploy.sh to decrypt all the files. # blackbox_postdeploy.sh to decrypt all the files.
set -e set -e
source "${0%/*}/_blackbox_common.sh" source "${0%/*}/_blackbox_common.sh"
function register_new_file() {
unencrypted_file=$(get_unencrypted_filename "$1") unencrypted_file=$(get_unencrypted_filename "$1")
encrypted_file=$(get_encrypted_filename "$1") encrypted_file=$(get_encrypted_filename "$1")
@@ -44,6 +45,12 @@ vcs_ignore "$unencrypted_file"
echo 'NOTE: "already tracked!" messages are safe to ignore.' echo 'NOTE: "already tracked!" messages are safe to ignore.'
vcs_add "$BB_FILES" "$encrypted_file" vcs_add "$BB_FILES" "$encrypted_file"
vcs_commit "registered in blackbox: ${unencrypted_file}" "$BB_FILES" "$encrypted_file" vcs_commit "registered in blackbox: ${unencrypted_file}" "$BB_FILES" "$encrypted_file"
}
for target in "$@"; do
register_new_file "$target"
done
echo "========== UPDATING VCS: DONE" echo "========== UPDATING VCS: DONE"
echo "Local repo updated. Please push when ready." echo "Local repo updated. Please push when ready."
echo " $(which_vcs) push" echo " $(which_vcs) push"

View File

@@ -448,6 +448,17 @@ assert_line_not_exists 'mistake.txt' 'keyrings/live/blackbox-files.txt'
assert_file_missing 'mistake.txt.gpg' assert_file_missing 'mistake.txt.gpg'
assert_file_exists 'mistake.txt' assert_file_exists 'mistake.txt'
PHASE 'Bob enrolls multiple files: multi1.txt and multi2.txt'
echo 'One singular sensation.' >'multi1.txt'
echo 'Another singular sensation.' >'multi2.txt'
blackbox_register_new_file 'multi1.txt' 'multi2.txt'
assert_file_missing 'multi1.txt'
assert_file_exists 'multi1.txt'.gpg
assert_line_exists '/multi1.txt' .gitignore
assert_file_missing 'multi2.txt'
assert_file_exists 'multi2.txt'.gpg
assert_line_exists '/multi2.txt' .gitignore
PHASE 'Alice returns. She should be locked out' PHASE 'Alice returns. She should be locked out'
assert_file_missing 'secret.txt' assert_file_missing 'secret.txt'
become_alice become_alice