rename app module to jrunner for consistency

Changes:
- Rename app/ directory to jrunner/ (preserves git history)
- Update settings.gradle to reference jrunner module
- Update readme.md with new paths (jrunner/build/, /opt/jrunner)
- Update CLAUDE.md documentation with new file paths

Build outputs now named jrunner.zip, jrunner.jar, bin/jrunner instead
of generic "app" names. This makes the project structure clearer and
aligns module name with project name.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Paul Trowbridge 2026-01-06 21:53:08 -05:00
parent 809f2a8949
commit 8cdd88d053
6 changed files with 10 additions and 13 deletions

View File

@ -25,22 +25,19 @@ gradle test
Build distribution package: Build distribution package:
```bash ```bash
gradle build gradle build
# Creates app/build/distributions/app.zip # Creates jrunner/build/distributions/jrunner.zip
``` ```
Deploy to /opt (as documented in readme.md): Deploy to /opt (as documented in readme.md):
```bash ```bash
sudo cp app/build/distributions/app.zip /opt/ sudo unzip jrunner/build/distributions/jrunner.zip -d /opt/
sudo rm -rf /opt/app/ sudo ln -sf /opt/jrunner/bin/jrunner /usr/local/bin/jrunner
sudo unzip /opt/app.zip -d /opt/
sudo rm /opt/app.zip
sudo chown ptrowbridge:ptrowbridge -R /opt/app/
``` ```
## Architecture ## Architecture
### Single-File Design ### Single-File Design
The entire application logic resides in `app/src/main/java/jrunner/jrunner.java`. This is a monolithic command-line tool with no abstraction layers or separate modules. The entire application logic resides in `jrunner/src/main/java/jrunner/jrunner.java`. This is a monolithic command-line tool with no abstraction layers or separate modules.
### Data Flow ### Data Flow
1. Parse command-line arguments (-scu, -scn, -scp for source; -dcu, -dcn, -dcp for destination) 1. Parse command-line arguments (-scu, -scn, -scp for source; -dcu, -dcn, -dcp for destination)
@ -55,7 +52,7 @@ The entire application logic resides in `app/src/main/java/jrunner/jrunner.java`
The tool includes explicit handling for different SQL data types in a switch statement (lines 229-312). Supported types include VARCHAR, TEXT, CHAR, CLOB, DATE, TIME, TIMESTAMP, and BIGINT. String types get quote escaping and optional trimming. The tool includes explicit handling for different SQL data types in a switch statement (lines 229-312). Supported types include VARCHAR, TEXT, CHAR, CLOB, DATE, TIME, TIMESTAMP, and BIGINT. String types get quote escaping and optional trimming.
### Database Drivers ### Database Drivers
JDBC drivers are configured in `app/build.gradle`: JDBC drivers are configured in `jrunner/build.gradle`:
- PostgreSQL: org.postgresql:postgresql:42.5.0 - PostgreSQL: org.postgresql:postgresql:42.5.0
- IBM AS/400 (JT400): net.sf.jt400:jt400:11.0 - IBM AS/400 (JT400): net.sf.jt400:jt400:11.0
- Microsoft SQL Server: com.microsoft.sqlserver:mssql-jdbc:9.2.0.jre8 - Microsoft SQL Server: com.microsoft.sqlserver:mssql-jdbc:9.2.0.jre8

View File

@ -38,8 +38,8 @@ cd jrunner
## deploy system-wide ## deploy system-wide
``` ```
sudo unzip app/build/distributions/app.zip -d /opt/ sudo unzip jrunner/build/distributions/jrunner.zip -d /opt/
sudo ln -sf /opt/app/bin/app /usr/local/bin/jrunner sudo ln -sf /opt/jrunner/bin/jrunner /usr/local/bin/jrunner
``` ```
Now you can run from anywhere: Now you can run from anywhere:
@ -50,6 +50,6 @@ jrunner -scu jdbc:postgresql://... -scn user -scp pass ...
To update after rebuilding: To update after rebuilding:
``` ```
./gradlew build ./gradlew build
sudo rm -rf /opt/app sudo rm -rf /opt/jrunner
sudo unzip app/build/distributions/app.zip -d /opt/ sudo unzip jrunner/build/distributions/jrunner.zip -d /opt/
``` ```

View File

@ -8,4 +8,4 @@
*/ */
rootProject.name = 'jrunner' rootProject.name = 'jrunner'
include('app') include('jrunner')