
All checks were successful
Build-Test-Publish / build (linux/amd64) (push) Successful in 1m8s
Build-Test-Publish / build (linux/arm64) (push) Successful in 1m36s
Build-Test-Publish / test-install-from-scratch (linux/amd64) (push) Successful in 6s
Build-Test-Publish / test-install-from-scratch (linux/arm64) (push) Successful in 7s
73 lines
2.8 KiB
Markdown
73 lines
2.8 KiB
Markdown
# 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 for the name of the project
|