s243a icon

clean_private_info.sh

s243a | PRO | 01/14/21 04:28:56 AM UTC | 0 ⭐ | 1564 👁️ | Never ⏰ | []
Bash |

4.58 KB

|

None

|

0 👍

/

0 👎

#!/bin/bash
ASK=yes #ASK=no for no prompt prior to removing. 
CWD="$(realpath "$PWD")"
safe_del_root="$PWD/savefiles"
Portable_Browser_Profile_locations=("/opt/Iron-portable/iron32/PROFILE")
HOMES=("/root" "/home/spot")
Home_Browser_Caches=("/.cache/chrome" "/.cache/mozilla")
Home_Files_Misc=("/.history" "/.local/share/recently-used.xbel")
#isc_Dels=("/etc/shadow" "/etc/resolv.conf")
Misc_Dels=("/etc/resolv.conf" "/etc/rc.d/PUPSTATE" "/etc/rc.d/BOOTCONFIG")
System_Roots=("" "/cont")
IFSo="$IFS"
IFS=$'\n' 
Save_File_Paths=($(ls -1 "$CWD/savefiles"))
echo "Save_File_Paths=${Save_File_Paths[@]}"
#log=yes
export LOGFILE="$CWD/clean_log"
export TRACE=true
[ -f "$LOGFILE" ] && rm "$LOGFILE" 
touch "$LOGFILE" 
function maybe_remove(){
 
    #log stop   
    #echo "remove \"$1\"? (y/n)" >&2
    sync
    #fsync /dev/tty
    read -p "remove \"$1\"? (y/n)" answer
    if [ "$ASK" = no ] || [[ "$answer" = y* ]] ||   [[ "$answer" = Y* ]]; then
      return 0
    else
      return 1
    fi
    #log start
}
export -f maybe_remove
function log(){
  set +x #TODO add more verbose log option that doesn't do this. 
   local SET_X=false 
  local logfile="${2}"
  local trace="$3"
  if [ ! -z "$LOGFILE" ]; then
    case "$1" in
    init)
      [ "$TRACE" = true ] && SET_X=true
      [ ! -f "$LOGFILE" ] && rm "$LOGFILE"
      exec 6>&1           # Link file descriptor #6 with stdout.
      exec 7>&2
      [ ! -f "$LOGFILE" ] && touch "$LOGFILE"
      ;;
    start)
      [ "$TRACE" = true ] && SET_X=true
 
      #exec 1>&6           # Link file descriptor #6 with stdout.
      #exec 2>&7    
      exec &> >(tee -a "$LOGFILE") 
      ;;
    stop)
      #exec 1>/dev/null           # Link file descriptor #6 with stdout.
      #exec 2>/dev/null         
 
#      exec 2>&7                     
#      exec 1>&6           # Link file descriptor #6 with stdout.
      #exec 1>&-
      #exec 2>&-
      exec 1>&6
      exec 2>/dev/tty
 
 
      #exec 2>/dev/stderr
      #exec 1>/dev/stdout
      ;;
    esac
  fi    
  [ "$SET_X" = true ] && set -x
}
export -f log
log init
log start
for a_save_file in "${Save_File_Paths[@]}"; do
  for a_Sys_Root in "${System_Roots[@]}"; do
    a_save_FP="$CWD/savefiles/$a_save_file$a_Sys_Root"
    #Delete Portable Browser Profiles
    for a_BP_loc in "${Portable_Browser_Profile_locations[@]}"; do
      a_path="$a_save_FP$a_BP_loc"
      if [ -d "$a_path" ]; then
        a_path="$(realpath "$a_path")"
        log stop
        set +x
        maybe_remove "$a_path" && {
          log start           
          if [[ "$a_path" = "$safe_del_root/"* ]]; then
            rm -rf "$a_path" 
          fi
        } || log start
      fi
    done
    #Delete Misc Files in the home directory
    for a_home in "${HOMES[@]}"; do
      a_home_path="$a_save_FP$a_home"
      IFS=$'\n' 
      for a_home_cache_loc in "${Home_Browser_Caches[@]}"; do
        a_path="$a_home_path$a_home_cache_loc"
        if [ -d "$a_path" ]; then
          a_path="$(realpath "$a_path")"
          log stop
          set +x
           maybe_remove "$a_path" && {
             log start         
             if [[ "$a_path" = "$safe_del_root/"* ]]; then
               rm -rf "$a_path"/* 
            fi
          } || log start
        fi
      done
      #Delete Misc Files in the home directory
      for a_file in "${Home_Files_Misc[@]}"; do
        a_path="$a_home_path$a_file"
        if [ -e "$a_path" ]; then
          a_path="$(realpath "$a_path")"
           if [[ "$a_path" = "$safe_del_root/"* ]]; then
             log stop
             set +x
             maybe_remove "$a_path" && {
               log start
               if [ -d "$a_path" ]; then              
                 rm -rf "$a_path"
               elif [ -f "$a_path" ]; then
                 rm -f "$a_path"
               fi
             } || log start
             
          fi
        fi
      done         
    done
    #Delete Misc. Files
    for a_file in "${Misc_Dels[@]}"; do
      a_path="$a_home_path$a_file"
      if [ -e "$a_path" ]; then
        a_path="$(realpath "$a_path")"
        if [[ "$a_path" = "$safe_del_root/"* ]]; then
          log stop
          set +x
          maybe_remove "$a_path" && {
            log start       
            if [ -d "$a_path" ]; then
              rm -rf "$a_path"          
            elif [ -f "$a_path" ]; then
              rm -f "$a_path"
            fi
          } || log start
          
        fi
      fi
    done         
  done
done     
#TODO, delete ssh keys, delete samba credentials, delete wifi passwords. 
 
 

Comments