rename: cloud-installer → cloud-sync
CI / build (push) Failing after 3s
CI / release (push) Has been skipped

'installer' implied one-way install (matching packwiz-installer); this
tool is bidirectional sync (pull on launch, push on exit). Aligns with
the existing automc <scope>-<role> pattern: cloud-svc ↔ cloud-sync,
matching mc-router, mc-wrapper, gate-waker.

Gitea repo renamed via API (id 2974 preserved); jar filename now
cloud-sync-<version>.jar. Build verified post-rename.
This commit is contained in:
2026-06-02 20:25:27 +02:00
parent 6ab43a168e
commit ed4115cba8
6 changed files with 21 additions and 21 deletions
+4 -4
View File
@@ -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}" \
+7 -7
View File
@@ -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 <subcommand> [flags]
java -jar cloud-sync.jar <subcommand> [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-<version>.jar`. Single fat jar; ship as-is.
Output: `build/libs/cloud-sync-<version>.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
+1 -1
View File
@@ -48,7 +48,7 @@ tasks.test {
}
tasks.shadowJar {
archiveBaseName.set("cloud-installer")
archiveBaseName.set("cloud-sync")
archiveClassifier.set("")
archiveVersion.set(project.version.toString())
mergeServiceFiles()
+1 -1
View File
@@ -1 +1 @@
rootProject.name = "cloud-installer"
rootProject.name = "cloud-sync"
@@ -7,13 +7,13 @@ package center.timemachine.cloud
*/
object Cli {
fun runPull(args: Array<String>): 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<String>): Int {
println("cloud-installer push: ${args.joinToString(" ")}")
println("cloud-sync push: ${args.joinToString(" ")}")
println("(not yet implemented; skeleton commit only)")
return 0
}
@@ -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<String>) {
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<String>) {
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 <subcommand> [flags]
java -jar cloud-sync.jar <subcommand> [flags]
Subcommands:
pull Fetch user's cloud state, apply conflict resolution, write to instance.