@ahqstore/cli 0.3.4 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.toml +24 -16
- package/bundle +4 -0
- package/bundle.ps1 +4 -0
- package/index.js +82 -159
- package/latest.md +3 -0
- package/package.json +11 -13
- package/src/app/build/macros.rs +95 -0
- package/src/app/build/mod.rs +64 -60
- package/src/app/create/inquire.rs +30 -77
- package/src/app/create/mod.rs +7 -1
- package/src/app/create/readme.es.md +80 -0
- package/src/app/create/readme.hi.md +80 -0
- package/src/app/create/readme.md +30 -21
- package/src/app/shared/file_sorter.rs +14 -6
- package/src/app/shared/mod.rs +5 -1
- package/src/app/shared/platforms.rs +26 -50
- package/cli-rs/Cargo.toml +0 -45
- package/cli-rs/README.md +0 -41
- package/cli-rs/build.rs +0 -4
- package/cli-rs/finalize.js +0 -25
- package/cli-rs/rust-toolchain.toml +0 -2
- package/cli-rs/src/app/build/config.rs +0 -54
- package/cli-rs/src/app/build/icon.rs +0 -48
- package/cli-rs/src/app/build/mod.rs +0 -217
- package/cli-rs/src/app/build/release.rs +0 -50
- package/cli-rs/src/app/create/icon.png +0 -0
- package/cli-rs/src/app/create/inquire.rs +0 -189
- package/cli-rs/src/app/create/mod.rs +0 -74
- package/cli-rs/src/app/create/readme.md +0 -71
- package/cli-rs/src/app/help.rs +0 -77
- package/cli-rs/src/app/mod.rs +0 -39
- package/cli-rs/src/app/shared/file_sorter.rs +0 -34
- package/cli-rs/src/app/shared/mod.rs +0 -62
- package/cli-rs/src/app/shared/platforms.rs +0 -69
- package/cli-rs/src/lib.rs +0 -13
- package/cli-rs/src/main.rs +0 -10
- package/cli-rs/tslink.toml +0 -2
package/Cargo.toml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
edition = "2021"
|
|
3
3
|
name = "ahqstore_cli_rs"
|
|
4
|
-
version = "0.
|
|
4
|
+
version = "0.4.1"
|
|
5
5
|
description = "AHQ Store CLI"
|
|
6
6
|
repository = "https://github.com/ahqstore/cli"
|
|
7
7
|
homepage = "https://github.com/ahqstore/cli"
|
|
@@ -17,32 +17,40 @@ path = "src/lib.rs"
|
|
|
17
17
|
name = "ahqstore"
|
|
18
18
|
path = "src/main.rs"
|
|
19
19
|
|
|
20
|
+
[package.metadata.binstall]
|
|
21
|
+
pkg-url = "{ repo }/releases/download/{ version }/{ name }-{ target }.zip"
|
|
22
|
+
pkg-fmt = "zip"
|
|
23
|
+
|
|
20
24
|
[dependencies]
|
|
21
25
|
# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix
|
|
22
|
-
napi = { version = "2
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
napi = { version = "2", default-features = false, features = [
|
|
27
|
+
"napi4",
|
|
28
|
+
], optional = true }
|
|
29
|
+
napi-derive = { version = "2", optional = true }
|
|
30
|
+
inquire = { version = "0", features = ["editor"] }
|
|
31
|
+
chalk_rs = "1"
|
|
32
|
+
lazy_static = "1"
|
|
33
|
+
serde = { version = "1", features = ["derive"] }
|
|
34
|
+
serde_json = "1"
|
|
35
|
+
ahqstore-types = "2.3.0"
|
|
30
36
|
reqwest = { version = "0.12", features = ["json", "blocking"] }
|
|
31
|
-
sha2 = "0.10
|
|
32
|
-
base64 = "0.22
|
|
33
|
-
image = { version = "0.25", default-features = false, features = [
|
|
34
|
-
|
|
37
|
+
sha2 = "0.10"
|
|
38
|
+
base64 = "0.22"
|
|
39
|
+
image = { version = "0.25", default-features = false, features = [
|
|
40
|
+
"rayon",
|
|
41
|
+
"png",
|
|
42
|
+
] }
|
|
43
|
+
rand = "0.8"
|
|
35
44
|
|
|
36
45
|
[target.'cfg(unix)'.dependencies]
|
|
37
46
|
openssl-sys = { version = "0.9.102", features = ["vendored"] }
|
|
38
47
|
|
|
39
|
-
|
|
40
48
|
[build-dependencies]
|
|
41
|
-
napi-build = {version = "2
|
|
49
|
+
napi-build = { version = "2", optional = true }
|
|
42
50
|
|
|
43
51
|
[profile.release]
|
|
44
52
|
lto = true
|
|
45
53
|
strip = "symbols"
|
|
46
54
|
|
|
47
55
|
[features]
|
|
48
|
-
node = ["dep:napi", "dep:napi-build", "dep:napi-derive"]
|
|
56
|
+
node = ["dep:napi", "dep:napi-build", "dep:napi-derive"]
|
package/bundle
ADDED
package/bundle.ps1
ADDED
package/index.js
CHANGED
|
@@ -5,255 +5,178 @@
|
|
|
5
5
|
/* prettier-ignore */
|
|
6
6
|
|
|
7
7
|
/* auto-generated by NAPI-RS */
|
|
8
|
+
/* and modified by @ahqsoftwares */
|
|
8
9
|
|
|
9
10
|
const { existsSync, readFileSync } = require('fs')
|
|
10
|
-
const { join } = require(
|
|
11
|
+
const { join } = require("path");
|
|
11
12
|
|
|
12
|
-
const { platform, arch } = process
|
|
13
|
+
const { platform, arch } = process;
|
|
13
14
|
|
|
14
|
-
let nativeBinding = null
|
|
15
|
-
let localFileExisted = false
|
|
16
|
-
let loadError = null
|
|
15
|
+
let nativeBinding = null;
|
|
16
|
+
let localFileExisted = false;
|
|
17
|
+
let loadError = null;
|
|
17
18
|
|
|
18
19
|
function isMusl() {
|
|
19
20
|
// For Node 10
|
|
20
|
-
if (!process.report || typeof process.report.getReport !==
|
|
21
|
+
if (!process.report || typeof process.report.getReport !== "function") {
|
|
21
22
|
try {
|
|
22
|
-
const lddPath = require(
|
|
23
|
-
|
|
23
|
+
const lddPath = require("child_process")
|
|
24
|
+
.execSync("which ldd")
|
|
25
|
+
.toString()
|
|
26
|
+
.trim();
|
|
27
|
+
return readFileSync(lddPath, "utf8").includes("musl");
|
|
24
28
|
} catch (e) {
|
|
25
|
-
return true
|
|
29
|
+
return true;
|
|
26
30
|
}
|
|
27
31
|
} else {
|
|
28
|
-
const { glibcVersionRuntime } = process.report.getReport().header
|
|
29
|
-
return !glibcVersionRuntime
|
|
32
|
+
const { glibcVersionRuntime } = process.report.getReport().header;
|
|
33
|
+
return !glibcVersionRuntime;
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
switch (platform) {
|
|
34
|
-
case
|
|
38
|
+
case "win32":
|
|
35
39
|
switch (arch) {
|
|
36
|
-
case
|
|
37
|
-
localFileExisted = existsSync(join(__dirname, 'cli.android-arm64.node'))
|
|
38
|
-
try {
|
|
39
|
-
if (localFileExisted) {
|
|
40
|
-
nativeBinding = require('./cli.android-arm64.node')
|
|
41
|
-
} else {
|
|
42
|
-
nativeBinding = require('@ahqstore/cli-android-arm64')
|
|
43
|
-
}
|
|
44
|
-
} catch (e) {
|
|
45
|
-
loadError = e
|
|
46
|
-
}
|
|
47
|
-
break
|
|
48
|
-
case 'arm':
|
|
49
|
-
localFileExisted = existsSync(join(__dirname, 'cli.android-arm-eabi.node'))
|
|
50
|
-
try {
|
|
51
|
-
if (localFileExisted) {
|
|
52
|
-
nativeBinding = require('./cli.android-arm-eabi.node')
|
|
53
|
-
} else {
|
|
54
|
-
nativeBinding = require('@ahqstore/cli-android-arm-eabi')
|
|
55
|
-
}
|
|
56
|
-
} catch (e) {
|
|
57
|
-
loadError = e
|
|
58
|
-
}
|
|
59
|
-
break
|
|
60
|
-
default:
|
|
61
|
-
throw new Error(`Unsupported architecture on Android ${arch}`)
|
|
62
|
-
}
|
|
63
|
-
break
|
|
64
|
-
case 'win32':
|
|
65
|
-
switch (arch) {
|
|
66
|
-
case 'x64':
|
|
40
|
+
case "x64":
|
|
67
41
|
localFileExisted = existsSync(
|
|
68
|
-
join(__dirname,
|
|
69
|
-
)
|
|
42
|
+
join(__dirname, "cli.win32-x64-msvc.node")
|
|
43
|
+
);
|
|
70
44
|
try {
|
|
71
45
|
if (localFileExisted) {
|
|
72
|
-
nativeBinding = require(
|
|
46
|
+
nativeBinding = require("./cli.win32-x64-msvc.node");
|
|
73
47
|
} else {
|
|
74
|
-
nativeBinding = require(
|
|
48
|
+
nativeBinding = require("@ahqstore/cli-win32-x64-msvc");
|
|
75
49
|
}
|
|
76
50
|
} catch (e) {
|
|
77
|
-
loadError = e
|
|
51
|
+
loadError = e;
|
|
78
52
|
}
|
|
79
|
-
break
|
|
80
|
-
case
|
|
53
|
+
break;
|
|
54
|
+
case "ia32":
|
|
81
55
|
localFileExisted = existsSync(
|
|
82
|
-
join(__dirname,
|
|
83
|
-
)
|
|
56
|
+
join(__dirname, "cli.win32-ia32-msvc.node")
|
|
57
|
+
);
|
|
84
58
|
try {
|
|
85
59
|
if (localFileExisted) {
|
|
86
|
-
nativeBinding = require(
|
|
60
|
+
nativeBinding = require("./cli.win32-ia32-msvc.node");
|
|
87
61
|
} else {
|
|
88
|
-
nativeBinding = require(
|
|
62
|
+
nativeBinding = require("@ahqstore/cli-win32-ia32-msvc");
|
|
89
63
|
}
|
|
90
64
|
} catch (e) {
|
|
91
|
-
loadError = e
|
|
65
|
+
loadError = e;
|
|
92
66
|
}
|
|
93
|
-
break
|
|
94
|
-
case
|
|
67
|
+
break;
|
|
68
|
+
case "arm64":
|
|
95
69
|
localFileExisted = existsSync(
|
|
96
|
-
join(__dirname,
|
|
97
|
-
)
|
|
70
|
+
join(__dirname, "cli.win32-arm64-msvc.node")
|
|
71
|
+
);
|
|
98
72
|
try {
|
|
99
73
|
if (localFileExisted) {
|
|
100
|
-
nativeBinding = require(
|
|
74
|
+
nativeBinding = require("./cli.win32-arm64-msvc.node");
|
|
101
75
|
} else {
|
|
102
|
-
nativeBinding = require(
|
|
76
|
+
nativeBinding = require("@ahqstore/cli-win32-arm64-msvc");
|
|
103
77
|
}
|
|
104
78
|
} catch (e) {
|
|
105
|
-
loadError = e
|
|
79
|
+
loadError = e;
|
|
106
80
|
}
|
|
107
|
-
break
|
|
81
|
+
break;
|
|
108
82
|
default:
|
|
109
|
-
throw new Error(`Unsupported architecture on Windows: ${arch}`)
|
|
83
|
+
throw new Error(`Unsupported architecture on Windows: ${arch}`);
|
|
110
84
|
}
|
|
111
|
-
break
|
|
112
|
-
case
|
|
113
|
-
localFileExisted = existsSync(join(__dirname,
|
|
85
|
+
break;
|
|
86
|
+
case "darwin":
|
|
87
|
+
localFileExisted = existsSync(join(__dirname, "cli.darwin-universal.node"));
|
|
114
88
|
try {
|
|
115
89
|
if (localFileExisted) {
|
|
116
|
-
nativeBinding = require(
|
|
90
|
+
nativeBinding = require("./cli.darwin-universal.node");
|
|
117
91
|
} else {
|
|
118
|
-
nativeBinding = require(
|
|
92
|
+
nativeBinding = require("@ahqstore/cli-darwin-universal");
|
|
119
93
|
}
|
|
120
|
-
break
|
|
94
|
+
break;
|
|
121
95
|
} catch {}
|
|
122
96
|
switch (arch) {
|
|
123
|
-
case
|
|
124
|
-
localFileExisted = existsSync(join(__dirname,
|
|
97
|
+
case "x64":
|
|
98
|
+
localFileExisted = existsSync(join(__dirname, "cli.darwin-x64.node"));
|
|
125
99
|
try {
|
|
126
100
|
if (localFileExisted) {
|
|
127
|
-
nativeBinding = require(
|
|
101
|
+
nativeBinding = require("./cli.darwin-x64.node");
|
|
128
102
|
} else {
|
|
129
|
-
nativeBinding = require(
|
|
103
|
+
nativeBinding = require("@ahqstore/cli-darwin-x64");
|
|
130
104
|
}
|
|
131
105
|
} catch (e) {
|
|
132
|
-
loadError = e
|
|
106
|
+
loadError = e;
|
|
133
107
|
}
|
|
134
|
-
break
|
|
135
|
-
case
|
|
136
|
-
localFileExisted = existsSync(
|
|
137
|
-
join(__dirname, 'cli.darwin-arm64.node')
|
|
138
|
-
)
|
|
108
|
+
break;
|
|
109
|
+
case "arm64":
|
|
110
|
+
localFileExisted = existsSync(join(__dirname, "cli.darwin-arm64.node"));
|
|
139
111
|
try {
|
|
140
112
|
if (localFileExisted) {
|
|
141
|
-
nativeBinding = require(
|
|
113
|
+
nativeBinding = require("./cli.darwin-arm64.node");
|
|
142
114
|
} else {
|
|
143
|
-
nativeBinding = require(
|
|
115
|
+
nativeBinding = require("@ahqstore/cli-darwin-arm64");
|
|
144
116
|
}
|
|
145
117
|
} catch (e) {
|
|
146
|
-
loadError = e
|
|
118
|
+
loadError = e;
|
|
147
119
|
}
|
|
148
|
-
break
|
|
120
|
+
break;
|
|
149
121
|
default:
|
|
150
|
-
throw new Error(`Unsupported architecture on macOS: ${arch}`)
|
|
122
|
+
throw new Error(`Unsupported architecture on macOS: ${arch}`);
|
|
151
123
|
}
|
|
152
|
-
break
|
|
153
|
-
case
|
|
154
|
-
throw new Error("Unsupported OS: FreeBSD");
|
|
155
|
-
case 'linux':
|
|
124
|
+
break;
|
|
125
|
+
case "linux":
|
|
156
126
|
switch (arch) {
|
|
157
|
-
case
|
|
158
|
-
if (isMusl()) {
|
|
159
|
-
throw new Error("MUSL Bindings are not supported!");
|
|
160
|
-
} else {
|
|
161
|
-
localFileExisted = existsSync(
|
|
162
|
-
join(__dirname, 'cli.linux-x64-gnu.node')
|
|
163
|
-
)
|
|
164
|
-
try {
|
|
165
|
-
if (localFileExisted) {
|
|
166
|
-
nativeBinding = require('./cli.linux-x64-gnu.node')
|
|
167
|
-
} else {
|
|
168
|
-
nativeBinding = require('@ahqstore/cli-linux-x64-gnu')
|
|
169
|
-
}
|
|
170
|
-
} catch (e) {
|
|
171
|
-
loadError = e
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
break
|
|
175
|
-
case 'arm64':
|
|
127
|
+
case "x64":
|
|
176
128
|
if (isMusl()) {
|
|
177
129
|
throw new Error("MUSL Bindings are not supported!");
|
|
178
130
|
} else {
|
|
179
131
|
localFileExisted = existsSync(
|
|
180
|
-
join(__dirname,
|
|
181
|
-
)
|
|
132
|
+
join(__dirname, "cli.linux-x64-gnu.node")
|
|
133
|
+
);
|
|
182
134
|
try {
|
|
183
135
|
if (localFileExisted) {
|
|
184
|
-
nativeBinding = require(
|
|
136
|
+
nativeBinding = require("./cli.linux-x64-gnu.node");
|
|
185
137
|
} else {
|
|
186
|
-
nativeBinding = require(
|
|
138
|
+
nativeBinding = require("@ahqstore/cli-linux-x64-gnu");
|
|
187
139
|
}
|
|
188
140
|
} catch (e) {
|
|
189
|
-
loadError = e
|
|
141
|
+
loadError = e;
|
|
190
142
|
}
|
|
191
143
|
}
|
|
192
|
-
break
|
|
193
|
-
case
|
|
144
|
+
break;
|
|
145
|
+
case "arm64":
|
|
194
146
|
if (isMusl()) {
|
|
195
147
|
throw new Error("MUSL Bindings are not supported!");
|
|
196
148
|
} else {
|
|
197
149
|
localFileExisted = existsSync(
|
|
198
|
-
join(__dirname,
|
|
199
|
-
)
|
|
150
|
+
join(__dirname, "cli.linux-arm64-gnu.node")
|
|
151
|
+
);
|
|
200
152
|
try {
|
|
201
153
|
if (localFileExisted) {
|
|
202
|
-
nativeBinding = require(
|
|
154
|
+
nativeBinding = require("./cli.linux-arm64-gnu.node");
|
|
203
155
|
} else {
|
|
204
|
-
nativeBinding = require(
|
|
156
|
+
nativeBinding = require("@ahqstore/cli-linux-arm64-gnu");
|
|
205
157
|
}
|
|
206
158
|
} catch (e) {
|
|
207
|
-
loadError = e
|
|
159
|
+
loadError = e;
|
|
208
160
|
}
|
|
209
161
|
}
|
|
210
|
-
break
|
|
211
|
-
case 'riscv64':
|
|
212
|
-
if (isMusl()) {
|
|
213
|
-
throw new Error("MUSL Bindings are not supported!");
|
|
214
|
-
} else {
|
|
215
|
-
localFileExisted = existsSync(
|
|
216
|
-
join(__dirname, 'cli.linux-riscv64-gnu.node')
|
|
217
|
-
)
|
|
218
|
-
try {
|
|
219
|
-
if (localFileExisted) {
|
|
220
|
-
nativeBinding = require('./cli.linux-riscv64-gnu.node')
|
|
221
|
-
} else {
|
|
222
|
-
nativeBinding = require('@ahqstore/cli-linux-riscv64-gnu')
|
|
223
|
-
}
|
|
224
|
-
} catch (e) {
|
|
225
|
-
loadError = e
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
break
|
|
229
|
-
case 's390x':
|
|
230
|
-
localFileExisted = existsSync(
|
|
231
|
-
join(__dirname, 'cli.linux-s390x-gnu.node')
|
|
232
|
-
)
|
|
233
|
-
try {
|
|
234
|
-
if (localFileExisted) {
|
|
235
|
-
nativeBinding = require('./cli.linux-s390x-gnu.node')
|
|
236
|
-
} else {
|
|
237
|
-
nativeBinding = require('@ahqstore/cli-linux-s390x-gnu')
|
|
238
|
-
}
|
|
239
|
-
} catch (e) {
|
|
240
|
-
loadError = e
|
|
241
|
-
}
|
|
242
|
-
break
|
|
162
|
+
break;
|
|
243
163
|
default:
|
|
244
|
-
throw new Error(`Unsupported architecture on Linux: ${arch}`)
|
|
164
|
+
throw new Error(`Unsupported architecture on Linux: ${arch}`);
|
|
245
165
|
}
|
|
246
|
-
break
|
|
166
|
+
break;
|
|
247
167
|
default:
|
|
248
|
-
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
|
|
168
|
+
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`);
|
|
249
169
|
}
|
|
250
170
|
|
|
251
171
|
if (!nativeBinding) {
|
|
252
172
|
if (loadError) {
|
|
253
|
-
throw loadError
|
|
173
|
+
throw loadError;
|
|
254
174
|
}
|
|
255
|
-
throw new Error(`Failed to load native binding`)
|
|
175
|
+
throw new Error(`Failed to load native binding`);
|
|
256
176
|
}
|
|
257
177
|
|
|
258
|
-
const {
|
|
178
|
+
const { nodeEntrypoint } = nativeBinding;
|
|
179
|
+
|
|
180
|
+
const args = process.argv.slice(2) || [];
|
|
259
181
|
|
|
182
|
+
nodeEntrypoint(args, process.env["GH_ACTION"] != null);
|
package/latest.md
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ahqstore/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"napi": {
|
|
5
5
|
"name": "cli",
|
|
6
6
|
"triples": {
|
|
@@ -16,8 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"license": "MIT",
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@napi-rs/cli": "^2.18.3"
|
|
20
|
-
"ava": "^6.0.1"
|
|
19
|
+
"@napi-rs/cli": "^2.18.3"
|
|
21
20
|
},
|
|
22
21
|
"ava": {
|
|
23
22
|
"timeout": "3m"
|
|
@@ -36,19 +35,18 @@
|
|
|
36
35
|
"build": "napi build --platform --release --features node",
|
|
37
36
|
"build:debug": "napi build --platform --features node",
|
|
38
37
|
"prepublishOnly": "napi prepublish -t npm",
|
|
39
|
-
"test": "ava",
|
|
40
38
|
"universal": "napi universal",
|
|
41
39
|
"version": "napi version"
|
|
42
40
|
},
|
|
43
41
|
"optionalDependencies": {
|
|
44
|
-
"@ahqstore/cli-win32-x64-msvc": "0.
|
|
45
|
-
"@ahqstore/cli-darwin-x64": "0.
|
|
46
|
-
"@ahqstore/cli-linux-x64-gnu": "0.
|
|
47
|
-
"@ahqstore/cli-darwin-arm64": "0.
|
|
48
|
-
"@ahqstore/cli-linux-arm64-gnu": "0.
|
|
49
|
-
"@ahqstore/cli-win32-arm64-msvc": "0.
|
|
50
|
-
"@ahqstore/cli-win32-ia32-msvc": "0.
|
|
51
|
-
"@ahqstore/cli-darwin-universal": "0.
|
|
52
|
-
"@ahqstore/cli-linux-riscv64-gnu": "0.
|
|
42
|
+
"@ahqstore/cli-win32-x64-msvc": "0.4.1",
|
|
43
|
+
"@ahqstore/cli-darwin-x64": "0.4.1",
|
|
44
|
+
"@ahqstore/cli-linux-x64-gnu": "0.4.1",
|
|
45
|
+
"@ahqstore/cli-darwin-arm64": "0.4.1",
|
|
46
|
+
"@ahqstore/cli-linux-arm64-gnu": "0.4.1",
|
|
47
|
+
"@ahqstore/cli-win32-arm64-msvc": "0.4.1",
|
|
48
|
+
"@ahqstore/cli-win32-ia32-msvc": "0.4.1",
|
|
49
|
+
"@ahqstore/cli-darwin-universal": "0.4.1",
|
|
50
|
+
"@ahqstore/cli-linux-riscv64-gnu": "0.4.1"
|
|
53
51
|
}
|
|
54
52
|
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
macro_rules! f {
|
|
2
|
+
($($x:tt)*) => {
|
|
3
|
+
format!($($x)*)
|
|
4
|
+
};
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
macro_rules! s {
|
|
8
|
+
($($x:tt)*) => {
|
|
9
|
+
stringify!($($x)*)
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
#[macro_export]
|
|
14
|
+
macro_rules! windowsPlatform {
|
|
15
|
+
($num: ident, $win: ident, $config: ident, $gh_r: ident, $final_config: ident, $platform: ident, $options: ident, $finder: ident) => {
|
|
16
|
+
$num += 1;
|
|
17
|
+
if let Some(platform) = $config.platform.$platform {
|
|
18
|
+
if !matches!(&platform, &InstallerFormat::LinuxAppImage | &InstallerFormat::AndroidApkZip) {
|
|
19
|
+
ERR.println(&"Invalid File Format, expected a valid windows format");
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
let Some(options) = $config.platform.$options else {
|
|
23
|
+
ERR.println(&f!("{} Options not found!", s!($win)));
|
|
24
|
+
process::exit(1);
|
|
25
|
+
};
|
|
26
|
+
let Some(finder) = $config.finder.$finder else {
|
|
27
|
+
ERR.println(&f!("{} Finder config not found!", s!($win)));
|
|
28
|
+
process::exit(1);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
let assets = crate::app::build::find_assets(&$gh_r, &finder);
|
|
32
|
+
|
|
33
|
+
if assets.len() > 1 {
|
|
34
|
+
ERR.println(&f!("Multiple assets found while parsing {}", s!($win)));
|
|
35
|
+
process::exit(1);
|
|
36
|
+
}
|
|
37
|
+
if assets.len() == 0 {
|
|
38
|
+
ERR.println(&f!("No assets found while parsing {}", s!($win)));
|
|
39
|
+
process::exit(1);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
$final_config.downloadUrls.insert(
|
|
43
|
+
$num,
|
|
44
|
+
DownloadUrl {
|
|
45
|
+
installerType: platform,
|
|
46
|
+
url: assets[0].browser_download_url.clone(),
|
|
47
|
+
},
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
$final_config.install.$win = Some(InstallerOptionsWindows {
|
|
51
|
+
assetId: $num,
|
|
52
|
+
exec: options.zip_file_exec.map_or(None, |a| Some(a.to_string())),
|
|
53
|
+
installerArgs: options
|
|
54
|
+
.exe_installer_args
|
|
55
|
+
.map_or(None, |a| Some(a.iter().map(|x| x.to_string()).collect())),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
#[macro_export]
|
|
62
|
+
macro_rules! linuxPlatform {
|
|
63
|
+
($num: ident, $linux: ident, $config: ident, $gh_r: ident, $final_config: ident, $platform: ident, $finder: ident) => {
|
|
64
|
+
$num += 1;
|
|
65
|
+
if let Some(platform) = $config.platform.$platform {
|
|
66
|
+
if !matches!(&platform, &InstallerFormat::LinuxAppImage) {
|
|
67
|
+
ERR.println(&"Invalid File Format, expected LinuxAppImage");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
let Some(finder) = $config.finder.$finder else {
|
|
71
|
+
ERR.println(&f!("{} Finder Config not found!", s!($linux)));
|
|
72
|
+
process::exit(1);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
let assets = find_assets(&$gh_r, &finder);
|
|
76
|
+
|
|
77
|
+
if assets.len() > 1 {
|
|
78
|
+
ERR.println(&f!("Multiple assets found while parsing {}", s!($linux)));
|
|
79
|
+
process::exit(1);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
$final_config.downloadUrls.insert(
|
|
83
|
+
$num,
|
|
84
|
+
DownloadUrl {
|
|
85
|
+
installerType: platform,
|
|
86
|
+
url: assets[0].browser_download_url.clone(),
|
|
87
|
+
},
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
$final_config.install.$linux = Some(InstallerOptionsLinux {
|
|
91
|
+
assetId: $num
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
}
|