@runfile/cli 0.16.0 → 0.18.0
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/bin/darwin-arm64/README.md +38 -3
- package/bin/darwin-arm64/run +0 -0
- package/bin/darwin-x64/README.md +38 -3
- package/bin/darwin-x64/run +0 -0
- package/bin/linux-arm64/README.md +38 -3
- package/bin/linux-arm64/run +0 -0
- package/bin/linux-x64/README.md +38 -3
- package/bin/linux-x64/run +0 -0
- package/bin/win32-arm64/run.exe +0 -0
- package/bin/win32-x64/run.exe +0 -0
- package/package.json +1 -1
|
@@ -248,15 +248,17 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
248
248
|
// trim : trim, trim_start, trim_end
|
|
249
249
|
// inspect : length, starts_with, ends_with, contains
|
|
250
250
|
// transform : escape, repeat, replace_all, remove_all
|
|
251
|
-
// regex : regex_replace, regex_remove, regex_matches
|
|
251
|
+
// regex : regex_replace, regex_remove, regex_matches, regex_capture
|
|
252
252
|
// build : concat, join
|
|
253
253
|
// split : nth, first, last, count_parts
|
|
254
|
+
// math : add, subtract, multiply, divide
|
|
255
|
+
// validate : one_of
|
|
254
256
|
// encoding : base64_encode, base64_decode
|
|
255
257
|
// hashing : sha256, md5
|
|
256
|
-
// files : read_file, file_exists
|
|
258
|
+
// files : read_file, write_file, file_exists
|
|
257
259
|
// json : json_get, json_set
|
|
258
260
|
// error : try
|
|
259
|
-
// shell : shell_quote
|
|
261
|
+
// shell : shell_quote, capture
|
|
260
262
|
// variables : define
|
|
261
263
|
// cwd : set_cwd
|
|
262
264
|
"echo deploying-{{ to_upper(ARGS.env) }}",
|
|
@@ -267,6 +269,10 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
267
269
|
"go test {{ replace_all(ARGS.flags, ' ', ' -tag=') }}",
|
|
268
270
|
// Strip every match of a regex (here: collapse whitespace runs to a single space):
|
|
269
271
|
"echo {{ regex_replace(ARGS.text, '\\s+', ' ') }}",
|
|
272
|
+
// Pull a capture group out of the first regex match — no `(?s)^.*X(...)X.*$`
|
|
273
|
+
// greedy-replace trick needed. Group 0 is the whole match; group N is the
|
|
274
|
+
// N-th `(...)`. Out-of-bounds returns "" (same convention as `nth`).
|
|
275
|
+
"echo version={{ regex_capture(read_file('app/build.gradle.kts'), 'versionName = \"([^\"]+)\"', '1') }}",
|
|
270
276
|
// Split-by-separator scalar accessors — string in, string out, no list type:
|
|
271
277
|
// basename idiom (last segment after `/`); empty string when input ends in `/`.
|
|
272
278
|
"echo basename={{ last(ARGS.path, '/') }}",
|
|
@@ -282,6 +288,26 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
282
288
|
// `shell_quote` picks the right quoting for the active shell:
|
|
283
289
|
"some-tool --json {{ shell_quote(base64_decode(ENV.SECRET_BASE64)) }}",
|
|
284
290
|
|
|
291
|
+
// Slurp shell-command stdout straight into a substitution. `capture` runs
|
|
292
|
+
// the command through the platform's default shell (sh / cmd) and trims
|
|
293
|
+
// the trailing newline. Results are memoized per-target so the same
|
|
294
|
+
// capture in multiple commands runs once. `--dry-run` substitutes a
|
|
295
|
+
// readable placeholder instead of spawning the shell.
|
|
296
|
+
"echo built-at={{ capture('date -u +%Y-%m-%dT%H:%M:%SZ') }}",
|
|
297
|
+
"{{ define(sha, capture('git rev-parse HEAD')) }}",
|
|
298
|
+
|
|
299
|
+
// Arithmetic — variadic (2+ args), coerces strings to numbers, errors on
|
|
300
|
+
// non-numeric input. The result is formatted as an integer when whole and
|
|
301
|
+
// as a decimal otherwise (so `add('5', '3')` → "8", `add('5', '1.1')` →
|
|
302
|
+
// "6.1"). Divide-by-zero errors out.
|
|
303
|
+
"echo next-build={{ add(VARS.versionCode, '1') }}",
|
|
304
|
+
"echo half={{ divide(VARS.total, '2') }}",
|
|
305
|
+
|
|
306
|
+
// Validate a value against a fixed allow-list. Returns the value on
|
|
307
|
+
// match; lists every valid option in the error on mismatch. Collapses
|
|
308
|
+
// the four-case `match { major: define(part, 'major'), ... }` boilerplate.
|
|
309
|
+
"{{ define(part, one_of(ARGS, 'major', 'minor', 'patch', 'build')) }}",
|
|
310
|
+
|
|
285
311
|
// Cache keys / content fingerprints. `sha256` for security-sensitive use,
|
|
286
312
|
// `md5` for cheap fingerprinting (NOT cryptographically secure).
|
|
287
313
|
"echo cache-key={{ sha256(read_file('package-lock.json')) }}",
|
|
@@ -294,6 +320,15 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
294
320
|
// Use `try(...)` to recover from missing files.
|
|
295
321
|
"echo version={{ try(read_file('VERSION')) ? '0.0.0-dev' }}",
|
|
296
322
|
|
|
323
|
+
// Write a file straight from a substitution — pairs with `read_file` for
|
|
324
|
+
// read-modify-write pipelines (version bumps, config edits, …). Returns
|
|
325
|
+
// an empty string, so a line containing only this call is dropped silently
|
|
326
|
+
// (same convention as `define`). Goes through Rust's `std::fs::write`, so
|
|
327
|
+
// it sidesteps the shell entirely — safe for large content, content with
|
|
328
|
+
// quotes, embedded newlines, anything that would break a
|
|
329
|
+
// `printf > file`-style redirect on Windows. `--dry-run` skips the write.
|
|
330
|
+
"{{ write_file('build.gradle.kts', regex_replace(read_file('build.gradle.kts'), 'versionCode = [0-9]+', 'versionCode = 43')) }}",
|
|
331
|
+
|
|
297
332
|
// Pull values out of arbitrary JSON without `jq` (works on every shell):
|
|
298
333
|
"echo db_host={{ json_get(read_file('config.json'), 'database.host') }}",
|
|
299
334
|
|
package/bin/darwin-arm64/run
CHANGED
|
Binary file
|
package/bin/darwin-x64/README.md
CHANGED
|
@@ -248,15 +248,17 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
248
248
|
// trim : trim, trim_start, trim_end
|
|
249
249
|
// inspect : length, starts_with, ends_with, contains
|
|
250
250
|
// transform : escape, repeat, replace_all, remove_all
|
|
251
|
-
// regex : regex_replace, regex_remove, regex_matches
|
|
251
|
+
// regex : regex_replace, regex_remove, regex_matches, regex_capture
|
|
252
252
|
// build : concat, join
|
|
253
253
|
// split : nth, first, last, count_parts
|
|
254
|
+
// math : add, subtract, multiply, divide
|
|
255
|
+
// validate : one_of
|
|
254
256
|
// encoding : base64_encode, base64_decode
|
|
255
257
|
// hashing : sha256, md5
|
|
256
|
-
// files : read_file, file_exists
|
|
258
|
+
// files : read_file, write_file, file_exists
|
|
257
259
|
// json : json_get, json_set
|
|
258
260
|
// error : try
|
|
259
|
-
// shell : shell_quote
|
|
261
|
+
// shell : shell_quote, capture
|
|
260
262
|
// variables : define
|
|
261
263
|
// cwd : set_cwd
|
|
262
264
|
"echo deploying-{{ to_upper(ARGS.env) }}",
|
|
@@ -267,6 +269,10 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
267
269
|
"go test {{ replace_all(ARGS.flags, ' ', ' -tag=') }}",
|
|
268
270
|
// Strip every match of a regex (here: collapse whitespace runs to a single space):
|
|
269
271
|
"echo {{ regex_replace(ARGS.text, '\\s+', ' ') }}",
|
|
272
|
+
// Pull a capture group out of the first regex match — no `(?s)^.*X(...)X.*$`
|
|
273
|
+
// greedy-replace trick needed. Group 0 is the whole match; group N is the
|
|
274
|
+
// N-th `(...)`. Out-of-bounds returns "" (same convention as `nth`).
|
|
275
|
+
"echo version={{ regex_capture(read_file('app/build.gradle.kts'), 'versionName = \"([^\"]+)\"', '1') }}",
|
|
270
276
|
// Split-by-separator scalar accessors — string in, string out, no list type:
|
|
271
277
|
// basename idiom (last segment after `/`); empty string when input ends in `/`.
|
|
272
278
|
"echo basename={{ last(ARGS.path, '/') }}",
|
|
@@ -282,6 +288,26 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
282
288
|
// `shell_quote` picks the right quoting for the active shell:
|
|
283
289
|
"some-tool --json {{ shell_quote(base64_decode(ENV.SECRET_BASE64)) }}",
|
|
284
290
|
|
|
291
|
+
// Slurp shell-command stdout straight into a substitution. `capture` runs
|
|
292
|
+
// the command through the platform's default shell (sh / cmd) and trims
|
|
293
|
+
// the trailing newline. Results are memoized per-target so the same
|
|
294
|
+
// capture in multiple commands runs once. `--dry-run` substitutes a
|
|
295
|
+
// readable placeholder instead of spawning the shell.
|
|
296
|
+
"echo built-at={{ capture('date -u +%Y-%m-%dT%H:%M:%SZ') }}",
|
|
297
|
+
"{{ define(sha, capture('git rev-parse HEAD')) }}",
|
|
298
|
+
|
|
299
|
+
// Arithmetic — variadic (2+ args), coerces strings to numbers, errors on
|
|
300
|
+
// non-numeric input. The result is formatted as an integer when whole and
|
|
301
|
+
// as a decimal otherwise (so `add('5', '3')` → "8", `add('5', '1.1')` →
|
|
302
|
+
// "6.1"). Divide-by-zero errors out.
|
|
303
|
+
"echo next-build={{ add(VARS.versionCode, '1') }}",
|
|
304
|
+
"echo half={{ divide(VARS.total, '2') }}",
|
|
305
|
+
|
|
306
|
+
// Validate a value against a fixed allow-list. Returns the value on
|
|
307
|
+
// match; lists every valid option in the error on mismatch. Collapses
|
|
308
|
+
// the four-case `match { major: define(part, 'major'), ... }` boilerplate.
|
|
309
|
+
"{{ define(part, one_of(ARGS, 'major', 'minor', 'patch', 'build')) }}",
|
|
310
|
+
|
|
285
311
|
// Cache keys / content fingerprints. `sha256` for security-sensitive use,
|
|
286
312
|
// `md5` for cheap fingerprinting (NOT cryptographically secure).
|
|
287
313
|
"echo cache-key={{ sha256(read_file('package-lock.json')) }}",
|
|
@@ -294,6 +320,15 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
294
320
|
// Use `try(...)` to recover from missing files.
|
|
295
321
|
"echo version={{ try(read_file('VERSION')) ? '0.0.0-dev' }}",
|
|
296
322
|
|
|
323
|
+
// Write a file straight from a substitution — pairs with `read_file` for
|
|
324
|
+
// read-modify-write pipelines (version bumps, config edits, …). Returns
|
|
325
|
+
// an empty string, so a line containing only this call is dropped silently
|
|
326
|
+
// (same convention as `define`). Goes through Rust's `std::fs::write`, so
|
|
327
|
+
// it sidesteps the shell entirely — safe for large content, content with
|
|
328
|
+
// quotes, embedded newlines, anything that would break a
|
|
329
|
+
// `printf > file`-style redirect on Windows. `--dry-run` skips the write.
|
|
330
|
+
"{{ write_file('build.gradle.kts', regex_replace(read_file('build.gradle.kts'), 'versionCode = [0-9]+', 'versionCode = 43')) }}",
|
|
331
|
+
|
|
297
332
|
// Pull values out of arbitrary JSON without `jq` (works on every shell):
|
|
298
333
|
"echo db_host={{ json_get(read_file('config.json'), 'database.host') }}",
|
|
299
334
|
|
package/bin/darwin-x64/run
CHANGED
|
Binary file
|
|
@@ -248,15 +248,17 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
248
248
|
// trim : trim, trim_start, trim_end
|
|
249
249
|
// inspect : length, starts_with, ends_with, contains
|
|
250
250
|
// transform : escape, repeat, replace_all, remove_all
|
|
251
|
-
// regex : regex_replace, regex_remove, regex_matches
|
|
251
|
+
// regex : regex_replace, regex_remove, regex_matches, regex_capture
|
|
252
252
|
// build : concat, join
|
|
253
253
|
// split : nth, first, last, count_parts
|
|
254
|
+
// math : add, subtract, multiply, divide
|
|
255
|
+
// validate : one_of
|
|
254
256
|
// encoding : base64_encode, base64_decode
|
|
255
257
|
// hashing : sha256, md5
|
|
256
|
-
// files : read_file, file_exists
|
|
258
|
+
// files : read_file, write_file, file_exists
|
|
257
259
|
// json : json_get, json_set
|
|
258
260
|
// error : try
|
|
259
|
-
// shell : shell_quote
|
|
261
|
+
// shell : shell_quote, capture
|
|
260
262
|
// variables : define
|
|
261
263
|
// cwd : set_cwd
|
|
262
264
|
"echo deploying-{{ to_upper(ARGS.env) }}",
|
|
@@ -267,6 +269,10 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
267
269
|
"go test {{ replace_all(ARGS.flags, ' ', ' -tag=') }}",
|
|
268
270
|
// Strip every match of a regex (here: collapse whitespace runs to a single space):
|
|
269
271
|
"echo {{ regex_replace(ARGS.text, '\\s+', ' ') }}",
|
|
272
|
+
// Pull a capture group out of the first regex match — no `(?s)^.*X(...)X.*$`
|
|
273
|
+
// greedy-replace trick needed. Group 0 is the whole match; group N is the
|
|
274
|
+
// N-th `(...)`. Out-of-bounds returns "" (same convention as `nth`).
|
|
275
|
+
"echo version={{ regex_capture(read_file('app/build.gradle.kts'), 'versionName = \"([^\"]+)\"', '1') }}",
|
|
270
276
|
// Split-by-separator scalar accessors — string in, string out, no list type:
|
|
271
277
|
// basename idiom (last segment after `/`); empty string when input ends in `/`.
|
|
272
278
|
"echo basename={{ last(ARGS.path, '/') }}",
|
|
@@ -282,6 +288,26 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
282
288
|
// `shell_quote` picks the right quoting for the active shell:
|
|
283
289
|
"some-tool --json {{ shell_quote(base64_decode(ENV.SECRET_BASE64)) }}",
|
|
284
290
|
|
|
291
|
+
// Slurp shell-command stdout straight into a substitution. `capture` runs
|
|
292
|
+
// the command through the platform's default shell (sh / cmd) and trims
|
|
293
|
+
// the trailing newline. Results are memoized per-target so the same
|
|
294
|
+
// capture in multiple commands runs once. `--dry-run` substitutes a
|
|
295
|
+
// readable placeholder instead of spawning the shell.
|
|
296
|
+
"echo built-at={{ capture('date -u +%Y-%m-%dT%H:%M:%SZ') }}",
|
|
297
|
+
"{{ define(sha, capture('git rev-parse HEAD')) }}",
|
|
298
|
+
|
|
299
|
+
// Arithmetic — variadic (2+ args), coerces strings to numbers, errors on
|
|
300
|
+
// non-numeric input. The result is formatted as an integer when whole and
|
|
301
|
+
// as a decimal otherwise (so `add('5', '3')` → "8", `add('5', '1.1')` →
|
|
302
|
+
// "6.1"). Divide-by-zero errors out.
|
|
303
|
+
"echo next-build={{ add(VARS.versionCode, '1') }}",
|
|
304
|
+
"echo half={{ divide(VARS.total, '2') }}",
|
|
305
|
+
|
|
306
|
+
// Validate a value against a fixed allow-list. Returns the value on
|
|
307
|
+
// match; lists every valid option in the error on mismatch. Collapses
|
|
308
|
+
// the four-case `match { major: define(part, 'major'), ... }` boilerplate.
|
|
309
|
+
"{{ define(part, one_of(ARGS, 'major', 'minor', 'patch', 'build')) }}",
|
|
310
|
+
|
|
285
311
|
// Cache keys / content fingerprints. `sha256` for security-sensitive use,
|
|
286
312
|
// `md5` for cheap fingerprinting (NOT cryptographically secure).
|
|
287
313
|
"echo cache-key={{ sha256(read_file('package-lock.json')) }}",
|
|
@@ -294,6 +320,15 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
294
320
|
// Use `try(...)` to recover from missing files.
|
|
295
321
|
"echo version={{ try(read_file('VERSION')) ? '0.0.0-dev' }}",
|
|
296
322
|
|
|
323
|
+
// Write a file straight from a substitution — pairs with `read_file` for
|
|
324
|
+
// read-modify-write pipelines (version bumps, config edits, …). Returns
|
|
325
|
+
// an empty string, so a line containing only this call is dropped silently
|
|
326
|
+
// (same convention as `define`). Goes through Rust's `std::fs::write`, so
|
|
327
|
+
// it sidesteps the shell entirely — safe for large content, content with
|
|
328
|
+
// quotes, embedded newlines, anything that would break a
|
|
329
|
+
// `printf > file`-style redirect on Windows. `--dry-run` skips the write.
|
|
330
|
+
"{{ write_file('build.gradle.kts', regex_replace(read_file('build.gradle.kts'), 'versionCode = [0-9]+', 'versionCode = 43')) }}",
|
|
331
|
+
|
|
297
332
|
// Pull values out of arbitrary JSON without `jq` (works on every shell):
|
|
298
333
|
"echo db_host={{ json_get(read_file('config.json'), 'database.host') }}",
|
|
299
334
|
|
package/bin/linux-arm64/run
CHANGED
|
Binary file
|
package/bin/linux-x64/README.md
CHANGED
|
@@ -248,15 +248,17 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
248
248
|
// trim : trim, trim_start, trim_end
|
|
249
249
|
// inspect : length, starts_with, ends_with, contains
|
|
250
250
|
// transform : escape, repeat, replace_all, remove_all
|
|
251
|
-
// regex : regex_replace, regex_remove, regex_matches
|
|
251
|
+
// regex : regex_replace, regex_remove, regex_matches, regex_capture
|
|
252
252
|
// build : concat, join
|
|
253
253
|
// split : nth, first, last, count_parts
|
|
254
|
+
// math : add, subtract, multiply, divide
|
|
255
|
+
// validate : one_of
|
|
254
256
|
// encoding : base64_encode, base64_decode
|
|
255
257
|
// hashing : sha256, md5
|
|
256
|
-
// files : read_file, file_exists
|
|
258
|
+
// files : read_file, write_file, file_exists
|
|
257
259
|
// json : json_get, json_set
|
|
258
260
|
// error : try
|
|
259
|
-
// shell : shell_quote
|
|
261
|
+
// shell : shell_quote, capture
|
|
260
262
|
// variables : define
|
|
261
263
|
// cwd : set_cwd
|
|
262
264
|
"echo deploying-{{ to_upper(ARGS.env) }}",
|
|
@@ -267,6 +269,10 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
267
269
|
"go test {{ replace_all(ARGS.flags, ' ', ' -tag=') }}",
|
|
268
270
|
// Strip every match of a regex (here: collapse whitespace runs to a single space):
|
|
269
271
|
"echo {{ regex_replace(ARGS.text, '\\s+', ' ') }}",
|
|
272
|
+
// Pull a capture group out of the first regex match — no `(?s)^.*X(...)X.*$`
|
|
273
|
+
// greedy-replace trick needed. Group 0 is the whole match; group N is the
|
|
274
|
+
// N-th `(...)`. Out-of-bounds returns "" (same convention as `nth`).
|
|
275
|
+
"echo version={{ regex_capture(read_file('app/build.gradle.kts'), 'versionName = \"([^\"]+)\"', '1') }}",
|
|
270
276
|
// Split-by-separator scalar accessors — string in, string out, no list type:
|
|
271
277
|
// basename idiom (last segment after `/`); empty string when input ends in `/`.
|
|
272
278
|
"echo basename={{ last(ARGS.path, '/') }}",
|
|
@@ -282,6 +288,26 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
282
288
|
// `shell_quote` picks the right quoting for the active shell:
|
|
283
289
|
"some-tool --json {{ shell_quote(base64_decode(ENV.SECRET_BASE64)) }}",
|
|
284
290
|
|
|
291
|
+
// Slurp shell-command stdout straight into a substitution. `capture` runs
|
|
292
|
+
// the command through the platform's default shell (sh / cmd) and trims
|
|
293
|
+
// the trailing newline. Results are memoized per-target so the same
|
|
294
|
+
// capture in multiple commands runs once. `--dry-run` substitutes a
|
|
295
|
+
// readable placeholder instead of spawning the shell.
|
|
296
|
+
"echo built-at={{ capture('date -u +%Y-%m-%dT%H:%M:%SZ') }}",
|
|
297
|
+
"{{ define(sha, capture('git rev-parse HEAD')) }}",
|
|
298
|
+
|
|
299
|
+
// Arithmetic — variadic (2+ args), coerces strings to numbers, errors on
|
|
300
|
+
// non-numeric input. The result is formatted as an integer when whole and
|
|
301
|
+
// as a decimal otherwise (so `add('5', '3')` → "8", `add('5', '1.1')` →
|
|
302
|
+
// "6.1"). Divide-by-zero errors out.
|
|
303
|
+
"echo next-build={{ add(VARS.versionCode, '1') }}",
|
|
304
|
+
"echo half={{ divide(VARS.total, '2') }}",
|
|
305
|
+
|
|
306
|
+
// Validate a value against a fixed allow-list. Returns the value on
|
|
307
|
+
// match; lists every valid option in the error on mismatch. Collapses
|
|
308
|
+
// the four-case `match { major: define(part, 'major'), ... }` boilerplate.
|
|
309
|
+
"{{ define(part, one_of(ARGS, 'major', 'minor', 'patch', 'build')) }}",
|
|
310
|
+
|
|
285
311
|
// Cache keys / content fingerprints. `sha256` for security-sensitive use,
|
|
286
312
|
// `md5` for cheap fingerprinting (NOT cryptographically secure).
|
|
287
313
|
"echo cache-key={{ sha256(read_file('package-lock.json')) }}",
|
|
@@ -294,6 +320,15 @@ and work as full substitution bodies *or* as chain segments:
|
|
|
294
320
|
// Use `try(...)` to recover from missing files.
|
|
295
321
|
"echo version={{ try(read_file('VERSION')) ? '0.0.0-dev' }}",
|
|
296
322
|
|
|
323
|
+
// Write a file straight from a substitution — pairs with `read_file` for
|
|
324
|
+
// read-modify-write pipelines (version bumps, config edits, …). Returns
|
|
325
|
+
// an empty string, so a line containing only this call is dropped silently
|
|
326
|
+
// (same convention as `define`). Goes through Rust's `std::fs::write`, so
|
|
327
|
+
// it sidesteps the shell entirely — safe for large content, content with
|
|
328
|
+
// quotes, embedded newlines, anything that would break a
|
|
329
|
+
// `printf > file`-style redirect on Windows. `--dry-run` skips the write.
|
|
330
|
+
"{{ write_file('build.gradle.kts', regex_replace(read_file('build.gradle.kts'), 'versionCode = [0-9]+', 'versionCode = 43')) }}",
|
|
331
|
+
|
|
297
332
|
// Pull values out of arbitrary JSON without `jq` (works on every shell):
|
|
298
333
|
"echo db_host={{ json_get(read_file('config.json'), 'database.host') }}",
|
|
299
334
|
|
package/bin/linux-x64/run
CHANGED
|
Binary file
|
package/bin/win32-arm64/run.exe
CHANGED
|
Binary file
|
package/bin/win32-x64/run.exe
CHANGED
|
Binary file
|
package/package.json
CHANGED