Files
getpkg/.kiro/steering/structure.md
Your Name f5ba2e719b
All checks were successful
Build-Test-Publish / build (linux/amd64) (push) Successful in 54s
Build-Test-Publish / build (linux/arm64) (push) Successful in 1m23s
Build-Test-Publish / test-install-from-scratch (linux/amd64) (push) Successful in 7s
Build-Test-Publish / test-install-from-scratch (linux/arm64) (push) Successful in 7s
Modify whatsdirty/publish.sh
2025-07-19 13:30:51 +12:00

2.7 KiB

Project Structure

Repository Layout

├── buildtestpublish_all.sh    # Master build script for all projects
├── clean.sh                   # Global cleanup script
├── README.md                  # Main project documentation
└── <tool-name>/               # Individual tool directories

Tool Directory Structure

C++ Projects (CMake-based)

<tool-name>/
├── CMakeLists.txt             # CMake configuration
├── build.sh                   # Build script
├── test.sh                    # Test script  
├── clean.sh                   # Cleanup script
├── publish.sh                 # Publishing script
├── install.sh                 # Installation script
├── README.md                  # Tool documentation
├── Dockerfile.dropshell-build # Docker build configuration
├── src/                       # Source code
│   ├── <tool>.cpp            # Main source file
│   ├── version.hpp.in        # Version template
│   └── ...                   # Additional sources
├── build/                     # Build artifacts (generated)
├── output/                    # Final executables (generated)
└── .vscode/                   # VS Code configuration

Shell Script Projects

<tool-name>/
├── <tool-name>               # Executable shell script
├── build.sh                  # Build script (may be no-op)
├── test.sh                   # Test script
├── clean.sh                  # Cleanup script
├── publish.sh                # Publishing script
└── setup_script.sh           # Post-install setup (optional)

Standard Files

Required Scripts

  • build.sh: Builds the project (Docker for C++, no-op for shell)
  • test.sh: Runs project tests
  • clean.sh: Removes build artifacts
  • publish.sh: Publishes to getpkg.xyz registry

Optional Files

  • install.sh: System-wide installation script
  • setup_script.sh: Post-install setup for getpkg
  • cmake_prebuild.sh: Pre-build setup for CMake projects

Generated Directories

  • build/: CMake build artifacts (C++ projects)
  • output/: Final executables ready for distribution
  • test_*/: Test-specific directories

Naming Conventions

  • Tool directories match executable names
  • C++ source files typically match project name
  • Version templates use .hpp.in extension
  • Docker files use Dockerfile.dropshell-build pattern
  • Test directories prefixed with test_

Configuration Files

  • .gitignore: Standard ignore patterns for build artifacts
  • .vscode/: VS Code workspace settings
  • CMakeLists.txt: Follows standard template with PROJECT_NAME parameter