-
-
Notifications
You must be signed in to change notification settings - Fork 121
Expand file tree
/
Copy pathcli.conveyor.conf
More file actions
41 lines (37 loc) · 2.46 KB
/
Copy pathcli.conveyor.conf
File metadata and controls
41 lines (37 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Ships the Kotlin/Native CLI binary inside every desktop package (P3 of the
// CLI completion plan). Deliberately NOT included from conveyor.conf: a plain
// local `conveyor make app` must keep working without pre-building the CLI.
// Consumers: build.conveyor.conf (release CI) and the beta workflow's
// generated conf. Before packaging, populate cli/dist/ via the Gradle tasks:
// ./gradlew :cli:assembleDist (host-buildable targets)
// ./gradlew :cli:assembleDist<Target> (single target)
//
// Design decision D6: the CLI is application payload, imported with plain
// per-arch `inputs` like any other app file, so it reaches every channel
// (deb, tarball, AppImage, mac zip, win zip, MSIX) through one mechanism.
// It lands in the JVM payload area (linux lib/app/bin/, windows app\bin\,
// mac Contents/Resources/bin/) — an address users never see. The user-facing
// entry point is PATH, wired per channel: the deb symlink and MSIX alias
// below (install time), and on macOS a first-launch symlink prompt in the
// app (not implemented yet — planned as a follow-up PR).
app {
mac.aarch64.inputs += "cli/dist/macosArm64/crosspaste-cli" -> "bin/crosspaste-cli"
mac.amd64.inputs += "cli/dist/macosX64/crosspaste-cli" -> "bin/crosspaste-cli"
windows.amd64.inputs += "cli/dist/mingwX64/crosspaste-cli.exe" -> "bin/crosspaste-cli.exe"
// Conveyor already generates an app execution alias `crosspaste.exe` that
// points at updatecheck.exe (GUI launch) and offers no config key to
// repoint it, so the CLI gets its own alias: after install, `crosspaste-cli`
// works in any terminal without PATH changes.
windows.manifests.msix.extensions-xml = """
<uap3:Extension Category="windows.appExecutionAlias" Executable="app\bin\crosspaste-cli.exe" EntryPoint="Windows.FullTrustApplication">
<uap3:AppExecutionAlias><uap8:ExecutionAlias Alias="crosspaste-cli.exe"/></uap3:AppExecutionAlias>
</uap3:Extension>
"""
linux.amd64.inputs += "cli/dist/linuxX64/crosspaste-cli" -> "bin/crosspaste-cli"
linux.aarch64.inputs += "cli/dist/linuxArm64/crosspaste-cli" -> "bin/crosspaste-cli"
// The terminal command `crosspaste` is the CLI (design decision D4).
// Re-declaring the default launcher symlink's link path overrides it, so
// /usr/bin/crosspaste points at the CLI; the GUI stays reachable via the
// desktop entry, whose Exec uses the absolute launcher path.
linux.symlinks += "/usr/bin/crosspaste" -> "/usr/lib/crosspaste/lib/app/bin/crosspaste-cli"
}