summaryrefslogtreecommitdiff
path: root/archived/projt-launcher/ci/code-quality.nix
diff options
context:
space:
mode:
Diffstat (limited to 'archived/projt-launcher/ci/code-quality.nix')
-rw-r--r--archived/projt-launcher/ci/code-quality.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/archived/projt-launcher/ci/code-quality.nix b/archived/projt-launcher/ci/code-quality.nix
new file mode 100644
index 0000000000..b5706dc83f
--- /dev/null
+++ b/archived/projt-launcher/ci/code-quality.nix
@@ -0,0 +1,51 @@
+{
+ lib,
+ runCommand,
+ clang-tools,
+ cmake,
+ cmake-format,
+}:
+{
+ src ? ../.,
+}:
+
+let
+ sourceFiles = lib.fileset.toSource {
+ root = src;
+ fileset = lib.fileset.unions [
+ (src + /launcher)
+ (src + /tests)
+ (src + /buildconfig)
+ ];
+ };
+in
+runCommand "projt-code-check"
+ {
+ nativeBuildInputs = [
+ clang-tools
+ cmake
+ cmake-format
+ ];
+ }
+ ''
+ echo "Running ProjT Launcher code quality checks..."
+
+ echo "Checking C++ code formatting..."
+ find ${sourceFiles} -type f \( -name "*.cpp" -o -name "*.h" \) | while read file; do
+ if ! clang-format --dry-run --Werror "$file" 2>/dev/null; then
+ echo "Format error in: $file"
+ fi
+ done
+
+ echo "Checking for common code issues..."
+
+ todoCount=$(grep -r "TODO\\|FIXME" ${sourceFiles} --include="*.cpp" --include="*.h" 2>/dev/null | wc -l)
+ echo "Found $todoCount TODO/FIXME comments"
+
+ if grep -r "qDebug\\|std::cout" ${sourceFiles} --include="*.cpp" 2>/dev/null | grep -v "// DEBUG" > /dev/null; then
+ echo "Warning: Debug statements found in code"
+ fi
+
+ echo "Code quality check completed!"
+ touch $out
+ ''