npm.io
3.3.0 • Published 2 weeks agoCLI

@magicdawn/x-args

Licence
MIT
Version
3.3.0
Deps
21
Size
30 kB
Vulns
0
Weekly
0

x-args

play with cli commands like a composer

npm version npm downloads npm license

Install

$ pnpm add @magicdawn/x-args -g

# or
$ pnpm dlx @magicdawn/x-args
$ pnpx @magicdawn/x-args
$ bunx @magicdawn/x-args

Commands

x-args command
x-args -f './*.*' -c $'cwebp :file -o \':dir/:name_compressed.:ext\''

use -t to show available tokens

txt sub command
# use :line
x-args txt ./to-be-processed.txt -c 'echo :line'

features that native xargs does not have

  • comment, x-args txt support // or # comment, I suggest use .conf extenstion, so that editors can recognize # comment
  • live reload, x-args txt read txt file, exec command, and read txt again, so edit after command start will works as well
  • wait input update: use -w,--wait, so that this command will not exit but to wait txt file update. use --wait-timeout 1h to delay 1h 1 hour.
Templates
  • use :line for whole line
  • use :args0 / :arg0 for single arg
  • use -s / --split / --args-split to specify how to turn :line to :args0, default using /\s+/

when input is a filepath, and may contains space, use a different separator that has low possibility occurs in a filepath for example

  • ancient chinese character for Simplified chinese user: __纛恚掾旒__, --args-split '__纛恚掾旒__', 出处
  • english user, maybe a emoji combination ?

Tips

-c,--command

if need single quote in -c,--command, u can use -c , a special shell syntax learn from zx, see

:line / :arg0

this will be auto escaped, no need to manual quote, just use plain :line / :arg0

retry

if your -c,--command may fail, and u need retry it. u can use https://npm.im/retry-cli

# install globally
pnpm add -g retry-cli

# add retry to `command-may-fail`
x-args txt ./to-be-processed.txt -c 'retry -- command-may-fail :line'

# retry times 1000, default: 10, see retry-cli homepage
x-args txt ./to-be-processed.txt -c 'retry -n 1000 -- command-may-fail :line'

Changelog

CHANGELOG.md

License

the MIT License http://magicdawn.mit-license.org

command \'inside-a-quote\''
, a special shell syntax learn from zx, see

__INLINE_CODE_26__ / __INLINE_CODE_27__

this will be auto escaped, no need to manual quote, just use plain __INLINE_CODE_28__ / __INLINE_CODE_29__

retry

if your __INLINE_CODE_30__ may fail, and u need retry it. u can use https://npm.im/retry-cli

# install globally
pnpm add -g retry-cli

# add retry to `command-may-fail`
x-args txt ./to-be-processed.txt -c 'retry -- command-may-fail :line'

# retry times 1000, default: 10, see retry-cli homepage
x-args txt ./to-be-processed.txt -c 'retry -n 1000 -- command-may-fail :line'

Changelog

CHANGELOG.md

License

the MIT License http://magicdawn.mit-license.org

Keywords