
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
2.7 KiB
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