@hivehub/rulebook 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/README.md +539 -0
- package/dist/agents/claude-code.d.ts +69 -0
- package/dist/agents/claude-code.d.ts.map +1 -0
- package/dist/agents/claude-code.js +180 -0
- package/dist/agents/claude-code.js.map +1 -0
- package/dist/agents/cursor-agent.d.ts +184 -0
- package/dist/agents/cursor-agent.d.ts.map +1 -0
- package/dist/agents/cursor-agent.js +299 -0
- package/dist/agents/cursor-agent.js.map +1 -0
- package/dist/agents/gemini-cli.d.ts +69 -0
- package/dist/agents/gemini-cli.d.ts.map +1 -0
- package/dist/agents/gemini-cli.js +180 -0
- package/dist/agents/gemini-cli.js.map +1 -0
- package/dist/cli/commands.d.ts +57 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +1370 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/docs-prompts.d.ts +3 -0
- package/dist/cli/docs-prompts.d.ts.map +1 -0
- package/dist/cli/docs-prompts.js +45 -0
- package/dist/cli/docs-prompts.js.map +1 -0
- package/dist/cli/prompts.d.ts +6 -0
- package/dist/cli/prompts.d.ts.map +1 -0
- package/dist/cli/prompts.js +376 -0
- package/dist/cli/prompts.js.map +1 -0
- package/dist/core/agent-manager.d.ts +89 -0
- package/dist/core/agent-manager.d.ts.map +1 -0
- package/dist/core/agent-manager.js +546 -0
- package/dist/core/agent-manager.js.map +1 -0
- package/dist/core/auto-fixer.d.ts +14 -0
- package/dist/core/auto-fixer.d.ts.map +1 -0
- package/dist/core/auto-fixer.js +207 -0
- package/dist/core/auto-fixer.js.map +1 -0
- package/dist/core/changelog-generator.d.ts +44 -0
- package/dist/core/changelog-generator.d.ts.map +1 -0
- package/dist/core/changelog-generator.js +222 -0
- package/dist/core/changelog-generator.js.map +1 -0
- package/dist/core/cli-bridge.d.ts +113 -0
- package/dist/core/cli-bridge.d.ts.map +1 -0
- package/dist/core/cli-bridge.js +1094 -0
- package/dist/core/cli-bridge.js.map +1 -0
- package/dist/core/config-manager.d.ts +65 -0
- package/dist/core/config-manager.d.ts.map +1 -0
- package/dist/core/config-manager.js +266 -0
- package/dist/core/config-manager.js.map +1 -0
- package/dist/core/coverage-checker.d.ts +14 -0
- package/dist/core/coverage-checker.d.ts.map +1 -0
- package/dist/core/coverage-checker.js +176 -0
- package/dist/core/coverage-checker.js.map +1 -0
- package/dist/core/custom-templates.d.ts +27 -0
- package/dist/core/custom-templates.d.ts.map +1 -0
- package/dist/core/custom-templates.js +122 -0
- package/dist/core/custom-templates.js.map +1 -0
- package/dist/core/dependency-checker.d.ts +21 -0
- package/dist/core/dependency-checker.d.ts.map +1 -0
- package/dist/core/dependency-checker.js +247 -0
- package/dist/core/dependency-checker.js.map +1 -0
- package/dist/core/detector.d.ts +3 -0
- package/dist/core/detector.d.ts.map +1 -0
- package/dist/core/detector.js +1443 -0
- package/dist/core/detector.js.map +1 -0
- package/dist/core/docs-generator.d.ts +9 -0
- package/dist/core/docs-generator.d.ts.map +1 -0
- package/dist/core/docs-generator.js +531 -0
- package/dist/core/docs-generator.js.map +1 -0
- package/dist/core/generator.d.ts +16 -0
- package/dist/core/generator.d.ts.map +1 -0
- package/dist/core/generator.js +561 -0
- package/dist/core/generator.js.map +1 -0
- package/dist/core/gitignore-generator.d.ts +13 -0
- package/dist/core/gitignore-generator.d.ts.map +1 -0
- package/dist/core/gitignore-generator.js +307 -0
- package/dist/core/gitignore-generator.js.map +1 -0
- package/dist/core/health-scorer.d.ts +22 -0
- package/dist/core/health-scorer.d.ts.map +1 -0
- package/dist/core/health-scorer.js +395 -0
- package/dist/core/health-scorer.js.map +1 -0
- package/dist/core/logger.d.ts +116 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +289 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/merger.d.ts +6 -0
- package/dist/core/merger.d.ts.map +1 -0
- package/dist/core/merger.js +131 -0
- package/dist/core/merger.js.map +1 -0
- package/dist/core/migrator.d.ts +19 -0
- package/dist/core/migrator.d.ts.map +1 -0
- package/dist/core/migrator.js +102 -0
- package/dist/core/migrator.js.map +1 -0
- package/dist/core/minimal-scaffolder.d.ts +8 -0
- package/dist/core/minimal-scaffolder.d.ts.map +1 -0
- package/dist/core/minimal-scaffolder.js +51 -0
- package/dist/core/minimal-scaffolder.js.map +1 -0
- package/dist/core/modern-console-new.d.ts +81 -0
- package/dist/core/modern-console-new.d.ts.map +1 -0
- package/dist/core/modern-console-new.js +340 -0
- package/dist/core/modern-console-new.js.map +1 -0
- package/dist/core/modern-console.d.ts +99 -0
- package/dist/core/modern-console.d.ts.map +1 -0
- package/dist/core/modern-console.js +568 -0
- package/dist/core/modern-console.js.map +1 -0
- package/dist/core/openspec-manager.d.ts +133 -0
- package/dist/core/openspec-manager.d.ts.map +1 -0
- package/dist/core/openspec-manager.js +605 -0
- package/dist/core/openspec-manager.js.map +1 -0
- package/dist/core/openspec-migrator.d.ts +27 -0
- package/dist/core/openspec-migrator.d.ts.map +1 -0
- package/dist/core/openspec-migrator.js +255 -0
- package/dist/core/openspec-migrator.js.map +1 -0
- package/dist/core/task-manager.d.ts +65 -0
- package/dist/core/task-manager.d.ts.map +1 -0
- package/dist/core/task-manager.js +318 -0
- package/dist/core/task-manager.js.map +1 -0
- package/dist/core/test-task-manager.d.ts +49 -0
- package/dist/core/test-task-manager.d.ts.map +1 -0
- package/dist/core/test-task-manager.js +121 -0
- package/dist/core/test-task-manager.js.map +1 -0
- package/dist/core/validator.d.ts +21 -0
- package/dist/core/validator.d.ts.map +1 -0
- package/dist/core/validator.js +177 -0
- package/dist/core/validator.js.map +1 -0
- package/dist/core/version-bumper.d.ts +19 -0
- package/dist/core/version-bumper.d.ts.map +1 -0
- package/dist/core/version-bumper.js +180 -0
- package/dist/core/version-bumper.js.map +1 -0
- package/dist/core/watcher.d.ts +9 -0
- package/dist/core/watcher.d.ts.map +1 -0
- package/dist/core/watcher.js +22 -0
- package/dist/core/watcher.js.map +1 -0
- package/dist/core/workflow-generator.d.ts +10 -0
- package/dist/core/workflow-generator.d.ts.map +1 -0
- package/dist/core/workflow-generator.js +279 -0
- package/dist/core/workflow-generator.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +159 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/handlers/archive-task.d.ts +17 -0
- package/dist/mcp/handlers/archive-task.d.ts.map +1 -0
- package/dist/mcp/handlers/archive-task.js +36 -0
- package/dist/mcp/handlers/archive-task.js.map +1 -0
- package/dist/mcp/handlers/create-task.d.ts +17 -0
- package/dist/mcp/handlers/create-task.d.ts.map +1 -0
- package/dist/mcp/handlers/create-task.js +56 -0
- package/dist/mcp/handlers/create-task.js.map +1 -0
- package/dist/mcp/handlers/list-tasks.d.ts +22 -0
- package/dist/mcp/handlers/list-tasks.d.ts.map +1 -0
- package/dist/mcp/handlers/list-tasks.js +42 -0
- package/dist/mcp/handlers/list-tasks.js.map +1 -0
- package/dist/mcp/handlers/show-task.d.ts +25 -0
- package/dist/mcp/handlers/show-task.d.ts.map +1 -0
- package/dist/mcp/handlers/show-task.js +43 -0
- package/dist/mcp/handlers/show-task.js.map +1 -0
- package/dist/mcp/handlers/update-task.d.ts +17 -0
- package/dist/mcp/handlers/update-task.d.ts.map +1 -0
- package/dist/mcp/handlers/update-task.js +35 -0
- package/dist/mcp/handlers/update-task.js.map +1 -0
- package/dist/mcp/handlers/validate-task.d.ts +15 -0
- package/dist/mcp/handlers/validate-task.d.ts.map +1 -0
- package/dist/mcp/handlers/validate-task.js +27 -0
- package/dist/mcp/handlers/validate-task.js.map +1 -0
- package/dist/mcp/rulebook-config.d.ts +22 -0
- package/dist/mcp/rulebook-config.d.ts.map +1 -0
- package/dist/mcp/rulebook-config.js +65 -0
- package/dist/mcp/rulebook-config.js.map +1 -0
- package/dist/mcp/rulebook-server.d.ts +4 -0
- package/dist/mcp/rulebook-server.d.ts.map +1 -0
- package/dist/mcp/rulebook-server.js +246 -0
- package/dist/mcp/rulebook-server.js.map +1 -0
- package/dist/types.d.ts +190 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/file-system.d.ts +9 -0
- package/dist/utils/file-system.d.ts.map +1 -0
- package/dist/utils/file-system.js +51 -0
- package/dist/utils/file-system.js.map +1 -0
- package/dist/utils/git-hooks.d.ts +8 -0
- package/dist/utils/git-hooks.d.ts.map +1 -0
- package/dist/utils/git-hooks.js +440 -0
- package/dist/utils/git-hooks.js.map +1 -0
- package/dist/utils/rulesignore.d.ts +9 -0
- package/dist/utils/rulesignore.d.ts.map +1 -0
- package/dist/utils/rulesignore.js +42 -0
- package/dist/utils/rulesignore.js.map +1 -0
- package/package.json +106 -0
- package/templates/cli/AIDER.md +49 -0
- package/templates/cli/AMAZON_Q.md +25 -0
- package/templates/cli/AUGGIE.md +32 -0
- package/templates/cli/CLAUDE.md +32 -0
- package/templates/cli/CLAUDE_CODE.md +35 -0
- package/templates/cli/CLINE.md +32 -0
- package/templates/cli/CODEBUDDY.md +20 -0
- package/templates/cli/CODEIUM.md +20 -0
- package/templates/cli/CODEX.md +21 -0
- package/templates/cli/CONTINUE.md +34 -0
- package/templates/cli/CURSOR_CLI.md +28 -0
- package/templates/cli/FACTORY.md +18 -0
- package/templates/cli/GEMINI.md +35 -0
- package/templates/cli/KILOCODE.md +18 -0
- package/templates/cli/OPENCODE.md +18 -0
- package/templates/cli/_GENERIC_TEMPLATE.md +29 -0
- package/templates/commands/rulebook-task-apply.md +67 -0
- package/templates/commands/rulebook-task-archive.md +70 -0
- package/templates/commands/rulebook-task-create.md +93 -0
- package/templates/commands/rulebook-task-list.md +42 -0
- package/templates/commands/rulebook-task-show.md +52 -0
- package/templates/commands/rulebook-task-validate.md +53 -0
- package/templates/core/AGENT_AUTOMATION.md +184 -0
- package/templates/core/DAG.md +304 -0
- package/templates/core/DOCUMENTATION_RULES.md +37 -0
- package/templates/core/QUALITY_ENFORCEMENT.md +68 -0
- package/templates/core/RULEBOOK.md +1874 -0
- package/templates/frameworks/ANGULAR.md +36 -0
- package/templates/frameworks/DJANGO.md +83 -0
- package/templates/frameworks/ELECTRON.md +147 -0
- package/templates/frameworks/FLASK.md +38 -0
- package/templates/frameworks/FLUTTER.md +55 -0
- package/templates/frameworks/JQUERY.md +32 -0
- package/templates/frameworks/LARAVEL.md +38 -0
- package/templates/frameworks/NESTJS.md +43 -0
- package/templates/frameworks/NEXTJS.md +127 -0
- package/templates/frameworks/NUXT.md +40 -0
- package/templates/frameworks/RAILS.md +66 -0
- package/templates/frameworks/REACT.md +38 -0
- package/templates/frameworks/REACT_NATIVE.md +47 -0
- package/templates/frameworks/SPRING.md +39 -0
- package/templates/frameworks/SYMFONY.md +36 -0
- package/templates/frameworks/VUE.md +36 -0
- package/templates/frameworks/ZEND.md +35 -0
- package/templates/git/CI_CD_PATTERNS.md +661 -0
- package/templates/git/GITHUB_ACTIONS.md +728 -0
- package/templates/git/GITLAB_CI.md +730 -0
- package/templates/git/GIT_WORKFLOW.md +1157 -0
- package/templates/git/SECRETS_MANAGEMENT.md +585 -0
- package/templates/hooks/COMMIT_MSG.md +530 -0
- package/templates/hooks/POST_CHECKOUT.md +546 -0
- package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -0
- package/templates/hooks/PRE_COMMIT.md +414 -0
- package/templates/hooks/PRE_PUSH.md +601 -0
- package/templates/hooks/csharp-pre-commit.sh +23 -0
- package/templates/hooks/csharp-pre-push.sh +23 -0
- package/templates/hooks/dart-pre-commit.sh +30 -0
- package/templates/hooks/dart-pre-push.sh +25 -0
- package/templates/hooks/elixir-pre-commit.sh +32 -0
- package/templates/hooks/elixir-pre-push.sh +31 -0
- package/templates/hooks/erlang-pre-commit.sh +30 -0
- package/templates/hooks/erlang-pre-push.sh +37 -0
- package/templates/hooks/go-pre-commit.sh +40 -0
- package/templates/hooks/go-pre-push.sh +31 -0
- package/templates/hooks/haskell-pre-commit.sh +41 -0
- package/templates/hooks/haskell-pre-push.sh +37 -0
- package/templates/hooks/java-pre-commit.sh +34 -0
- package/templates/hooks/java-pre-push.sh +24 -0
- package/templates/hooks/kotlin-pre-commit.sh +32 -0
- package/templates/hooks/kotlin-pre-push.sh +16 -0
- package/templates/hooks/php-pre-commit.sh +36 -0
- package/templates/hooks/php-pre-push.sh +26 -0
- package/templates/hooks/python-pre-commit.sh +51 -0
- package/templates/hooks/python-pre-push.sh +25 -0
- package/templates/hooks/ruby-pre-commit.sh +33 -0
- package/templates/hooks/ruby-pre-push.sh +32 -0
- package/templates/hooks/rust-pre-commit.sh +30 -0
- package/templates/hooks/rust-pre-push.sh +30 -0
- package/templates/hooks/scala-pre-commit.sh +32 -0
- package/templates/hooks/scala-pre-push.sh +24 -0
- package/templates/hooks/swift-pre-commit.sh +25 -0
- package/templates/hooks/swift-pre-push.sh +23 -0
- package/templates/hooks/typescript-pre-commit.sh +37 -0
- package/templates/hooks/typescript-pre-push.sh +36 -0
- package/templates/ides/COPILOT.md +37 -0
- package/templates/ides/CURSOR.md +43 -0
- package/templates/ides/JETBRAINS_AI.md +35 -0
- package/templates/ides/REPLIT.md +36 -0
- package/templates/ides/TABNINE.md +29 -0
- package/templates/ides/VSCODE.md +40 -0
- package/templates/ides/WINDSURF.md +36 -0
- package/templates/ides/ZED.md +32 -0
- package/templates/languages/ADA.md +58 -0
- package/templates/languages/C.md +333 -0
- package/templates/languages/CPP.md +743 -0
- package/templates/languages/CSHARP.md +417 -0
- package/templates/languages/DART.md +332 -0
- package/templates/languages/ELIXIR.md +454 -0
- package/templates/languages/ERLANG.md +361 -0
- package/templates/languages/GO.md +645 -0
- package/templates/languages/HASKELL.md +177 -0
- package/templates/languages/JAVA.md +607 -0
- package/templates/languages/JAVASCRIPT.md +631 -0
- package/templates/languages/JULIA.md +97 -0
- package/templates/languages/KOTLIN.md +511 -0
- package/templates/languages/LISP.md +100 -0
- package/templates/languages/LUA.md +74 -0
- package/templates/languages/OBJECTIVEC.md +90 -0
- package/templates/languages/PHP.md +416 -0
- package/templates/languages/PYTHON.md +682 -0
- package/templates/languages/R.md +350 -0
- package/templates/languages/RUBY.md +421 -0
- package/templates/languages/RUST.md +477 -0
- package/templates/languages/SAS.md +73 -0
- package/templates/languages/SCALA.md +348 -0
- package/templates/languages/SOLIDITY.md +580 -0
- package/templates/languages/SQL.md +137 -0
- package/templates/languages/SWIFT.md +466 -0
- package/templates/languages/TYPESCRIPT.md +591 -0
- package/templates/languages/ZIG.md +265 -0
- package/templates/modules/ATLASSIAN.md +255 -0
- package/templates/modules/CONTEXT7.md +54 -0
- package/templates/modules/FIGMA.md +267 -0
- package/templates/modules/GITHUB_MCP.md +64 -0
- package/templates/modules/GRAFANA.md +328 -0
- package/templates/modules/NOTION.md +247 -0
- package/templates/modules/PLAYWRIGHT.md +90 -0
- package/templates/modules/RULEBOOK_MCP.md +156 -0
- package/templates/modules/SERENA.md +337 -0
- package/templates/modules/SUPABASE.md +223 -0
- package/templates/modules/SYNAP.md +69 -0
- package/templates/modules/VECTORIZER.md +63 -0
- package/templates/services/AZURE_BLOB.md +184 -0
- package/templates/services/CASSANDRA.md +239 -0
- package/templates/services/DYNAMODB.md +308 -0
- package/templates/services/ELASTICSEARCH.md +347 -0
- package/templates/services/GCS.md +178 -0
- package/templates/services/INFLUXDB.md +265 -0
- package/templates/services/KAFKA.md +341 -0
- package/templates/services/MARIADB.md +183 -0
- package/templates/services/MEMCACHED.md +242 -0
- package/templates/services/MINIO.md +201 -0
- package/templates/services/MONGODB.md +268 -0
- package/templates/services/MYSQL.md +358 -0
- package/templates/services/NEO4J.md +247 -0
- package/templates/services/ORACLE.md +290 -0
- package/templates/services/POSTGRESQL.md +326 -0
- package/templates/services/RABBITMQ.md +286 -0
- package/templates/services/REDIS.md +292 -0
- package/templates/services/S3.md +298 -0
- package/templates/services/SQLITE.md +294 -0
- package/templates/services/SQLSERVER.md +294 -0
- package/templates/workflows/codespell.yml +31 -0
- package/templates/workflows/cpp-lint.yml +47 -0
- package/templates/workflows/cpp-publish.yml +119 -0
- package/templates/workflows/cpp-test.yml +77 -0
- package/templates/workflows/dotnet-lint.yml +29 -0
- package/templates/workflows/dotnet-publish.yml +40 -0
- package/templates/workflows/dotnet-test.yml +41 -0
- package/templates/workflows/elixir-lint.yml +45 -0
- package/templates/workflows/elixir-publish.yml +49 -0
- package/templates/workflows/elixir-test.yml +54 -0
- package/templates/workflows/erlang-lint.yml +47 -0
- package/templates/workflows/erlang-test.yml +62 -0
- package/templates/workflows/go-lint.yml +39 -0
- package/templates/workflows/go-publish.yml +95 -0
- package/templates/workflows/go-test.yml +59 -0
- package/templates/workflows/java-lint.yml +60 -0
- package/templates/workflows/java-publish.yml +120 -0
- package/templates/workflows/java-test.yml +85 -0
- package/templates/workflows/kotlin-lint.yml +34 -0
- package/templates/workflows/kotlin-publish.yml +56 -0
- package/templates/workflows/kotlin-test.yml +48 -0
- package/templates/workflows/php-lint.yml +39 -0
- package/templates/workflows/php-publish.yml +50 -0
- package/templates/workflows/php-test.yml +54 -0
- package/templates/workflows/python-lint.yml +47 -0
- package/templates/workflows/python-publish.yml +91 -0
- package/templates/workflows/python-test.yml +59 -0
- package/templates/workflows/rust-lint.yml +54 -0
- package/templates/workflows/rust-publish.yml +66 -0
- package/templates/workflows/rust-test.yml +75 -0
- package/templates/workflows/solidity-lint.yml +41 -0
- package/templates/workflows/solidity-test.yml +47 -0
- package/templates/workflows/swift-lint.yml +32 -0
- package/templates/workflows/swift-publish.yml +58 -0
- package/templates/workflows/swift-test.yml +44 -0
- package/templates/workflows/typescript-lint.yml +61 -0
- package/templates/workflows/typescript-publish.yml +60 -0
- package/templates/workflows/typescript-test.yml +73 -0
- package/templates/workflows/zig-lint.yml +27 -0
- package/templates/workflows/zig-test.yml +40 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Elixir Pre-Commit Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🔍 Running Elixir pre-commit checks..."
|
|
6
|
+
|
|
7
|
+
# Format check
|
|
8
|
+
echo " → Format checking..."
|
|
9
|
+
mix format --check-formatted || {
|
|
10
|
+
echo "❌ Format check failed. Run: mix format"
|
|
11
|
+
exit 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# Lint
|
|
15
|
+
if mix help credo &> /dev/null 2>&1; then
|
|
16
|
+
echo " → Linting..."
|
|
17
|
+
mix credo --strict || {
|
|
18
|
+
echo "❌ Credo failed"
|
|
19
|
+
exit 1
|
|
20
|
+
}
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# Tests
|
|
24
|
+
echo " → Running tests..."
|
|
25
|
+
mix test || {
|
|
26
|
+
echo "❌ Tests failed"
|
|
27
|
+
exit 1
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
echo "✅ All Elixir pre-commit checks passed!"
|
|
31
|
+
exit 0
|
|
32
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Elixir Pre-Push Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🚀 Running Elixir pre-push checks..."
|
|
6
|
+
|
|
7
|
+
# Full test suite
|
|
8
|
+
echo " → Running full test suite..."
|
|
9
|
+
mix test || {
|
|
10
|
+
echo "❌ Tests failed"
|
|
11
|
+
exit 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# Compile release
|
|
15
|
+
echo " → Compiling release..."
|
|
16
|
+
MIX_ENV=prod mix compile || {
|
|
17
|
+
echo "❌ Compilation failed"
|
|
18
|
+
exit 1
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
# Dialyzer (if configured)
|
|
22
|
+
if mix help dialyzer &> /dev/null 2>&1; then
|
|
23
|
+
echo " → Running Dialyzer..."
|
|
24
|
+
mix dialyzer || {
|
|
25
|
+
echo "⚠️ Dialyzer warnings found"
|
|
26
|
+
}
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
echo "✅ All Elixir pre-push checks passed!"
|
|
30
|
+
exit 0
|
|
31
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Erlang Pre-Commit Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🔍 Running Erlang pre-commit checks..."
|
|
6
|
+
|
|
7
|
+
# Format check
|
|
8
|
+
echo " → Format checking..."
|
|
9
|
+
rebar3 format --verify || {
|
|
10
|
+
echo "❌ Format check failed. Run: rebar3 format"
|
|
11
|
+
exit 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# Dialyzer
|
|
15
|
+
echo " → Running Dialyzer..."
|
|
16
|
+
rebar3 dialyzer || {
|
|
17
|
+
echo "❌ Dialyzer failed"
|
|
18
|
+
exit 1
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
# Tests
|
|
22
|
+
echo " → Running tests..."
|
|
23
|
+
rebar3 eunit || {
|
|
24
|
+
echo "❌ Tests failed"
|
|
25
|
+
exit 1
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
echo "✅ All Erlang pre-commit checks passed!"
|
|
29
|
+
exit 0
|
|
30
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Erlang Pre-Push Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🚀 Running Erlang pre-push checks..."
|
|
6
|
+
|
|
7
|
+
# Compile
|
|
8
|
+
echo " → Compiling..."
|
|
9
|
+
rebar3 compile || {
|
|
10
|
+
echo "❌ Compilation failed"
|
|
11
|
+
exit 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# Full test suite
|
|
15
|
+
echo " → Running EUnit tests..."
|
|
16
|
+
rebar3 eunit || {
|
|
17
|
+
echo "❌ EUnit tests failed"
|
|
18
|
+
exit 1
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
echo " → Running Common Test..."
|
|
22
|
+
rebar3 ct || {
|
|
23
|
+
echo "❌ Common Test failed"
|
|
24
|
+
exit 1
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
# Coverage (if configured)
|
|
28
|
+
if rebar3 help cover &> /dev/null 2>&1; then
|
|
29
|
+
echo " → Coverage check..."
|
|
30
|
+
rebar3 cover || {
|
|
31
|
+
echo "⚠️ Coverage check failed"
|
|
32
|
+
}
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
echo "✅ All Erlang pre-push checks passed!"
|
|
36
|
+
exit 0
|
|
37
|
+
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Go Pre-Commit Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🔍 Running Go pre-commit checks..."
|
|
6
|
+
|
|
7
|
+
# Format check
|
|
8
|
+
echo " → Format checking..."
|
|
9
|
+
if [ "$(gofmt -l . | wc -l)" -gt 0 ]; then
|
|
10
|
+
echo "❌ Go files not formatted. Run: gofmt -w ."
|
|
11
|
+
gofmt -l .
|
|
12
|
+
exit 1
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
# Vet
|
|
16
|
+
echo " → Running go vet..."
|
|
17
|
+
go vet ./... || {
|
|
18
|
+
echo "❌ go vet failed"
|
|
19
|
+
exit 1
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
# Lint (if golangci-lint available)
|
|
23
|
+
if command -v golangci-lint &> /dev/null; then
|
|
24
|
+
echo " → Linting..."
|
|
25
|
+
golangci-lint run || {
|
|
26
|
+
echo "❌ Linting failed"
|
|
27
|
+
exit 1
|
|
28
|
+
}
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
# Tests
|
|
32
|
+
echo " → Running tests..."
|
|
33
|
+
go test ./... || {
|
|
34
|
+
echo "❌ Tests failed"
|
|
35
|
+
exit 1
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
echo "✅ All Go pre-commit checks passed!"
|
|
39
|
+
exit 0
|
|
40
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Go Pre-Push Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🚀 Running Go pre-push checks..."
|
|
6
|
+
|
|
7
|
+
# Full test suite with coverage
|
|
8
|
+
echo " → Running tests with coverage..."
|
|
9
|
+
go test -cover ./... || {
|
|
10
|
+
echo "❌ Tests failed"
|
|
11
|
+
exit 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# Build
|
|
15
|
+
echo " → Building..."
|
|
16
|
+
go build ./... || {
|
|
17
|
+
echo "❌ Build failed"
|
|
18
|
+
exit 1
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
# Security check (if gosec available)
|
|
22
|
+
if command -v gosec &> /dev/null; then
|
|
23
|
+
echo " → Security scan..."
|
|
24
|
+
gosec ./... || {
|
|
25
|
+
echo "⚠️ Security issues found"
|
|
26
|
+
}
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
echo "✅ All Go pre-push checks passed!"
|
|
30
|
+
exit 0
|
|
31
|
+
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Haskell Pre-Commit Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🔍 Running Haskell pre-commit checks..."
|
|
6
|
+
|
|
7
|
+
# Lint
|
|
8
|
+
if command -v hlint &> /dev/null; then
|
|
9
|
+
echo " → Linting..."
|
|
10
|
+
hlint . || {
|
|
11
|
+
echo "❌ HLint failed"
|
|
12
|
+
exit 1
|
|
13
|
+
}
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
# Format check (if ormolu available)
|
|
17
|
+
if command -v ormolu &> /dev/null; then
|
|
18
|
+
echo " → Format checking..."
|
|
19
|
+
ormolu --mode check $(find . -name '*.hs') || {
|
|
20
|
+
echo "❌ Format check failed. Run: ormolu --mode inplace \$(find . -name '*.hs')"
|
|
21
|
+
exit 1
|
|
22
|
+
}
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
# Tests
|
|
26
|
+
echo " → Running tests..."
|
|
27
|
+
if [ -f "stack.yaml" ]; then
|
|
28
|
+
stack test || {
|
|
29
|
+
echo "❌ Tests failed"
|
|
30
|
+
exit 1
|
|
31
|
+
}
|
|
32
|
+
else
|
|
33
|
+
cabal test || {
|
|
34
|
+
echo "❌ Tests failed"
|
|
35
|
+
exit 1
|
|
36
|
+
}
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
echo "✅ All Haskell pre-commit checks passed!"
|
|
40
|
+
exit 0
|
|
41
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Haskell Pre-Push Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🚀 Running Haskell pre-push checks..."
|
|
6
|
+
|
|
7
|
+
# Build
|
|
8
|
+
echo " → Building..."
|
|
9
|
+
if [ -f "stack.yaml" ]; then
|
|
10
|
+
stack build || {
|
|
11
|
+
echo "❌ Build failed"
|
|
12
|
+
exit 1
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
# Full tests
|
|
16
|
+
echo " → Running full test suite..."
|
|
17
|
+
stack test || {
|
|
18
|
+
echo "❌ Tests failed"
|
|
19
|
+
exit 1
|
|
20
|
+
}
|
|
21
|
+
else
|
|
22
|
+
cabal build || {
|
|
23
|
+
echo "❌ Build failed"
|
|
24
|
+
exit 1
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
# Full tests
|
|
28
|
+
echo " → Running full test suite..."
|
|
29
|
+
cabal test || {
|
|
30
|
+
echo "❌ Tests failed"
|
|
31
|
+
exit 1
|
|
32
|
+
}
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
echo "✅ All Haskell pre-push checks passed!"
|
|
36
|
+
exit 0
|
|
37
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Java Pre-Commit Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🔍 Running Java pre-commit checks..."
|
|
6
|
+
|
|
7
|
+
if [ -f "pom.xml" ]; then
|
|
8
|
+
echo " → Maven checks..."
|
|
9
|
+
|
|
10
|
+
# Format check
|
|
11
|
+
mvn spotless:check || {
|
|
12
|
+
echo "❌ Format check failed. Run: mvn spotless:apply"
|
|
13
|
+
exit 1
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
# Verify
|
|
17
|
+
mvn verify || {
|
|
18
|
+
echo "❌ Maven verify failed"
|
|
19
|
+
exit 1
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
elif [ -f "build.gradle" ] || [ -f "build.gradle.kts" ]; then
|
|
23
|
+
echo " → Gradle checks..."
|
|
24
|
+
|
|
25
|
+
# Check
|
|
26
|
+
./gradlew check || {
|
|
27
|
+
echo "❌ Gradle check failed"
|
|
28
|
+
exit 1
|
|
29
|
+
}
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
echo "✅ All Java pre-commit checks passed!"
|
|
33
|
+
exit 0
|
|
34
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Java Pre-Push Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🚀 Running Java pre-push checks..."
|
|
6
|
+
|
|
7
|
+
if [ -f "pom.xml" ]; then
|
|
8
|
+
echo " → Maven clean package..."
|
|
9
|
+
mvn clean package || {
|
|
10
|
+
echo "❌ Maven package failed"
|
|
11
|
+
exit 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
elif [ -f "build.gradle" ] || [ -f "build.gradle.kts" ]; then
|
|
15
|
+
echo " → Gradle clean build..."
|
|
16
|
+
./gradlew clean build || {
|
|
17
|
+
echo "❌ Gradle build failed"
|
|
18
|
+
exit 1
|
|
19
|
+
}
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
echo "✅ All Java pre-push checks passed!"
|
|
23
|
+
exit 0
|
|
24
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Kotlin Pre-Commit Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🔍 Running Kotlin pre-commit checks..."
|
|
6
|
+
|
|
7
|
+
# Lint
|
|
8
|
+
echo " → Linting..."
|
|
9
|
+
./gradlew ktlintCheck || {
|
|
10
|
+
echo "❌ ktlint failed. Run: ./gradlew ktlintFormat"
|
|
11
|
+
exit 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# Detekt
|
|
15
|
+
if ./gradlew tasks --all | grep -q detekt; then
|
|
16
|
+
echo " → Running Detekt..."
|
|
17
|
+
./gradlew detekt || {
|
|
18
|
+
echo "❌ Detekt failed"
|
|
19
|
+
exit 1
|
|
20
|
+
}
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# Tests
|
|
24
|
+
echo " → Running tests..."
|
|
25
|
+
./gradlew test || {
|
|
26
|
+
echo "❌ Tests failed"
|
|
27
|
+
exit 1
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
echo "✅ All Kotlin pre-commit checks passed!"
|
|
31
|
+
exit 0
|
|
32
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Kotlin Pre-Push Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🚀 Running Kotlin pre-push checks..."
|
|
6
|
+
|
|
7
|
+
# Clean build
|
|
8
|
+
echo " → Clean building..."
|
|
9
|
+
./gradlew clean build || {
|
|
10
|
+
echo "❌ Build failed"
|
|
11
|
+
exit 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
echo "✅ All Kotlin pre-push checks passed!"
|
|
15
|
+
exit 0
|
|
16
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# PHP Pre-Commit Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🔍 Running PHP pre-commit checks..."
|
|
6
|
+
|
|
7
|
+
# Format & Lint
|
|
8
|
+
if command -v php-cs-fixer &> /dev/null; then
|
|
9
|
+
echo " → Format checking..."
|
|
10
|
+
php-cs-fixer fix --dry-run --diff || {
|
|
11
|
+
echo "❌ Format check failed. Run: php-cs-fixer fix"
|
|
12
|
+
exit 1
|
|
13
|
+
}
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
# Static analysis
|
|
17
|
+
if command -v phpstan &> /dev/null; then
|
|
18
|
+
echo " → Static analysis..."
|
|
19
|
+
phpstan analyze || {
|
|
20
|
+
echo "❌ PHPStan failed"
|
|
21
|
+
exit 1
|
|
22
|
+
}
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
# Tests
|
|
26
|
+
if command -v phpunit &> /dev/null; then
|
|
27
|
+
echo " → Running tests..."
|
|
28
|
+
phpunit || {
|
|
29
|
+
echo "❌ Tests failed"
|
|
30
|
+
exit 1
|
|
31
|
+
}
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
echo "✅ All PHP pre-commit checks passed!"
|
|
35
|
+
exit 0
|
|
36
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# PHP Pre-Push Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🚀 Running PHP pre-push checks..."
|
|
6
|
+
|
|
7
|
+
# Full test suite
|
|
8
|
+
if command -v phpunit &> /dev/null; then
|
|
9
|
+
echo " → Running full test suite..."
|
|
10
|
+
phpunit --coverage-text || {
|
|
11
|
+
echo "❌ Tests or coverage failed"
|
|
12
|
+
exit 1
|
|
13
|
+
}
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
# Security check
|
|
17
|
+
if command -v composer &> /dev/null; then
|
|
18
|
+
echo " → Security audit..."
|
|
19
|
+
composer audit || {
|
|
20
|
+
echo "⚠️ Security vulnerabilities found"
|
|
21
|
+
}
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
echo "✅ All PHP pre-push checks passed!"
|
|
25
|
+
exit 0
|
|
26
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Python Pre-Commit Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🔍 Running Python pre-commit checks..."
|
|
6
|
+
|
|
7
|
+
# Format check
|
|
8
|
+
if command -v black &> /dev/null; then
|
|
9
|
+
echo " → Format checking..."
|
|
10
|
+
black --check . || {
|
|
11
|
+
echo "❌ Format check failed. Run: black ."
|
|
12
|
+
exit 1
|
|
13
|
+
}
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
# Lint
|
|
17
|
+
if command -v ruff &> /dev/null; then
|
|
18
|
+
echo " → Linting with Ruff..."
|
|
19
|
+
ruff check . || {
|
|
20
|
+
echo "❌ Ruff check failed"
|
|
21
|
+
exit 1
|
|
22
|
+
}
|
|
23
|
+
elif command -v flake8 &> /dev/null; then
|
|
24
|
+
echo " → Linting with Flake8..."
|
|
25
|
+
flake8 . || {
|
|
26
|
+
echo "❌ Flake8 check failed"
|
|
27
|
+
exit 1
|
|
28
|
+
}
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
# Type check
|
|
32
|
+
if command -v mypy &> /dev/null; then
|
|
33
|
+
echo " → Type checking..."
|
|
34
|
+
mypy . || {
|
|
35
|
+
echo "❌ Type check failed"
|
|
36
|
+
exit 1
|
|
37
|
+
}
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
# Tests
|
|
41
|
+
if command -v pytest &> /dev/null; then
|
|
42
|
+
echo " → Running tests..."
|
|
43
|
+
pytest || {
|
|
44
|
+
echo "❌ Tests failed"
|
|
45
|
+
exit 1
|
|
46
|
+
}
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
echo "✅ All Python pre-commit checks passed!"
|
|
50
|
+
exit 0
|
|
51
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Python Pre-Push Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🚀 Running Python pre-push checks..."
|
|
6
|
+
|
|
7
|
+
# Full test suite with coverage
|
|
8
|
+
if command -v pytest &> /dev/null; then
|
|
9
|
+
echo " → Running full test suite with coverage..."
|
|
10
|
+
pytest --cov --cov-report=term-missing || {
|
|
11
|
+
echo "❌ Tests or coverage failed"
|
|
12
|
+
exit 1
|
|
13
|
+
}
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
# Security audit
|
|
17
|
+
if [ -f "requirements.txt" ] && command -v pip-audit &> /dev/null; then
|
|
18
|
+
echo " → Security audit..."
|
|
19
|
+
pip-audit || {
|
|
20
|
+
echo "⚠️ Security vulnerabilities found"
|
|
21
|
+
}
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
echo "✅ All Python pre-push checks passed!"
|
|
25
|
+
exit 0
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Ruby Pre-Commit Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🔍 Running Ruby pre-commit checks..."
|
|
6
|
+
|
|
7
|
+
# Lint
|
|
8
|
+
if command -v rubocop &> /dev/null; then
|
|
9
|
+
echo " → Linting..."
|
|
10
|
+
rubocop || {
|
|
11
|
+
echo "❌ RuboCop failed"
|
|
12
|
+
exit 1
|
|
13
|
+
}
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
# Tests
|
|
17
|
+
if command -v rspec &> /dev/null; then
|
|
18
|
+
echo " → Running tests..."
|
|
19
|
+
bundle exec rspec || {
|
|
20
|
+
echo "❌ Tests failed"
|
|
21
|
+
exit 1
|
|
22
|
+
}
|
|
23
|
+
elif command -v rake &> /dev/null; then
|
|
24
|
+
echo " → Running tests..."
|
|
25
|
+
bundle exec rake test || {
|
|
26
|
+
echo "❌ Tests failed"
|
|
27
|
+
exit 1
|
|
28
|
+
}
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
echo "✅ All Ruby pre-commit checks passed!"
|
|
32
|
+
exit 0
|
|
33
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Ruby Pre-Push Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🚀 Running Ruby pre-push checks..."
|
|
6
|
+
|
|
7
|
+
# Full test suite
|
|
8
|
+
if command -v rspec &> /dev/null; then
|
|
9
|
+
echo " → Running full test suite..."
|
|
10
|
+
bundle exec rspec || {
|
|
11
|
+
echo "❌ Tests failed"
|
|
12
|
+
exit 1
|
|
13
|
+
}
|
|
14
|
+
elif command -v rake &> /dev/null; then
|
|
15
|
+
echo " → Running tests..."
|
|
16
|
+
bundle exec rake test || {
|
|
17
|
+
echo "❌ Tests failed"
|
|
18
|
+
exit 1
|
|
19
|
+
}
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
# Security audit
|
|
23
|
+
if command -v bundler-audit &> /dev/null; then
|
|
24
|
+
echo " → Security audit..."
|
|
25
|
+
bundle exec bundler-audit check --update || {
|
|
26
|
+
echo "⚠️ Security vulnerabilities found"
|
|
27
|
+
}
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
echo "✅ All Ruby pre-push checks passed!"
|
|
31
|
+
exit 0
|
|
32
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Rust Pre-Commit Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🔍 Running Rust pre-commit checks..."
|
|
6
|
+
|
|
7
|
+
# Format check
|
|
8
|
+
echo " → Format checking..."
|
|
9
|
+
cargo fmt --all -- --check || {
|
|
10
|
+
echo "❌ Format check failed. Run: cargo fmt"
|
|
11
|
+
exit 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# Clippy
|
|
15
|
+
echo " → Running Clippy..."
|
|
16
|
+
cargo clippy --all-targets --all-features -- -D warnings || {
|
|
17
|
+
echo "❌ Clippy failed"
|
|
18
|
+
exit 1
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
# Tests
|
|
22
|
+
echo " → Running tests..."
|
|
23
|
+
cargo test --all-features || {
|
|
24
|
+
echo "❌ Tests failed"
|
|
25
|
+
exit 1
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
echo "✅ All Rust pre-commit checks passed!"
|
|
29
|
+
exit 0
|
|
30
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Rust Pre-Push Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🚀 Running Rust pre-push checks..."
|
|
6
|
+
|
|
7
|
+
# Full test suite
|
|
8
|
+
echo " → Running full test suite..."
|
|
9
|
+
cargo test --all-features || {
|
|
10
|
+
echo "❌ Tests failed"
|
|
11
|
+
exit 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# Build release
|
|
15
|
+
echo " → Building release..."
|
|
16
|
+
cargo build --release || {
|
|
17
|
+
echo "❌ Release build failed"
|
|
18
|
+
exit 1
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
# Check
|
|
22
|
+
echo " → Running cargo check..."
|
|
23
|
+
cargo check --all-targets --all-features || {
|
|
24
|
+
echo "❌ Cargo check failed"
|
|
25
|
+
exit 1
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
echo "✅ All Rust pre-push checks passed!"
|
|
29
|
+
exit 0
|
|
30
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Scala Pre-Commit Hook
|
|
3
|
+
# Generated by @hivellm/rulebook
|
|
4
|
+
|
|
5
|
+
echo "🔍 Running Scala pre-commit checks..."
|
|
6
|
+
|
|
7
|
+
# Format check
|
|
8
|
+
echo " → Format checking..."
|
|
9
|
+
sbt scalafmtCheckAll || {
|
|
10
|
+
echo "❌ Format check failed. Run: sbt scalafmtAll"
|
|
11
|
+
exit 1
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# Lint (if scalafix configured)
|
|
15
|
+
if sbt tasks | grep -q scalafix; then
|
|
16
|
+
echo " → Linting..."
|
|
17
|
+
sbt "scalafix --check" || {
|
|
18
|
+
echo "❌ Scalafix failed"
|
|
19
|
+
exit 1
|
|
20
|
+
}
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# Tests
|
|
24
|
+
echo " → Running tests..."
|
|
25
|
+
sbt test || {
|
|
26
|
+
echo "❌ Tests failed"
|
|
27
|
+
exit 1
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
echo "✅ All Scala pre-commit checks passed!"
|
|
31
|
+
exit 0
|
|
32
|
+
|