rename: cloud-installer → cloud-sync
'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:
@@ -26,8 +26,8 @@ jobs:
|
|||||||
if: startsWith(github.ref, 'refs/tags/v')
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: cloud-installer-jar
|
name: cloud-sync-jar
|
||||||
path: build/libs/cloud-installer-*.jar
|
path: build/libs/cloud-sync-*.jar
|
||||||
|
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -38,7 +38,7 @@ jobs:
|
|||||||
|
|
||||||
- uses: actions/download-artifact@v4
|
- uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: cloud-installer-jar
|
name: cloud-sync-jar
|
||||||
path: build/libs/
|
path: build/libs/
|
||||||
|
|
||||||
- name: Publish release
|
- name: Publish release
|
||||||
@@ -51,7 +51,7 @@ jobs:
|
|||||||
-d "{\"tag_name\":\"${tag}\",\"name\":\"${tag}\",\"draft\":false,\"prerelease\":false}" \
|
-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
|
"${GITEA_SERVER_URL}/api/v1/repos/${{ gitea.event.repository.full_name }}/releases" > /tmp/release.json
|
||||||
release_id=$(jq -r .id /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 \
|
curl -sS -X POST \
|
||||||
-H "Authorization: token ${gh_token}" \
|
-H "Authorization: token ${gh_token}" \
|
||||||
-F "attachment=@${jar}" \
|
-F "attachment=@${jar}" \
|
||||||
|
|||||||
@@ -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.
|
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:
|
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 \
|
--url=https://cloud.timemachine.center \
|
||||||
--pack-folder=$INST_MC_DIR
|
--pack-folder=$INST_MC_DIR
|
||||||
|
|
||||||
Post-exit command:
|
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 \
|
--url=https://cloud.timemachine.center \
|
||||||
--pack-folder=$INST_MC_DIR
|
--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
|
## CLI
|
||||||
|
|
||||||
```
|
```
|
||||||
java -jar cloud-installer.jar <subcommand> [flags]
|
java -jar cloud-sync.jar <subcommand> [flags]
|
||||||
|
|
||||||
Subcommands:
|
Subcommands:
|
||||||
pull Fetch user's cloud state, apply conflict resolution, write to instance.
|
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
|
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:
|
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 |
|
| Tool | What it owns |
|
||||||
|---|---|
|
|---|---|
|
||||||
| **packwiz-installer-bootstrap** | Mod sync — jars, configs shipped by the modpack, options.txt baseline |
|
| **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 |
|
| **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
|
## License
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -48,7 +48,7 @@ tasks.test {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tasks.shadowJar {
|
tasks.shadowJar {
|
||||||
archiveBaseName.set("cloud-installer")
|
archiveBaseName.set("cloud-sync")
|
||||||
archiveClassifier.set("")
|
archiveClassifier.set("")
|
||||||
archiveVersion.set(project.version.toString())
|
archiveVersion.set(project.version.toString())
|
||||||
mergeServiceFiles()
|
mergeServiceFiles()
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
rootProject.name = "cloud-installer"
|
rootProject.name = "cloud-sync"
|
||||||
|
|||||||
@@ -7,13 +7,13 @@ package center.timemachine.cloud
|
|||||||
*/
|
*/
|
||||||
object Cli {
|
object Cli {
|
||||||
fun runPull(args: Array<String>): Int {
|
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)")
|
println("(not yet implemented; skeleton commit only)")
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
fun runPush(args: Array<String>): Int {
|
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)")
|
println("(not yet implemented; skeleton commit only)")
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,11 +4,11 @@ import com.formdev.flatlaf.themes.FlatMacDarkLaf
|
|||||||
import javax.swing.UIManager
|
import javax.swing.UIManager
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cloud-installer entrypoint.
|
* cloud-sync entrypoint.
|
||||||
*
|
*
|
||||||
* Invoked twice in the launcher hooks:
|
* Invoked twice in the launcher hooks:
|
||||||
* PreLaunch: java -jar cloud-installer.jar pull --url=... --pack-folder=...
|
* PreLaunch: java -jar cloud-sync.jar pull --url=... --pack-folder=...
|
||||||
* PostExit: java -jar cloud-installer.jar push --url=... --pack-folder=...
|
* PostExit: java -jar cloud-sync.jar push --url=... --pack-folder=...
|
||||||
*
|
*
|
||||||
* Exit codes:
|
* Exit codes:
|
||||||
* 0 ok
|
* 0 ok
|
||||||
@@ -21,7 +21,7 @@ fun main(args: Array<String>) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (args[0] in listOf("--version", "-V")) {
|
if (args[0] in listOf("--version", "-V")) {
|
||||||
println("cloud-installer 0.1.0")
|
println("cloud-sync 0.1.0")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,10 +50,10 @@ fun main(args: Array<String>) {
|
|||||||
|
|
||||||
private fun printHelp() {
|
private fun printHelp() {
|
||||||
println("""
|
println("""
|
||||||
cloud-installer — per-user state sync for Minecraft clients
|
cloud-sync — per-user state sync for Minecraft clients
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
java -jar cloud-installer.jar <subcommand> [flags]
|
java -jar cloud-sync.jar <subcommand> [flags]
|
||||||
|
|
||||||
Subcommands:
|
Subcommands:
|
||||||
pull Fetch user's cloud state, apply conflict resolution, write to instance.
|
pull Fetch user's cloud state, apply conflict resolution, write to instance.
|
||||||
|
|||||||
Reference in New Issue
Block a user