#!/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="$2" if [[ -f "$unencrypted_file" ]]; then echo " SHRED: $unencrypted_file" shred_file "$unencrypted_file" else echo "NOT FOUND: $unencrypted_file" fi } export -f exported_internal_shred_file DEREFERENCED_BIN_DIR="${0%/*}" MAX_PARALLEL_SHRED=10 export IFS= tr '\n' '\0' <"$BB_FILES" | xargs -0 -I{} -n 1 -P $MAX_PARALLEL_SHRED bash -c "exported_internal_shred_file $DEREFERENCED_BIN_DIR \"{}\"" $DEREFERENCED_BIN_DIR/fake echo '========== DONE.'