From e938e1d966b42b17555591a67194e3f7fa386003 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 5 Aug 2025 21:22:21 +0000 Subject: [PATCH 1/2] Initial plan From 04d959e51de2ec46d2d4229071e22148016763d9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 5 Aug 2025 21:33:15 +0000 Subject: [PATCH 2/2] Implement usage history system: show user script usage history Co-authored-by: ricardolevindo <5446904+ricardolevindo@users.noreply.github.com> --- .gitignore | 18 +++++ HISTORICO-USO.md | 93 +++++++++++++++++++++++ README.md | 11 +++ example-color.sh | 3 + exemploCorTerminal.sh | 3 + historico-lib.sh | 29 +++++++ historico-uso.sh | 168 +++++++++++++++++++++++++++++++++++++++++ install.sh | 7 ++ instantClientOracle.sh | 4 + meu-historico.sh | 17 +++++ 10 files changed, 353 insertions(+) create mode 100644 .gitignore create mode 100644 HISTORICO-USO.md create mode 100644 historico-lib.sh create mode 100755 historico-uso.sh create mode 100755 meu-historico.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..40cfc49 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +# Arquivos temporários +*.tmp +*.temp +*~ + +# Logs locais (o histórico é armazenado em ~/.config/) +*.log + +# Arquivos de teste +test-*.sh + +# Cache e arquivos de sistema +.DS_Store +Thumbs.db + +# Arquivos de backup +*.backup +*.bak \ No newline at end of file diff --git a/HISTORICO-USO.md b/HISTORICO-USO.md new file mode 100644 index 0000000..3e9da1e --- /dev/null +++ b/HISTORICO-USO.md @@ -0,0 +1,93 @@ +# Sistema de Histórico de Uso + +Este repositório agora inclui um sistema de histórico de uso que permite rastrear quando e quais scripts foram executados. + +## Como usar + +### Visualizar histórico de uso + +Para ver seu histórico de uso, execute: + +```bash +./meu-historico.sh +``` + +Este comando mostra: +- 📊 Estatísticas gerais (total de execuções, primeiro e último uso) +- 🔥 Scripts mais utilizados +- 📅 Últimas execuções +- 💡 Opções adicionais disponíveis + +### Opções disponíveis + +```bash +# Mostrar resumo do histórico +./meu-historico.sh + +# Mostrar histórico completo +./meu-historico.sh --completo + +# Filtrar por script específico +./meu-historico.sh --script install.sh + +# Limpar todo o histórico +./meu-historico.sh --limpar + +# Mostrar ajuda +./meu-historico.sh --ajuda +``` + +## Como funciona + +### Rastreamento automático + +Os scripts principais já foram modificados para registrar automaticamente seu uso: +- `install.sh` +- `instantClientOracle.sh` +- `example-color.sh` +- `exemploCorTerminal.sh` + +### Adicionando rastreamento a novos scripts + +Para adicionar rastreamento a um novo script, adicione estas linhas no início: + +```bash +#!/bin/bash + +# Registrar uso deste script +source "$(dirname "$0")/historico-lib.sh" 2>/dev/null && registrar_uso_script 2>/dev/null + +# ... resto do seu script +``` + +### Localização dos dados + +O histórico é armazenado em: +- **Diretório**: `~/.config/script-historico/` +- **Arquivo**: `~/.config/script-historico/uso.log` + +## Arquivos do sistema + +- `historico-uso.sh` - Script principal do sistema de histórico +- `historico-lib.sh` - Biblioteca com funções auxiliares +- `meu-historico.sh` - Script de conveniência para mostrar o histórico + +## Exemplos de uso + +```bash +# Ver seu histórico de uso +./meu-historico.sh + +# Ver quantas vezes você usou o install.sh +./meu-historico.sh --script install.sh + +# Ver histórico completo com timestamps +./meu-historico.sh --completo + +# Limpar histórico (com confirmação) +./meu-historico.sh --limpar +``` + +## Comando em português + +O sistema responde ao comando "me mostre meu histórico de uso" através do script `./meu-historico.sh`. \ No newline at end of file diff --git a/README.md b/README.md index af4f653..900a45c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,16 @@ # scriptDebian +## 📊 Histórico de Uso + +**Novo!** Este repositório agora inclui um sistema de histórico de uso dos scripts. + +```bash +# Para ver seu histórico de uso: +./meu-historico.sh +``` + +Veja [HISTORICO-USO.md](HISTORICO-USO.md) para documentação completa. + ## Instalar pacotes impressora sudo apt install printer-driver-escpr sudo adduser seu-usuario lpadmin diff --git a/example-color.sh b/example-color.sh index c95518e..b494548 100644 --- a/example-color.sh +++ b/example-color.sh @@ -1,5 +1,8 @@ #! /bin/bash +# Registrar uso deste script +source "$(dirname "$0")/historico-lib.sh" 2>/dev/null && registrar_uso_script 2>/dev/null + BOLD="\e[1m" YELLOW="\e[33m" NO_COLOR="\033[0m" diff --git a/exemploCorTerminal.sh b/exemploCorTerminal.sh index c95518e..b494548 100644 --- a/exemploCorTerminal.sh +++ b/exemploCorTerminal.sh @@ -1,5 +1,8 @@ #! /bin/bash +# Registrar uso deste script +source "$(dirname "$0")/historico-lib.sh" 2>/dev/null && registrar_uso_script 2>/dev/null + BOLD="\e[1m" YELLOW="\e[33m" NO_COLOR="\033[0m" diff --git a/historico-lib.sh b/historico-lib.sh new file mode 100644 index 0000000..b972475 --- /dev/null +++ b/historico-lib.sh @@ -0,0 +1,29 @@ +# Funções auxiliares para histórico de uso +# Para incluir em outros scripts: source $(dirname "$0")/historico-lib.sh + +# Função para registrar uso de script +registrar_uso_script() { + local script_path="$0" + local script_name=$(basename "$script_path") + local historico_script="$(dirname "$script_path")/historico-uso.sh" + + # Verificar se o script de histórico existe + if [ -f "$historico_script" ]; then + "$historico_script" --registrar "$script_name" 2>/dev/null + fi +} + +# Função para mostrar histórico (atalho) +mostrar_meu_historico() { + local historico_script="$(dirname "$0")/historico-uso.sh" + + if [ -f "$historico_script" ]; then + "$historico_script" + else + echo "Sistema de histórico não encontrado." + fi +} + +# Auto-registrar uso quando este arquivo for incluído +# (comentado por padrão para evitar registro duplo) +# registrar_uso_script \ No newline at end of file diff --git a/historico-uso.sh b/historico-uso.sh new file mode 100755 index 0000000..d0185e1 --- /dev/null +++ b/historico-uso.sh @@ -0,0 +1,168 @@ +#!/bin/bash + +# Script para gerenciar histórico de uso dos scripts +# Autor: Script de desenvolvimento + +HISTORICO_DIR="$HOME/.config/script-historico" +HISTORICO_FILE="$HISTORICO_DIR/uso.log" + +# Criar diretório se não existir +mkdir -p "$HISTORICO_DIR" + +# Função para registrar uso +registrar_uso() { + local script_name="$1" + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + local user=$(whoami) + local pwd=$(pwd) + + echo "[$timestamp] $user executou '$script_name' em $pwd" >> "$HISTORICO_FILE" +} + +# Função para mostrar histórico +mostrar_historico() { + if [ ! -f "$HISTORICO_FILE" ]; then + echo "Nenhum histórico de uso encontrado." + echo "Execute alguns scripts primeiro para gerar o histórico." + return 1 + fi + + echo "=== HISTÓRICO DE USO DOS SCRIPTS ===" + echo + + # Mostrar estatísticas gerais + local total_execucoes=$(wc -l < "$HISTORICO_FILE") + local primeiro_uso=$(head -n 1 "$HISTORICO_FILE" | cut -d']' -f1 | tr -d '[') + local ultimo_uso=$(tail -n 1 "$HISTORICO_FILE" | cut -d']' -f1 | tr -d '[') + + echo "📊 Estatísticas:" + echo " Total de execuções: $total_execucoes" + echo " Primeiro uso: $primeiro_uso" + echo " Último uso: $ultimo_uso" + echo + + # Mostrar scripts mais usados + echo "🔥 Scripts mais utilizados:" + grep -o "executou '[^']*'" "$HISTORICO_FILE" | sort | uniq -c | sort -rn | head -5 | while read count script; do + script_clean=$(echo "$script" | cut -d"'" -f2) + echo " $count× $script_clean" + done + echo + + # Mostrar histórico recente (últimas 10 execuções) + echo "📅 Últimas execuções:" + tail -n 10 "$HISTORICO_FILE" | while IFS= read -r linha; do + timestamp=$(echo "$linha" | cut -d']' -f1 | tr -d '[') + resto=$(echo "$linha" | cut -d']' -f2-) + echo " $timestamp →$resto" + done + echo + + # Opções adicionais + echo "💡 Opções disponíveis:" + echo " $0 --completo Mostrar histórico completo" + echo " $0 --limpar Limpar histórico" + echo " $0 --script NOME Filtrar por script específico" +} + +# Função para mostrar histórico completo +mostrar_historico_completo() { + if [ ! -f "$HISTORICO_FILE" ]; then + echo "Nenhum histórico de uso encontrado." + return 1 + fi + + echo "=== HISTÓRICO COMPLETO DE USO ===" + echo + cat "$HISTORICO_FILE" | while IFS= read -r linha; do + timestamp=$(echo "$linha" | cut -d']' -f1 | tr -d '[') + resto=$(echo "$linha" | cut -d']' -f2-) + echo "$timestamp →$resto" + done +} + +# Função para filtrar por script +filtrar_por_script() { + local script_filtro="$1" + + if [ ! -f "$HISTORICO_FILE" ]; then + echo "Nenhum histórico de uso encontrado." + return 1 + fi + + echo "=== HISTÓRICO PARA: $script_filtro ===" + echo + + grep "executou '$script_filtro'" "$HISTORICO_FILE" | while IFS= read -r linha; do + timestamp=$(echo "$linha" | cut -d']' -f1 | tr -d '[') + resto=$(echo "$linha" | cut -d']' -f2-) + echo "$timestamp →$resto" + done +} + +# Função para limpar histórico +limpar_historico() { + if [ -f "$HISTORICO_FILE" ]; then + read -p "Tem certeza que deseja limpar todo o histórico? (s/N): " confirmacao + if [[ "$confirmacao" =~ ^[sS]$ ]]; then + > "$HISTORICO_FILE" + echo "Histórico limpo com sucesso!" + else + echo "Operação cancelada." + fi + else + echo "Nenhum histórico encontrado para limpar." + fi +} + +# Verificar argumentos +case "$1" in + "--registrar") + if [ -z "$2" ]; then + echo "Erro: Nome do script é obrigatório" + echo "Uso: $0 --registrar NOME_DO_SCRIPT" + exit 1 + fi + registrar_uso "$2" + ;; + "--completo") + mostrar_historico_completo + ;; + "--limpar") + limpar_historico + ;; + "--script") + if [ -z "$2" ]; then + echo "Erro: Nome do script é obrigatório" + echo "Uso: $0 --script NOME_DO_SCRIPT" + exit 1 + fi + filtrar_por_script "$2" + ;; + "--ajuda"|"-h"|"--help") + echo "=== SISTEMA DE HISTÓRICO DE USO ===" + echo + echo "Uso: $0 [OPÇÃO]" + echo + echo "Opções:" + echo " (sem opção) Mostrar resumo do histórico" + echo " --completo Mostrar histórico completo" + echo " --script NOME Filtrar por script específico" + echo " --limpar Limpar todo o histórico" + echo " --registrar NOME Registrar uso de um script (uso interno)" + echo " --ajuda Mostrar esta ajuda" + echo + echo "Exemplos:" + echo " $0 # Mostrar resumo" + echo " $0 --script install.sh # Ver histórico do install.sh" + echo " $0 --completo # Ver histórico completo" + ;; + "") + mostrar_historico + ;; + *) + echo "Opção inválida: $1" + echo "Use '$0 --ajuda' para ver as opções disponíveis." + exit 1 + ;; +esac \ No newline at end of file diff --git a/install.sh b/install.sh index 2bf9b08..a29724c 100644 --- a/install.sh +++ b/install.sh @@ -1,3 +1,10 @@ +#!/bin/bash +# Script de instalação de ferramentas de desenvolvimento +# Inclui sistema de histórico de uso + +# Registrar uso deste script +source "$(dirname "$0")/historico-lib.sh" 2>/dev/null && registrar_uso_script 2>/dev/null + ## robot3t sudo apt update sudo apt install snapd diff --git a/instantClientOracle.sh b/instantClientOracle.sh index 94a372e..9a74d50 100644 --- a/instantClientOracle.sh +++ b/instantClientOracle.sh @@ -1,4 +1,8 @@ #!/bin/bash + +# Registrar uso deste script +source "$(dirname "$0")/historico-lib.sh" 2>/dev/null && registrar_uso_script 2>/dev/null + printf "Instalação do instant client oracle" #Atualizar pacotes diff --git a/meu-historico.sh b/meu-historico.sh new file mode 100755 index 0000000..5aea2ad --- /dev/null +++ b/meu-historico.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Script principal para mostrar histórico de uso +# Este script responde ao comando "me mostre meu histórico de uso" + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +HISTORICO_SCRIPT="$SCRIPT_DIR/historico-uso.sh" + +# Verificar se o script de histórico existe +if [ ! -f "$HISTORICO_SCRIPT" ]; then + echo "❌ Erro: Sistema de histórico não encontrado." + echo "Verifique se o arquivo historico-uso.sh está presente no diretório." + exit 1 +fi + +# Executar o script de histórico +"$HISTORICO_SCRIPT" "$@" \ No newline at end of file