Files
MokoCassiopeia/scripts

Scripts Documentation

All automation scripts for the moko-cassiopeia project are written in Python for cross-platform compatibility and support both Joomla and Dolibarr extensions.

Quick Reference

# Run all validations
make validate
python3 scripts/run/validate_all.py

# Run specific validations
python3 scripts/validate/manifest.py
python3 scripts/validate/xml_wellformed.py

# Create distribution package (auto-detects Joomla or Dolibarr)
make package
python3 scripts/release/package_extension.py dist

Platform Support

All scripts automatically detect and support:

  • Joomla Extensions: Templates, Components, Modules, Plugins, Packages
  • Dolibarr Modules: Automatic detection and packaging

Available Scripts

Validation Scripts (scripts/validate/)

  • manifest.py - Validate extension manifests (Joomla/Dolibarr)
  • xml_wellformed.py - Validate XML syntax
  • workflows.py - Validate GitHub Actions workflows
  • tabs.py - Check for tab characters in YAML
  • no_secrets.py - Scan for secrets/credentials
  • paths.py - Check for Windows-style paths
  • php_syntax.py - Validate PHP syntax

Release Scripts (scripts/release/)

  • package_extension.py - Create distributable ZIP packages

Run Scripts (scripts/run/)

  • validate_all.py - Run all validation scripts
  • scaffold_extension.py - Create new extension scaffolding

Library Scripts (scripts/lib/)

  • common.py - Common utilities
  • joomla_manifest.py - Joomla manifest parsing
  • dolibarr_manifest.py - Dolibarr module parsing
  • extension_utils.py - Unified extension detection

Requirements

  • Python 3.6+
  • Git
  • PHP (for PHP syntax validation)

Migration from Shell Scripts

All shell scripts have been converted to Python. Use Python equivalents:

# Old (removed)                  # New
./scripts/validate/manifest.sh  → python3 scripts/validate/manifest.py
./scripts/release/package.sh    → python3 scripts/release/package_extension.py

For detailed documentation, see individual script help:

python3 scripts/validate/manifest.py --help
python3 scripts/release/package_extension.py --help

License

GPL-3.0-or-later - See LICENSE