github.com/StackExchange/blackbox/v2@v2.0.1-0.20220331193400-d84e904973ab/bin/blackbox_diff (about)

     1  #!/usr/bin/env bash
     2  
     3  #
     4  # blackbox_diff -- Show all differences.
     5  #
     6  
     7  set -e
     8  source "${0%/*}/_blackbox_common.sh"
     9  
    10  gpg_agent_notice
    11  prepare_keychain
    12  
    13  modified_files=()
    14  modifications=()
    15  echo '========== DIFFING FILES: START'
    16  while IFS= read <&99 -r unencrypted_file; do
    17    unencrypted_file=$(get_unencrypted_filename "$unencrypted_file")
    18    encrypted_file=$(get_encrypted_filename "$unencrypted_file")
    19    fail_if_not_on_cryptlist "$unencrypted_file"
    20    if [[ -f "$unencrypted_file" ]]; then
    21      out=$(diff -u <($GPG --yes -q --decrypt "$encrypted_file") "$unencrypted_file" || true)
    22      if [ "$out" != "" ]; then
    23        modified_files+=("$unencrypted_file")
    24        modifications+=("$out")
    25      fi
    26    fi
    27  done 99<"$BB_FILES"
    28  modified_files_number=${#modified_files[@]}
    29  for (( i=0; i<${modified_files_number}; i++ )); do
    30    echo ========== PROCESSING '"'${modified_files[$i]}'"'
    31    echo -e "${modifications[$i]}\n"
    32  done
    33  echo '========== DIFFING FILES: DONE'
    34  
    35  fail_if_keychain_has_secrets
    36  
    37  echo '========== DONE.'
    38  
    39  if [ ${#modified_files[@]} -eq 0 ] ; then
    40    exit 0
    41  fi
    42  
    43  echo 'Likely next steps:'
    44  for f in "${modified_files[@]}" ; do
    45    echo "    blackbox_edit_end" '"'$f'"'
    46  done