java data mover using jdbc
Go to file
Paul Trowbridge 57093441c3 fix ownership after deployment
Add chown to set deployed files to current user instead of leaving
them owned by root. This matches the original copy_to_apt.sh behavior.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 22:38:43 -05:00
gradle/wrapper upgrade gradle wrapper to 8.5 for java 20 compatibility 2026-01-06 21:42:36 -05:00
jrunner update readme for new deploy script and bump version to 1.0 2026-01-06 22:37:05 -05:00
.gitattributes initial 2022-10-20 11:12:19 -04:00
.gitignore gitignore accidentally extracted distribution files 2026-01-06 22:20:22 -05:00
CLAUDE.md rename app module to jrunner for consistency 2026-01-06 21:53:08 -05:00
deploy.sh fix ownership after deployment 2026-01-06 22:38:43 -05:00
gradlew initial 2022-10-20 11:12:19 -04:00
gradlew.bat initial 2022-10-20 11:12:19 -04:00
readme.md update readme for new deploy script and bump version to 1.0 2026-01-06 22:37:05 -05:00
settings.gradle rename app module to jrunner for consistency 2026-01-06 21:53:08 -05:00

install java jdk.

find downloads page and get latest tarball. https://www.oracle.com/java/technologies/downloads/

wget https://download.oracle.com/java/19/latest/jdk-19_linux-x64_bin.tar.gz
tar -xvf downloaded_file

move the extracted folder to /opt put the extracted location in your path variable

export JAVA_HOME=/opt/jdk-19.0.1
export PATH=$PATH:$JAVA_HOME/bin

java --version to test

install gradle (optional)

Gradle wrapper (gradlew) is included in the repo, so manual Gradle installation is not required. If you prefer to install Gradle system-wide:

wget https://services.gradle.org/distributions/gradle-8.5-bin.zip
unzip -d /opt/gradle gradle-8.5-bin.zip
export PATH=$PATH:/opt/gradle/gradle-8.5/bin
gradle -v

clone this repo

git clone https://gitea.hptrow.me/pt/jrunner.git
cd jrunner

build

./gradlew build

deploy

First, create the deployment directory:

sudo mkdir -p /opt/jrunner

Then deploy:

# Deploy to /opt/jrunner (default, creates system-wide symlink)
./deploy.sh

# Deploy to custom location (for testing, no symlink)
sudo mkdir -p /opt/jrunner-test
./deploy.sh /opt/jrunner-test

The script builds, extracts to a temporary location, and only updates the target directory after the build succeeds. This ensures your existing deployment stays intact if the build fails. When deploying to /opt/jrunner, it creates a symlink at /usr/local/bin/jrunner.

manual deployment

./gradlew build
sudo unzip jrunner/build/distributions/jrunner.zip -d /opt/
sudo ln -sf /opt/jrunner/bin/jrunner /usr/local/bin/jrunner

usage

After deployment to default location:

jrunner -scu jdbc:postgresql://... -scn user -scp pass ...

After deployment to custom location:

/opt/jrunner-test/bin/jrunner -scu jdbc:postgresql://... -scn user -scp pass ...