diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index ff47f3b..4a42eda 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -26,8 +26,8 @@ jobs: if: startsWith(github.ref, 'refs/tags/v') uses: actions/upload-artifact@v4 with: - name: cloud-installer-jar - path: build/libs/cloud-installer-*.jar + name: cloud-sync-jar + path: build/libs/cloud-sync-*.jar release: runs-on: ubuntu-latest @@ -38,7 +38,7 @@ jobs: - uses: actions/download-artifact@v4 with: - name: cloud-installer-jar + name: cloud-sync-jar path: build/libs/ - name: Publish release @@ -51,7 +51,7 @@ jobs: -d "{\"tag_name\":\"${tag}\",\"name\":\"${tag}\",\"draft\":false,\"prerelease\":false}" \ "${GITEA_SERVER_URL}/api/v1/repos/${{ gitea.event.repository.full_name }}/releases" > /tmp/release.json release_id=$(jq -r .id /tmp/release.json) - for jar in build/libs/cloud-installer-*.jar; do + for jar in build/libs/cloud-sync-*.jar; do curl -sS -X POST \ -H "Authorization: token ${gh_token}" \ -F "attachment=@${jar}" \ diff --git a/README.md b/README.md index 8303f37..6da5749 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# cloud-installer +# cloud-sync Single-jar Kotlin client for [`cloud-svc`](https://git.timemachine.center/Timemachine/cloud-svc). Drops into Prism / MMC / ATLauncher / frazclient pre-launch + post-exit hooks alongside [`packwiz-installer-bootstrap`](https://github.com/packwiz/packwiz-installer-bootstrap). One tool, all launchers, no Python dependency on the client side. @@ -12,12 +12,12 @@ In Prism's instance settings → Custom commands: ``` Pre-launch command: - "$INST_JAVA" -jar /path/to/cloud-installer.jar pull \ + "$INST_JAVA" -jar /path/to/cloud-sync.jar pull \ --url=https://cloud.timemachine.center \ --pack-folder=$INST_MC_DIR Post-exit command: - "$INST_JAVA" -jar /path/to/cloud-installer.jar push \ + "$INST_JAVA" -jar /path/to/cloud-sync.jar push \ --url=https://cloud.timemachine.center \ --pack-folder=$INST_MC_DIR ``` @@ -27,7 +27,7 @@ Token comes from `$INST_MC_DIR/.cloud-token` (paste once from your Discord-bot D ## CLI ``` -java -jar cloud-installer.jar [flags] +java -jar cloud-sync.jar [flags] Subcommands: pull Fetch user's cloud state, apply conflict resolution, write to instance. @@ -52,7 +52,7 @@ podman run --rm -v "$PWD":/work:Z -w /work docker.io/gradle:8.10.2-jdk21 \ gradle --no-daemon shadowJar ``` -Output: `build/libs/cloud-installer-.jar`. Single fat jar; ship as-is. +Output: `build/libs/cloud-sync-.jar`. Single fat jar; ship as-is. For local development with a matching JDK installed: @@ -71,10 +71,10 @@ Conflict resolution dialog: per-file [keep local | use remote | skip] radio butt | Tool | What it owns | |---|---| | **packwiz-installer-bootstrap** | Mod sync — jars, configs shipped by the modpack, options.txt baseline | -| **cloud-installer** (this) | Per-user sync — player-modified configs, JourneyMap waypoints, screenshots | +| **cloud-sync** (this) | Per-user sync — player-modified configs, JourneyMap waypoints, screenshots | | **frazclient** | Cracked-launcher orchestration — JDK, vanilla MC, Fabric, then invokes both jars | -cloud-installer and packwiz-installer-bootstrap are deliberately **separate jars** so players can disable cloud sync without affecting modpack sync (or vice versa) by just commenting out the line in Prism's hook config. +cloud-sync and packwiz-installer-bootstrap are deliberately **separate jars** so players can disable cloud sync without affecting modpack sync (or vice versa) by just commenting out the line in Prism's hook config. ## License diff --git a/build.gradle.kts b/build.gradle.kts index d4abed7..9a376fb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -48,7 +48,7 @@ tasks.test { } tasks.shadowJar { - archiveBaseName.set("cloud-installer") + archiveBaseName.set("cloud-sync") archiveClassifier.set("") archiveVersion.set(project.version.toString()) mergeServiceFiles() diff --git a/settings.gradle.kts b/settings.gradle.kts index caa2620..477bf8d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1 +1 @@ -rootProject.name = "cloud-installer" +rootProject.name = "cloud-sync" diff --git a/src/main/kotlin/center/timemachine/cloud/Cli.kt b/src/main/kotlin/center/timemachine/cloud/Cli.kt index 4d64787..d23547e 100644 --- a/src/main/kotlin/center/timemachine/cloud/Cli.kt +++ b/src/main/kotlin/center/timemachine/cloud/Cli.kt @@ -7,13 +7,13 @@ package center.timemachine.cloud */ object Cli { fun runPull(args: Array): Int { - println("cloud-installer pull: ${args.joinToString(" ")}") + println("cloud-sync pull: ${args.joinToString(" ")}") println("(not yet implemented; skeleton commit only)") return 0 } fun runPush(args: Array): Int { - println("cloud-installer push: ${args.joinToString(" ")}") + println("cloud-sync push: ${args.joinToString(" ")}") println("(not yet implemented; skeleton commit only)") return 0 } diff --git a/src/main/kotlin/center/timemachine/cloud/Main.kt b/src/main/kotlin/center/timemachine/cloud/Main.kt index 4aef6ce..d1c728d 100644 --- a/src/main/kotlin/center/timemachine/cloud/Main.kt +++ b/src/main/kotlin/center/timemachine/cloud/Main.kt @@ -4,11 +4,11 @@ import com.formdev.flatlaf.themes.FlatMacDarkLaf import javax.swing.UIManager /** - * cloud-installer entrypoint. + * cloud-sync entrypoint. * * Invoked twice in the launcher hooks: - * PreLaunch: java -jar cloud-installer.jar pull --url=... --pack-folder=... - * PostExit: java -jar cloud-installer.jar push --url=... --pack-folder=... + * PreLaunch: java -jar cloud-sync.jar pull --url=... --pack-folder=... + * PostExit: java -jar cloud-sync.jar push --url=... --pack-folder=... * * Exit codes: * 0 ok @@ -21,7 +21,7 @@ fun main(args: Array) { return } if (args[0] in listOf("--version", "-V")) { - println("cloud-installer 0.1.0") + println("cloud-sync 0.1.0") return } @@ -50,10 +50,10 @@ fun main(args: Array) { private fun printHelp() { println(""" - cloud-installer — per-user state sync for Minecraft clients + cloud-sync — per-user state sync for Minecraft clients Usage: - java -jar cloud-installer.jar [flags] + java -jar cloud-sync.jar [flags] Subcommands: pull Fetch user's cloud state, apply conflict resolution, write to instance.