110 lines
3.1 KiB
Bash
Executable File
110 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Función para mostrar el uso del script
|
|
mostrar_uso() {
|
|
echo "Uso: $0 [OPCIÓN] [RUTA]"
|
|
echo ""
|
|
echo "Opciones de análisis:"
|
|
echo " -w, --warning Ejecutar cppcheck con warning, style, performance"
|
|
echo " -a, --all Ejecutar cppcheck con todas las opciones habilitadas"
|
|
echo " -u, --unused Ejecutar cppcheck para unusedFunction"
|
|
echo ""
|
|
echo "Opciones de ruta:"
|
|
echo " -p, --path <ruta> Especificar ruta a analizar (default: ../source/)"
|
|
echo " [RUTA] Ruta como último argumento posicional"
|
|
echo ""
|
|
echo "Ejemplos:"
|
|
echo " $0 --warning"
|
|
echo " $0 -w --path ../src/"
|
|
echo " $0 --all /path/to/code/"
|
|
echo " $0 -u ../source/"
|
|
}
|
|
|
|
# Inicializar las variables
|
|
opcion=""
|
|
ruta="../source/"
|
|
|
|
# Procesar las opciones
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
-w|--warning)
|
|
opcion="warning"
|
|
shift
|
|
;;
|
|
-a|--all)
|
|
opcion="all"
|
|
shift
|
|
;;
|
|
-u|--unused)
|
|
opcion="unused"
|
|
shift
|
|
;;
|
|
-p|--path)
|
|
if [[ -n "$2" && "$2" != -* ]]; then
|
|
ruta="$2"
|
|
shift 2
|
|
else
|
|
echo "Error: --path requiere un argumento"
|
|
mostrar_uso
|
|
exit 1
|
|
fi
|
|
;;
|
|
-h|--help)
|
|
mostrar_uso
|
|
exit 0
|
|
;;
|
|
-*)
|
|
echo "Error: Opción desconocida: $1"
|
|
mostrar_uso
|
|
exit 1
|
|
;;
|
|
*)
|
|
# Argumento posicional (asumimos que es la ruta)
|
|
ruta="$1"
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Verificar que se haya especificado una opción de análisis
|
|
if [[ -z "$opcion" ]]; then
|
|
echo "Error: Debe especificar una opción de análisis (-w, -a, o -u)"
|
|
mostrar_uso
|
|
exit 1
|
|
fi
|
|
|
|
# Ejecutar según la opción seleccionada
|
|
case $opcion in
|
|
warning)
|
|
echo "Ejecutando cppcheck con warning, style, performance en: $ruta"
|
|
cppcheck --force --enable=warning,style,performance --std=c++20 \
|
|
--check-level=exhaustive \
|
|
--suppressions-list=./cppcheck_suppressions \
|
|
"$ruta" \
|
|
2>./cppcheck-result-warning-style-performance.txt
|
|
echo "Resultados guardados en: ./cppcheck-result-warning-style-performance.txt"
|
|
;;
|
|
all)
|
|
echo "Ejecutando cppcheck con todas las opciones en: $ruta"
|
|
cppcheck --force --enable=all -I /usr/include --std=c++20 \
|
|
--suppress=missingIncludeSystem \
|
|
--suppressions-list=./cppcheck_suppressions \
|
|
"$ruta" \
|
|
2>./cppcheck-result-all.txt
|
|
echo "Resultados guardados en: ./cppcheck-result-all.txt"
|
|
;;
|
|
unused)
|
|
echo "Ejecutando cppcheck para unusedFunction en: $ruta"
|
|
cppcheck --enable=style --std=c++20 \
|
|
--suppressions-list=./cppcheck_suppressions \
|
|
"$ruta" \
|
|
2>./cppcheck-result-unusedFunction.txt
|
|
echo "Resultados guardados en: ./cppcheck-result-unusedFunction.txt"
|
|
;;
|
|
*)
|
|
echo "Error: Opción inválida"
|
|
mostrar_uso
|
|
exit 1
|
|
;;
|
|
esac
|