EDP Build System
Documentation for the edp() shell function (~/.edp_helpers.sh) — the central build, deploy and service control tool for all EDP projects.
Architecture
All file transfers use tar-over-SSH. Deploy and compile are separate commands:
bash
edp <project> deploy [host] # Push files to host, stop/start service edp <project> compile [host] # MSBuild on host, fetch exe back
Typical workflow:
bash
edp edpweb deploy eifert-dev # Source auf Dev-VM schicken edp edpweb compile # Bauen + exe zurückholen edp edpweb deploy dev-edpweb01 # Alles (inkl. exe) auf Remote deployen
Usage
bash
edp <project> <command> [options]
Commands
| Command | Description |
|---|---|
deploy [host] | Push project files via tar-over-SSH (default host: $EDP_VM_HOST) |
compile [host] [-b] [-p:Win32|Win64] [-cfg:Debug|Release] | Compile on host + fetch exe (default host: $EDP_VM_HOST) |
start [host] | Start Windows service |
stop [host] | Stop Windows service |
status [host] | Query service status |
log [filter] [--level=LEVEL] | Stream live log (levels: fehler, debug, etc.) |
compilelog | Tail the compile output log |
Compile Options
- •
-b— Full Build (default: Make = incremental) - •
-p:Win32/-p:Win64— Override platform (default from compile.config) - •
-cfg:Debug/-cfg:Release— Override configuration (default from compile.config)
Deploy Flow
- •Read
TARGET_DIRfromcompile.config(default: project name) - •Stop Windows service (if
SERVICE_NAMEset) - •tar-over-SSH: push all project files to
C:\EDP\<target_dir>on target host - •Start Windows service (if
SERVICE_NAMEset)
Compile Flow
- •Read config from
<project>/compile.config - •CLI flags override defaults
- •Stop Windows service (if
SERVICE_NAMEset) - •SSH to host:
rsvars.bat→MSBuild→ compile - •Check build output for success
- •SCP the built exe back to Linux project directory
- •Start Windows service (if
SERVICE_NAMEset)
compile.config Format
Each project has a compile.config in its repo root:
ini
PROJECT_NAME=edpweb.dproj PLATFORM=Win64 CONFIG=Release SERVICE_NAME=edpwebservice TARGET_DIR=edpweb
| Key | Description |
|---|---|
PROJECT_NAME | Delphi .dproj filename |
PLATFORM | Win32 or Win64 |
CONFIG | Release or Debug |
SERVICE_NAME | Windows service name (optional — omit if no service) |
TARGET_DIR | Subdirectory under C:\EDP\ (optional, defaults to project name) |
Target Directory
All projects deploy to C:\EDP\<TARGET_DIR>. The TARGET_DIR defaults to the project name if not set in compile.config.
VM Configuration
- •SSH alias:
eifert-dev(configured in~/.ssh/config) - •Default host:
$EDP_VM_HOST(eifert-dev) - •VM host: KVM/libvirt, name
EifertSystem_Development - •VM lifecycle:
devvm start|stop|force-stop|status|console|ip
Adding a New Project
- •Create
compile.configin the project directory - •If the project runs as a Windows service, register it on the VM:
bash
ssh eifert-dev 'sc create MyService binPath= "C:\EDP\myproject\MyApp.exe"'
- •Deploy and compile:
bash
edp myproject deploy # Push source files edp myproject compile # Build + fetch exe