bin/history.sh
Rama main · réplica de lectura del repositorio original.
#!/bin/bash
# Mole - History command.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
source "$ROOT_DIR/lib/core/history.sh"
HISTORY_JSON=false
HISTORY_LIMIT="$MOLE_HISTORY_DEFAULT_LIMIT"
show_history_help() {
echo "Usage: mo history [OPTIONS]"
echo ""
echo "Review recent Mole operation and deletion activity."
echo ""
echo "Options:"
echo " --json Output history as JSON"
echo " --limit N Show the most recent N entries, 1-200"
echo " -h, --help Show this help message"
}
main() {
while [[ $# -gt 0 ]]; do
case "$1" in
"--json")
HISTORY_JSON=true
;;
"--limit")
shift
if [[ $# -eq 0 ]]; then
echo "Missing value for --limit" >&2
exit 1
fi
if ! HISTORY_LIMIT=$(history_parse_limit "$1"); then
echo "Invalid value for --limit: $1" >&2
exit 1
fi
;;
"--help" | "-h")
show_history_help
exit 0
;;
-*)
echo "Unknown option for mo history: $1" >&2
echo "Run 'mo history --help' for usage." >&2
exit 1
;;
*)
echo "Unexpected argument for mo history: $1" >&2
echo "Run 'mo history --help' for usage." >&2
exit 1
;;
esac
shift
done
history_load_operations "$(history_operations_log_file)"
history_load_deletions "$(history_deletions_log_file)"
if [[ "$HISTORY_JSON" == "true" ]]; then
history_render_json "$HISTORY_LIMIT"
else
history_render_text "$HISTORY_LIMIT"
fi
}
main "$@"