mirror of
https://github.com/daylinmorgan/forge.git
synced 2024-11-14 21:17:54 -06:00
update to newer hwylterm
This commit is contained in:
parent
19df564645
commit
b77b2489cc
3 changed files with 114 additions and 48 deletions
|
@ -8,7 +8,4 @@ binDir = "bin"
|
||||||
|
|
||||||
|
|
||||||
requires "nim >= 2.0.0"
|
requires "nim >= 2.0.0"
|
||||||
requires "cligen"
|
requires "https://github.com/daylinmorgan/hwylterm#dfd9a7d"
|
||||||
requires "https://github.com/daylinmorgan/hwylterm#HEAD"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
14
nimble.lock
14
nimble.lock
|
@ -1,24 +1,14 @@
|
||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"packages": {
|
"packages": {
|
||||||
"cligen": {
|
|
||||||
"version": "1.7.5",
|
|
||||||
"vcsRevision": "85daafd76b0104387f50ff3f75c829b4c2804412",
|
|
||||||
"url": "https://github.com/c-blake/cligen.git",
|
|
||||||
"downloadMethod": "git",
|
|
||||||
"dependencies": [],
|
|
||||||
"checksums": {
|
|
||||||
"sha1": "f3ffe7329c8db755677d3ca377d02ff176cec8b1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hwylterm": {
|
"hwylterm": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"vcsRevision": "c2bcfd1f73dda97bd3e209c89e2abfe588f0977c",
|
"vcsRevision": "dfd9a7d98d345510c9d248670b7e80f7501d1a5a",
|
||||||
"url": "https://github.com/daylinmorgan/hwylterm",
|
"url": "https://github.com/daylinmorgan/hwylterm",
|
||||||
"downloadMethod": "git",
|
"downloadMethod": "git",
|
||||||
"dependencies": [],
|
"dependencies": [],
|
||||||
"checksums": {
|
"checksums": {
|
||||||
"sha1": "1932229840c893c39acca0b50def19913678f5f0"
|
"sha1": "7ed514f09d1f74f725c866ddb3cfba19cc8b3e42"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
143
src/forge.nim
143
src/forge.nim
|
@ -20,6 +20,7 @@ proc genFlags(target: string, args: seq[string] = @[]): seq[string] =
|
||||||
|
|
||||||
proc targets() =
|
proc targets() =
|
||||||
## show available targets
|
## show available targets
|
||||||
|
zigExists()
|
||||||
let targetList = zigTargets()
|
let targetList = zigTargets()
|
||||||
termEcho "[bold green]available targets:".bb
|
termEcho "[bold green]available targets:".bb
|
||||||
stderr.writeLine targetList.columns
|
stderr.writeLine targetList.columns
|
||||||
|
@ -118,39 +119,117 @@ proc release(
|
||||||
termErrQuit &"exited with code {errCode} see above for error"
|
termErrQuit &"exited with code {errCode} see above for error"
|
||||||
|
|
||||||
when isMainModule:
|
when isMainModule:
|
||||||
import cligen
|
# import cligen
|
||||||
import hwylterm/cli
|
# TODO: swap for hwylterm/hwylcli
|
||||||
hwylCli(clCfg)
|
import hwylterm/hwylcli
|
||||||
|
# hwylCli(clCfg)
|
||||||
|
|
||||||
let clUse* = $bb("$command $args\n${doc}[bold]Options[/]:\n$options")
|
# let clUse* = $bb("$command $args\n${doc}[bold]Options[/]:\n$options")
|
||||||
const vsn = staticExec "git describe --tags --always HEAD"
|
const vsn = staticExec "git describe --tags --always HEAD"
|
||||||
|
|
||||||
var vsnCfg = clCfg
|
hwylCli:
|
||||||
vsnCfg.version = vsn
|
name "forge"
|
||||||
|
V vsn
|
||||||
|
subcommands:
|
||||||
|
--- targets
|
||||||
|
... "show available targets"
|
||||||
|
run: targets()
|
||||||
|
|
||||||
dispatchMulti(
|
--- cc
|
||||||
["multi", cf = vsnCfg],
|
... "compile with zig cc"
|
||||||
[
|
flags:
|
||||||
cc,
|
`dry-run`:
|
||||||
usage = clUse,
|
T bool
|
||||||
help = {
|
? "show command instead of executing"
|
||||||
"dryrun": "show command instead of executing",
|
- n
|
||||||
"nimble": "use nimble as base command for compiling",
|
nimble:
|
||||||
},
|
T bool
|
||||||
],
|
? "use nimble as base command for compiling"
|
||||||
[targets, usage = clUse],
|
target:
|
||||||
[
|
? "target triple"
|
||||||
release,
|
- t
|
||||||
usage = clUse,
|
run:
|
||||||
help = {
|
cc(target, `dry-run`, nimble, args)
|
||||||
"target": "set target, may be repeated",
|
|
||||||
"bin": "set bin, may be repeated",
|
--- release
|
||||||
"dryrun": "show command instead of executing",
|
... """
|
||||||
"format": "set format, see help above",
|
generate release assets for n>=1 targets
|
||||||
"nimble": "use nimble as base command for compiling",
|
|
||||||
"config-file": "path to config",
|
format argument:
|
||||||
"no-config": "ignore config file",
|
format is a template string used for each target directory
|
||||||
},
|
available fields are name, version, target
|
||||||
short = {"verbose": 'V'},
|
default: ${name}-v${verison}-${target}
|
||||||
],
|
|
||||||
)
|
if name or version are not specified they will be inferred from the local .nimble file
|
||||||
|
"""
|
||||||
|
flags:
|
||||||
|
verbose:
|
||||||
|
T bool
|
||||||
|
? "enable verbose"
|
||||||
|
- v
|
||||||
|
target:
|
||||||
|
T seq[string]
|
||||||
|
? "set target, may be repeated"
|
||||||
|
* @[]
|
||||||
|
- t
|
||||||
|
bin:
|
||||||
|
T seq[string]
|
||||||
|
? "set bin, may be repeated"
|
||||||
|
* @[]
|
||||||
|
`dry-run`:
|
||||||
|
T bool
|
||||||
|
? "show command instead of executing"
|
||||||
|
- n
|
||||||
|
format:
|
||||||
|
? "set format, see help above"
|
||||||
|
nimble:
|
||||||
|
T bool
|
||||||
|
? "use nimble as base command for compiling"
|
||||||
|
`config-file`:
|
||||||
|
? "path to config"
|
||||||
|
* ".forge.cfg"
|
||||||
|
`no-config`:
|
||||||
|
T bool
|
||||||
|
? "ignore config file"
|
||||||
|
outdir:
|
||||||
|
? "path to output dir"
|
||||||
|
* "dist"
|
||||||
|
- o
|
||||||
|
name:
|
||||||
|
? "set name, inferred otherwise"
|
||||||
|
* ""
|
||||||
|
version:
|
||||||
|
? "set version, inferred otherwise"
|
||||||
|
* ""
|
||||||
|
run:
|
||||||
|
release(
|
||||||
|
target,# seq[string] = @[],
|
||||||
|
bin, # seq[string] = @[],
|
||||||
|
args,# seq[string],
|
||||||
|
outdir,# string = "dist",
|
||||||
|
format,# string = "",
|
||||||
|
name,# string = "",
|
||||||
|
version,# string = "",
|
||||||
|
`dry-run`,# bool = false,
|
||||||
|
nimble,# bool = false,
|
||||||
|
`config-file`,# string = ".forge.cfg",
|
||||||
|
`no-config`,# bool = false,
|
||||||
|
verbose,# bool = false,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# [
|
||||||
|
# release,
|
||||||
|
# usage = clUse,
|
||||||
|
# help = {
|
||||||
|
# "target": "set target, may be repeated",
|
||||||
|
# "bin": "set bin, may be repeated",
|
||||||
|
# "dryrun": "show command instead of executing",
|
||||||
|
# "format": "set format, see help above",
|
||||||
|
# "nimble": "use nimble as base command for compiling",
|
||||||
|
# "config-file": "path to config",
|
||||||
|
# "no-config": "ignore config file",
|
||||||
|
# },
|
||||||
|
# short = {"verbose": 'V'},
|
||||||
|
# ],
|
||||||
|
# )
|
||||||
|
|
Loading…
Reference in a new issue