1799401db5
Branch Policy Check / Verify merge target (pull_request) Successful in 1s
- Add Copyright + FILE INFORMATION headers to 11 PHP enterprise classes - Add FILE INFORMATION blocks to 9 PHP files with incomplete headers - Add headers to 2 test files - Add markdown comment headers to 27 index/README files - Add headers to 5 root markdown files - Add FILE INFORMATION to 4 files with existing but incomplete headers All files now conform to moko-platform file header standard. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
141 lines
3.4 KiB
Markdown
141 lines
3.4 KiB
Markdown
<!--
|
|
Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
|
|
SPDX-License-Identifier: GPL-3.0-or-later
|
|
FILE INFORMATION
|
|
DEFGROUP: MokoStandards.Index
|
|
INGROUP: MokoStandards.Templates.Scripts
|
|
REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
|
PATH: /templates/scripts/README.md
|
|
BRIEF: Script templates README
|
|
-->
|
|
|
|
# Script Templates
|
|
|
|
This directory contains template scripts for common repository operations including validation, fixes, and release automation.
|
|
|
|
## Directory Structure
|
|
|
|
- `validate/` - Validation scripts for CI pipelines
|
|
- `fix/` - Automated fix scripts for common issues
|
|
- `release/` - Release automation scripts
|
|
- `lib/` - Shared library functions
|
|
|
|
## Validation Scripts
|
|
|
|
### validate/tabs.sh
|
|
Validates that no literal tab characters exist in source files.
|
|
|
|
### validate/paths.sh
|
|
Validates that path separators use forward slashes.
|
|
|
|
### validate/changelog.sh
|
|
Validates CHANGELOG.md structure and format.
|
|
|
|
### validate/xml_wellformed.sh
|
|
Validates XML files are well-formed.
|
|
|
|
### validate/license_headers.sh
|
|
Validates license headers in source files.
|
|
|
|
### validate/no_secrets.sh
|
|
Checks for potential secrets in committed files.
|
|
|
|
### validate/php_syntax.sh
|
|
Validates PHP syntax (Joomla projects).
|
|
|
|
### validate/version_alignment.sh
|
|
Validates version alignment across manifest files.
|
|
|
|
### validate/manifest.sh
|
|
Validates Joomla manifest structure (Joomla projects).
|
|
|
|
### validate/language_structure.sh
|
|
Validates language file structure (Joomla projects).
|
|
|
|
## Fix Scripts
|
|
|
|
### fix/line_endings.sh
|
|
Fixes line endings to LF.
|
|
|
|
### fix/permissions.sh
|
|
Fixes file permissions (644 for files, 755 for directories and scripts).
|
|
|
|
## Release Scripts
|
|
|
|
### release/package.sh
|
|
Creates release package with proper structure.
|
|
|
|
## Library Scripts
|
|
|
|
### lib/common.sh
|
|
Common utility functions for scripts including logging, command checks, and git utilities.
|
|
|
|
## Usage
|
|
|
|
### In CI Workflows
|
|
|
|
Add validation scripts to your CI workflow:
|
|
|
|
```yaml
|
|
- name: Required validations
|
|
run: |
|
|
set -e
|
|
scripts/validate/manifest.sh
|
|
scripts/validate/xml_wellformed.sh
|
|
```
|
|
|
|
### Manual Execution
|
|
|
|
Make scripts executable and run:
|
|
|
|
```bash
|
|
chmod +x scripts/validate/*.sh
|
|
./scripts/validate/tabs.sh
|
|
```
|
|
|
|
### With Library Functions
|
|
|
|
Source the common library in your scripts:
|
|
|
|
```bash
|
|
#!/usr/bin/env bash
|
|
source "$(dirname "$0")/../lib/common.sh"
|
|
|
|
log_info "Starting validation..."
|
|
require_command "xmllint"
|
|
```
|
|
|
|
## Customization
|
|
|
|
These are template scripts. Adapt them to your project's specific needs:
|
|
|
|
1. Copy relevant scripts to your project's `scripts/` directory
|
|
2. Modify validation rules to match your standards
|
|
3. Update file patterns and paths as needed
|
|
4. Add project-specific validation logic
|
|
|
|
## Standards Compliance
|
|
|
|
All scripts follow MokoStandards requirements:
|
|
|
|
- SPDX license headers
|
|
- GPL-3.0-or-later license
|
|
- Proper error handling with `set -euo pipefail`
|
|
- Informative logging output
|
|
- Exit code conventions (0 = success, 1 = failure)
|
|
|
|
## Integration with repo_health.yml
|
|
|
|
The `repo_health.yml` workflow enforces script governance:
|
|
|
|
- Allowed directories: `scripts/`, `scripts/validate/`, `scripts/fix/`, `scripts/release/`, `scripts/lib/`
|
|
- ShellCheck validation (advisory)
|
|
- Script structure validation
|
|
|
|
## Notes
|
|
|
|
- Scripts in `validate/` should exit with code 1 on failure
|
|
- Scripts in `fix/` should be idempotent
|
|
- Scripts in `release/` should be safe to run multiple times
|
|
- Always test scripts locally before committing
|