Files
blackbox/bin/blackbox_shred_all_files
Jon Bardin 4fe27a04c9 Allow parallel shredding of files (#167)
* to log which files were shredded
* allow parallel shredding of files ot lower time to shred
2016-08-31 09:29:54 -04:00

44 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# blackbox_shred_all_files -- shred all decrypted versions of encrypted files
#
# Shred: To securely delete a file.
#
# Typical uses:
# After running blackbox_edit_start, deciding not to edit the file.
# A developer that wants to securely clean up a workspace before deleting it.
# An automated process that doesn't want to leave
# plaintext (unencrypted) files laying around.
#
# NOTE: The output lists files that were decrypted and are being
# shredded. For example, if you have many encrypted files but none
# have been decrypted for editing, you will see an empty list.
set -e
source "${0%/*}/_blackbox_common.sh"
change_to_vcs_root
echo '========== FILES BEING SHREDDED:'
exported_internal_shred_file() {
source "$1/_blackbox_common.sh"
unencrypted_file=$(get_unencrypted_filename "$2")
encrypted_file=$(get_encrypted_filename "$unencrypted_file")
if [[ -f "$unencrypted_file" ]]; then
echo " $unencrypted_file"
shred_file "$unencrypted_file"
fi
}
export -f exported_internal_shred_file
DEREFERENCED_BIN_DIR="${0%/*}"
MAX_PARALLEL_SHRED=10
export IFS=
xargs -I{} -n 1 -P $MAX_PARALLEL_SHRED bash -c "exported_internal_shred_file $DEREFERENCED_BIN_DIR {}" $DEREFERENCED_BIN_DIR/fake <"$BB_FILES"
echo '========== DONE.'