Skip to content

Implement optional recursive mode flag

Currently, the actions "WIPE", "ERASE", "REMOVE" are recursing across any sub-directory stored under the main, passed as an argument. It is desirable to implement a flag to enable this behavior instead of having it as default.

Recurse helper:

#######################################
# Recurse the selected action for any descendant directory
# Globals:
#   None
# Arguments:
#   The action name
#   An array of directories passed by reference
# Outputs:
#   Writes the results to stdout
#######################################
__recurse_action() {
  action="$1"

  if [ ${#directories[@]} -gt 0 ]; then
    for dir in "${directories[@]}"; do
      echo
      case $action in
        "WIPE")
          secure_wipe "$dir"
          ;;
        "ERASE")
          erase "$dir"
          ;;
        "REMOVE")
          remove "$dir"
          ;;
        *)
          err "Action not available"
          exit 1
          ;;
      esac
    done
  fi
}

Example call: __recurse_action "REMOVE" directories