#!/bin/sh set -e set -o noglob INSTALL_DIR="$HOME/.share/stacktrace-minimal" BIN_DIR=/usr/bin SERVICE_NAME="stacktrace.service" if ! command -v docker &>/dev/null; then echo -e "\nPas de docker pas encore Developeur.\n\n\t Veuillez l’installer pour continuer." exit 5 fi verify_stacktrace_is_executable() { if [ ! -x ${INSTALL_DIR}/stacktrace ]; then echo "Executable stacktrace binary not found at ${BIN_DIR}/stacktrace" install_stacktrace_launcher fi } install_stacktrace_launcher() { echo "install stacktrace launcher" sudo cat <<'EOF' > ${BIN_DIR}/stacktrace #!/bin/bash # stacktrace: A script to inspect systemd services and collect stack traces COMMAND=\$1 function usage() { echo "Usage: \$0 {up|status|logs|trace}" exit 1 } function stacktrace_up() { echo "Listing active systemd services:" systemctl list-units --type=service --state=running } function stacktrace_status() { echo "Checking status of services with 'stack' in name:" systemctl list-units --type=service | grep stack } function stacktrace_logs() { echo "Fetching recent logs (journalctl):" journalctl -xe --no-pager | grep -i stack } case "\$COMMAND" in up) stacktrace_up ;; status) stacktrace_status ;; logs) stacktrace_logs ;; *) usage ;; esac EOF sudo chmod +x ${BIN_DIR}/stacktrace } main() { verify_stacktrace_is_executable } scatch() { if [ -f ${BIN_DIR}/stacktrace ] ; then rm -f ${BIN_DIR}/stacktrace ; fi } main scatch