A simple JavaFX GUI application for pushing files to Coder workspaces on Windows 10/11.
- Workspace Selection - Lists all available Coder workspaces
- File Transfer - Push files from local
TEST_DATAfolder to remote workspace - Integrity Verification - SHA-256 checksum verification after transfer
- Debug Mode - Optional verbose output for troubleshooting
Download and install:
java --version- Maven Download
- Add
binfolder to PATH
mvn --versionThe Coder CLI must be installed and authenticated:
- Download from your Coder deployment or Coder releases
- Add to PATH
- Authenticate:
coder login https://your-coder-deployment.com
coder list # Verify it works# Clone
git clone https://github.com/your-org/coder-file-push.git
cd coder-file-push
# Build
mvn clean package
# Run
mvn javafx:run- Launch the application
- Select a workspace from the dropdown
- Place files in the
TEST_DATA/folder - Set remote destination path (default:
/home/coder) - Click Push Files
- Check status - files show
[VERIFIED]when checksum matches
coder-file-push/
├── pom.xml # Maven build config
├── README.md
├── TEST_DATA/ # Place files here to push
│ └── sample.txt
└── src/
├── main/
│ ├── java/com/coder/filepush/
│ │ ├── Main.java # JavaFX entry point
│ │ ├── MainController.java # UI controller
│ │ ├── CoderCliExecutor.java# CLI wrapper
│ │ ├── CommandRunner.java # Interface for testability
│ │ ├── DefaultCommandRunner.java
│ │ └── ProcessResult.java
│ └── resources/
│ └── main.fxml # UI layout
└── test/
└── java/com/coder/filepush/
└── CoderCliExecutorTest.java
mvn test8 unit tests with mocked CLI interactions:
- Checksum calculation
- Workspace list parsing
- Push success/failure
- Verification match/mismatch
| REQ | Description | Status |
|---|---|---|
| REQ_001 | GUI on Windows 10/11 | ✅ JavaFX |
| REQ_002 | Modern stable Java | ✅ Java 17+ LTS |
| REQ_003 | Use installed Coder CLI | ✅ Checks on startup |
| REQ_004 | Use ./TEST_DATA folder | ✅ Hardcoded |
| REQ_005 | Simple as possible | ✅ Single window |
| REQ_006 | Show/select workspaces | ✅ Dropdown |
graph LR
A[GUI] --> B[MainController]
B --> C[CoderCliExecutor]
C --> D[CommandRunner]
D --> E[coder CLI]
E --> F[Workspace]
MIT