@fnndsc/brasa 0.56.1 → 0.56.3
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/dist/buildinfo.json +1 -1
- package/dist/builtins/berth/berth.d.ts +90 -3
- package/dist/builtins/berth/berth.js +129 -76
- package/dist/builtins/berth/berth.js.map +1 -1
- package/dist/builtins/berth/berthClose.d.ts +25 -6
- package/dist/builtins/berth/berthClose.js +8 -64
- package/dist/builtins/berth/berthClose.js.map +1 -1
- package/dist/builtins/berth/berthCube.d.ts +3 -2
- package/dist/builtins/berth/berthCube.js +9 -16
- package/dist/builtins/berth/berthCube.js.map +1 -1
- package/dist/builtins/berth/berthProcesses.js +33 -3
- package/dist/builtins/berth/berthProcesses.js.map +1 -1
- package/dist/builtins/debug.d.ts +24 -3
- package/dist/builtins/debug.js +66 -13
- package/dist/builtins/debug.js.map +1 -1
- package/dist/builtins/fs/acl.args.d.ts +5 -38
- package/dist/builtins/fs/acl.args.js +6 -72
- package/dist/builtins/fs/acl.args.js.map +1 -1
- package/dist/builtins/fs/acl.d.ts +100 -10
- package/dist/builtins/fs/acl.js +222 -68
- package/dist/builtins/fs/acl.js.map +1 -1
- package/dist/builtins/fs/cat.args.d.ts +14 -15
- package/dist/builtins/fs/cat.args.js +13 -40
- package/dist/builtins/fs/cat.args.js.map +1 -1
- package/dist/builtins/fs/cat.d.ts +40 -3
- package/dist/builtins/fs/cat.js +92 -13
- package/dist/builtins/fs/cat.js.map +1 -1
- package/dist/builtins/fs/cd.d.ts +24 -6
- package/dist/builtins/fs/cd.js +71 -18
- package/dist/builtins/fs/cd.js.map +1 -1
- package/dist/builtins/fs/configWrite.d.ts +24 -8
- package/dist/builtins/fs/configWrite.js +77 -36
- package/dist/builtins/fs/configWrite.js.map +1 -1
- package/dist/builtins/fs/cp.d.ts +39 -4
- package/dist/builtins/fs/cp.js +122 -56
- package/dist/builtins/fs/cp.js.map +1 -1
- package/dist/builtins/fs/download.d.ts +31 -4
- package/dist/builtins/fs/download.js +75 -38
- package/dist/builtins/fs/download.js.map +1 -1
- package/dist/builtins/fs/du.d.ts +59 -33
- package/dist/builtins/fs/du.js +111 -79
- package/dist/builtins/fs/du.js.map +1 -1
- package/dist/builtins/fs/edit.d.ts +19 -4
- package/dist/builtins/fs/edit.js +77 -16
- package/dist/builtins/fs/edit.js.map +1 -1
- package/dist/builtins/fs/find.d.ts +25 -0
- package/dist/builtins/fs/find.js +76 -5
- package/dist/builtins/fs/find.js.map +1 -1
- package/dist/builtins/fs/ls.d.ts +69 -4
- package/dist/builtins/fs/ls.js +84 -45
- package/dist/builtins/fs/ls.js.map +1 -1
- package/dist/builtins/fs/mkdir.d.ts +28 -18
- package/dist/builtins/fs/mkdir.js +95 -66
- package/dist/builtins/fs/mkdir.js.map +1 -1
- package/dist/builtins/fs/mv.d.ts +34 -4
- package/dist/builtins/fs/mv.js +129 -64
- package/dist/builtins/fs/mv.js.map +1 -1
- package/dist/builtins/fs/pull.args.d.ts +56 -17
- package/dist/builtins/fs/pull.args.js +16 -66
- package/dist/builtins/fs/pull.args.js.map +1 -1
- package/dist/builtins/fs/pull.d.ts +62 -0
- package/dist/builtins/fs/pull.js +123 -31
- package/dist/builtins/fs/pull.js.map +1 -1
- package/dist/builtins/fs/pwd.d.ts +19 -5
- package/dist/builtins/fs/pwd.js +62 -8
- package/dist/builtins/fs/pwd.js.map +1 -1
- package/dist/builtins/fs/rm.d.ts +58 -21
- package/dist/builtins/fs/rm.js +99 -82
- package/dist/builtins/fs/rm.js.map +1 -1
- package/dist/builtins/fs/rmdir.d.ts +29 -11
- package/dist/builtins/fs/rmdir.js +87 -36
- package/dist/builtins/fs/rmdir.js.map +1 -1
- package/dist/builtins/fs/touch.d.ts +44 -9
- package/dist/builtins/fs/touch.js +91 -27
- package/dist/builtins/fs/touch.js.map +1 -1
- package/dist/builtins/fs/tree.d.ts +36 -9
- package/dist/builtins/fs/tree.js +126 -36
- package/dist/builtins/fs/tree.js.map +1 -1
- package/dist/builtins/fs/upload.d.ts +22 -3
- package/dist/builtins/fs/upload.js +82 -14
- package/dist/builtins/fs/upload.js.map +1 -1
- package/dist/builtins/fs/xattr.args.d.ts +12 -33
- package/dist/builtins/fs/xattr.args.js +17 -95
- package/dist/builtins/fs/xattr.args.js.map +1 -1
- package/dist/builtins/fs/xattr.d.ts +98 -8
- package/dist/builtins/fs/xattr.js +163 -24
- package/dist/builtins/fs/xattr.js.map +1 -1
- package/dist/builtins/games/bytes.d.ts +201 -5
- package/dist/builtins/games/bytes.js +255 -54
- package/dist/builtins/games/bytes.js.map +1 -1
- package/dist/builtins/games/chimes.d.ts +180 -3
- package/dist/builtins/games/chimes.js +203 -26
- package/dist/builtins/games/chimes.js.map +1 -1
- package/dist/builtins/games/chrislab.d.ts +101 -3
- package/dist/builtins/games/chrislab.js +117 -17
- package/dist/builtins/games/chrislab.js.map +1 -1
- package/dist/builtins/games/cowsay.d.ts +93 -2
- package/dist/builtins/games/cowsay.js +90 -31
- package/dist/builtins/games/cowsay.js.map +1 -1
- package/dist/builtins/games/figlet.d.ts +70 -2
- package/dist/builtins/games/figlet.js +83 -6
- package/dist/builtins/games/figlet.js.map +1 -1
- package/dist/builtins/games/lab.d.ts +104 -5
- package/dist/builtins/games/lab.js +144 -6
- package/dist/builtins/games/lab.js.map +1 -1
- package/dist/builtins/games/lolcat.d.ts +61 -1
- package/dist/builtins/games/lolcat.js +59 -24
- package/dist/builtins/games/lolcat.js.map +1 -1
- package/dist/builtins/games/morse.d.ts +36 -1
- package/dist/builtins/games/morse.js +50 -2
- package/dist/builtins/games/morse.js.map +1 -1
- package/dist/builtins/games/numbers.d.ts +241 -5
- package/dist/builtins/games/numbers.js +298 -23
- package/dist/builtins/games/numbers.js.map +1 -1
- package/dist/builtins/games/play.d.ts +96 -6
- package/dist/builtins/games/play.js +137 -6
- package/dist/builtins/games/play.js.map +1 -1
- package/dist/builtins/games/qr.d.ts +40 -1
- package/dist/builtins/games/qr.js +51 -2
- package/dist/builtins/games/qr.js.map +1 -1
- package/dist/builtins/games/show.d.ts +131 -6
- package/dist/builtins/games/show.js +208 -20
- package/dist/builtins/games/show.js.map +1 -1
- package/dist/builtins/games/sky.d.ts +178 -4
- package/dist/builtins/games/sky.js +228 -12
- package/dist/builtins/games/sky.js.map +1 -1
- package/dist/builtins/games/text.d.ts +258 -7
- package/dist/builtins/games/text.js +310 -29
- package/dist/builtins/games/text.js.map +1 -1
- package/dist/builtins/games/trek.d.ts +67 -3
- package/dist/builtins/games/trek.js +63 -10
- package/dist/builtins/games/trek.js.map +1 -1
- package/dist/builtins/games/wtf.d.ts +58 -1
- package/dist/builtins/games/wtf.js +67 -6
- package/dist/builtins/games/wtf.js.map +1 -1
- package/dist/builtins/help.d.ts +41 -3
- package/dist/builtins/help.js +92 -796
- package/dist/builtins/help.js.map +1 -1
- package/dist/builtins/net/connect.d.ts +36 -3
- package/dist/builtins/net/connect.js +84 -26
- package/dist/builtins/net/connect.js.map +1 -1
- package/dist/builtins/net/cubepath.d.ts +49 -5
- package/dist/builtins/net/cubepath.js +69 -27
- package/dist/builtins/net/cubepath.js.map +1 -1
- package/dist/builtins/net/logout.d.ts +13 -4
- package/dist/builtins/net/logout.js +49 -3
- package/dist/builtins/net/logout.js.map +1 -1
- package/dist/builtins/net/netstat.d.ts +29 -4
- package/dist/builtins/net/netstat.js +64 -23
- package/dist/builtins/net/netstat.js.map +1 -1
- package/dist/builtins/net/pacs.d.ts +169 -15
- package/dist/builtins/net/pacs.js +92 -33
- package/dist/builtins/net/pacs.js.map +1 -1
- package/dist/builtins/net/query.args.d.ts +95 -0
- package/dist/builtins/net/query.args.js +26 -0
- package/dist/builtins/net/query.args.js.map +1 -0
- package/dist/builtins/net/query.d.ts +98 -5
- package/dist/builtins/net/query.js +89 -83
- package/dist/builtins/net/query.js.map +1 -1
- package/dist/builtins/net/status.d.ts +5 -3
- package/dist/builtins/net/status.js +5 -12
- package/dist/builtins/net/status.js.map +1 -1
- package/dist/builtins/parametersofplugin.d.ts +82 -3
- package/dist/builtins/parametersofplugin.js +79 -23
- package/dist/builtins/parametersofplugin.js.map +1 -1
- package/dist/builtins/proc.d.ts +210 -3
- package/dist/builtins/proc.js +210 -119
- package/dist/builtins/proc.js.map +1 -1
- package/dist/builtins/res/compute.d.ts +67 -3
- package/dist/builtins/res/compute.js +121 -35
- package/dist/builtins/res/compute.js.map +1 -1
- package/dist/builtins/res/dicom.d.ts +55 -7
- package/dist/builtins/res/dicom.js +86 -52
- package/dist/builtins/res/dicom.js.map +1 -1
- package/dist/builtins/res/expect.d.ts +52 -3
- package/dist/builtins/res/expect.js +92 -29
- package/dist/builtins/res/expect.js.map +1 -1
- package/dist/builtins/res/feed.d.ts +475 -3
- package/dist/builtins/res/feed.js +253 -158
- package/dist/builtins/res/feed.js.map +1 -1
- package/dist/builtins/res/files.d.ts +517 -3
- package/dist/builtins/res/files.js +124 -44
- package/dist/builtins/res/files.js.map +1 -1
- package/dist/builtins/res/gather.d.ts +113 -3
- package/dist/builtins/res/gather.js +153 -44
- package/dist/builtins/res/gather.js.map +1 -1
- package/dist/builtins/res/gather.process.d.ts +27 -19
- package/dist/builtins/res/gather.process.js +29 -59
- package/dist/builtins/res/gather.process.js.map +1 -1
- package/dist/builtins/res/group.d.ts +284 -3
- package/dist/builtins/res/group.js +147 -76
- package/dist/builtins/res/group.js.map +1 -1
- package/dist/builtins/res/image.d.ts +30 -2
- package/dist/builtins/res/image.js +62 -10
- package/dist/builtins/res/image.js.map +1 -1
- package/dist/builtins/res/play.d.ts +71 -9
- package/dist/builtins/res/play.js +124 -82
- package/dist/builtins/res/play.js.map +1 -1
- package/dist/builtins/res/plugininstance.d.ts +307 -2
- package/dist/builtins/res/plugininstance.js +122 -50
- package/dist/builtins/res/plugininstance.js.map +1 -1
- package/dist/builtins/res/pluginmeta.d.ts +244 -2
- package/dist/builtins/res/pluginmeta.js +98 -40
- package/dist/builtins/res/pluginmeta.js.map +1 -1
- package/dist/builtins/res/record.d.ts +37 -3
- package/dist/builtins/res/record.js +127 -57
- package/dist/builtins/res/record.js.map +1 -1
- package/dist/builtins/res/resourceList.d.ts +136 -0
- package/dist/builtins/res/resourceList.js +51 -0
- package/dist/builtins/res/resourceList.js.map +1 -0
- package/dist/builtins/res/tag.d.ts +244 -3
- package/dist/builtins/res/tag.js +97 -41
- package/dist/builtins/res/tag.js.map +1 -1
- package/dist/builtins/res/user.d.ts +122 -3
- package/dist/builtins/res/user.js +83 -21
- package/dist/builtins/res/user.js.map +1 -1
- package/dist/builtins/res/workflow.d.ts +244 -2
- package/dist/builtins/res/workflow.js +97 -40
- package/dist/builtins/res/workflow.js.map +1 -1
- package/dist/builtins/store.d.ts +85 -3
- package/dist/builtins/store.js +135 -68
- package/dist/builtins/store.js.map +1 -1
- package/dist/builtins/sys/apropos.d.ts +80 -5
- package/dist/builtins/sys/apropos.js +121 -15
- package/dist/builtins/sys/apropos.js.map +1 -1
- package/dist/builtins/sys/cal.d.ts +44 -5
- package/dist/builtins/sys/cal.js +57 -10
- package/dist/builtins/sys/cal.js.map +1 -1
- package/dist/builtins/sys/command.d.ts +20 -0
- package/dist/builtins/sys/command.js +31 -0
- package/dist/builtins/sys/command.js.map +1 -1
- package/dist/builtins/sys/context.d.ts +13 -3
- package/dist/builtins/sys/context.js +51 -4
- package/dist/builtins/sys/context.js.map +1 -1
- package/dist/builtins/sys/date.d.ts +56 -5
- package/dist/builtins/sys/date.js +63 -9
- package/dist/builtins/sys/date.js.map +1 -1
- package/dist/builtins/sys/echo.d.ts +63 -2
- package/dist/builtins/sys/echo.js +87 -8
- package/dist/builtins/sys/echo.js.map +1 -1
- package/dist/builtins/sys/fortune.d.ts +27 -2
- package/dist/builtins/sys/fortune.js +44 -2
- package/dist/builtins/sys/fortune.js.map +1 -1
- package/dist/builtins/sys/grep.d.ts +245 -11
- package/dist/builtins/sys/grep.js +418 -131
- package/dist/builtins/sys/grep.js.map +1 -1
- package/dist/builtins/sys/joblets.d.ts +66 -7
- package/dist/builtins/sys/joblets.js +101 -14
- package/dist/builtins/sys/joblets.js.map +1 -1
- package/dist/builtins/sys/motd.d.ts +37 -3
- package/dist/builtins/sys/motd.js +49 -8
- package/dist/builtins/sys/motd.js.map +1 -1
- package/dist/builtins/sys/notes.d.ts +75 -3
- package/dist/builtins/sys/notes.js +90 -29
- package/dist/builtins/sys/notes.js.map +1 -1
- package/dist/builtins/sys/physicalmode.d.ts +24 -3
- package/dist/builtins/sys/physicalmode.js +68 -14
- package/dist/builtins/sys/physicalmode.js.map +1 -1
- package/dist/builtins/sys/tasks.d.ts +74 -5
- package/dist/builtins/sys/tasks.js +102 -14
- package/dist/builtins/sys/tasks.js.map +1 -1
- package/dist/builtins/sys/textFilters.d.ts +673 -41
- package/dist/builtins/sys/textFilters.js +719 -264
- package/dist/builtins/sys/textFilters.js.map +1 -1
- package/dist/builtins/sys/timing.d.ts +24 -3
- package/dist/builtins/sys/timing.js +67 -14
- package/dist/builtins/sys/timing.js.map +1 -1
- package/dist/builtins/sys/variables.d.ts +70 -4
- package/dist/builtins/sys/variables.js +103 -31
- package/dist/builtins/sys/variables.js.map +1 -1
- package/dist/builtins/sys/version.d.ts +27 -2
- package/dist/builtins/sys/version.js +48 -3
- package/dist/builtins/sys/version.js.map +1 -1
- package/dist/builtins/sys/weather.d.ts +92 -15
- package/dist/builtins/sys/weather.js +71 -45
- package/dist/builtins/sys/weather.js.map +1 -1
- package/dist/builtins/sys/whoami.d.ts +38 -18
- package/dist/builtins/sys/whoami.js +112 -8
- package/dist/builtins/sys/whoami.js.map +1 -1
- package/dist/builtins/utils.d.ts +1 -38
- package/dist/builtins/utils.js +1 -87
- package/dist/builtins/utils.js.map +1 -1
- package/dist/chris/backend.js +2 -0
- package/dist/chris/backend.js.map +1 -1
- package/dist/chris/chrisCommands.js +62 -159
- package/dist/chris/chrisCommands.js.map +1 -1
- package/dist/chris/commandFallback.d.ts +12 -0
- package/dist/chris/commandFallback.js +47 -0
- package/dist/chris/commandFallback.js.map +1 -1
- package/dist/chris/files.js +24 -85
- package/dist/chris/files.js.map +1 -1
- package/dist/chris/filesystem.js +7 -5
- package/dist/chris/filesystem.js.map +1 -1
- package/dist/chris/help.js +0 -1082
- package/dist/chris/help.js.map +1 -1
- package/dist/chris/kinds.d.ts +30 -0
- package/dist/chris/kinds.js +154 -0
- package/dist/chris/kinds.js.map +1 -0
- package/dist/chris/mounts.d.ts +4 -4
- package/dist/chris/mounts.js +9 -16
- package/dist/chris/mounts.js.map +1 -1
- package/dist/chris/navigation.d.ts +2 -3
- package/dist/chris/navigation.js +6 -20
- package/dist/chris/navigation.js.map +1 -1
- package/dist/chris/pacsResources.d.ts +259 -0
- package/dist/chris/pacsResources.js +168 -0
- package/dist/chris/pacsResources.js.map +1 -0
- package/dist/chris/promptContext.d.ts +6 -0
- package/dist/chris/promptContext.js +3 -1
- package/dist/chris/promptContext.js.map +1 -1
- package/dist/core/argumentKinds.d.ts +107 -0
- package/dist/core/argumentKinds.js +223 -0
- package/dist/core/argumentKinds.js.map +1 -0
- package/dist/core/backend.d.ts +4 -1
- package/dist/core/backend.js.map +1 -1
- package/dist/core/commandDeclaration.d.ts +453 -0
- package/dist/core/commandDeclaration.js +52 -0
- package/dist/core/commandDeclaration.js.map +1 -0
- package/dist/core/commandParse.d.ts +64 -0
- package/dist/core/commandParse.js +468 -0
- package/dist/core/commandParse.js.map +1 -0
- package/dist/core/commandRegistry.d.ts +37 -0
- package/dist/core/commandRegistry.js +100 -3
- package/dist/core/commandRegistry.js.map +1 -1
- package/dist/core/commandSchema.d.ts +32 -0
- package/dist/core/commandSchema.js +117 -0
- package/dist/core/commandSchema.js.map +1 -0
- package/dist/core/commandUsage.d.ts +62 -0
- package/dist/core/commandUsage.js +247 -0
- package/dist/core/commandUsage.js.map +1 -0
- package/dist/core/coreCommands.js +66 -214
- package/dist/core/coreCommands.js.map +1 -1
- package/dist/core/dispatch.js +15 -8
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/paths.d.ts +51 -0
- package/dist/core/paths.js +86 -2
- package/dist/core/paths.js.map +1 -1
- package/dist/core/preprocess.d.ts +10 -9
- package/dist/core/preprocess.js +10 -20
- package/dist/core/preprocess.js.map +1 -1
- package/dist/core/warmupFailures.d.ts +34 -2
- package/dist/core/warmupFailures.js +43 -2
- package/dist/core/warmupFailures.js.map +1 -1
- package/dist/lib/completer/cfsPaths.d.ts +14 -0
- package/dist/lib/completer/cfsPaths.js +91 -0
- package/dist/lib/completer/cfsPaths.js.map +1 -0
- package/dist/lib/completer/declared.d.ts +15 -0
- package/dist/lib/completer/declared.js +189 -0
- package/dist/lib/completer/declared.js.map +1 -0
- package/dist/lib/completer/index.js +33 -79
- package/dist/lib/completer/index.js.map +1 -1
- package/dist/lib/parser.d.ts +5 -8
- package/dist/lib/parser.js +2 -11
- package/dist/lib/parser.js.map +1 -1
- package/dist/lib/vfs/vfs.d.ts +2 -1
- package/dist/lib/vfs/vfs.js +9 -6
- package/dist/lib/vfs/vfs.js.map +1 -1
- package/dist/lib/wildcard.js +2 -3
- package/dist/lib/wildcard.js.map +1 -1
- package/dist/notes.json +1 -1
- package/package.json +6 -5
package/dist/builtins/fs/rm.js
CHANGED
|
@@ -1,16 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file
|
|
3
|
-
*
|
|
2
|
+
* @file `rm`: removes files and folders of ChRIS's filesystem (CFS).
|
|
3
|
+
*
|
|
4
|
+
* Declared in one record (`rmCommand`): paths, which glob, and the switches
|
|
5
|
+
* `-r`/`-R`, `-f`, `-i` and `-I`. Each path names the entry itself: `rm` of
|
|
6
|
+
* a link removes the link, never what it points at.
|
|
7
|
+
*
|
|
8
|
+
* Key components:
|
|
9
|
+
* - rmCommand: the declaration.
|
|
10
|
+
* - builtin_rm: the declaration run over words already split.
|
|
11
|
+
* - rm_run: the typed core behind both, and the typed API.
|
|
12
|
+
* - rmSummary_format: the line that sums up several removals.
|
|
13
|
+
*
|
|
14
|
+
* Typical usage:
|
|
15
|
+
* ```ts
|
|
16
|
+
* await builtin_rm(['-r', 'scratch']);
|
|
17
|
+
* await rm_run({ recursive: true, force: false, interactive: false, once: false, paths: ['scratch'] });
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* Dependencies: the session's filesystem and listing cache, the store-path
|
|
21
|
+
* resolver, and the surface (which asks `-i` and `-I`'s questions).
|
|
22
|
+
*
|
|
23
|
+
* @module
|
|
4
24
|
*/
|
|
5
25
|
import chalk from 'chalk';
|
|
6
26
|
import path from 'path';
|
|
7
|
-
import { path_resolve } from '../utils.js';
|
|
27
|
+
import { path_resolve, storePath_resolve } from '../utils.js';
|
|
8
28
|
import { repl_confirm } from '../../core/question.js';
|
|
9
29
|
import { listingCache_get, vfsDispatcher_get } from '../../core/filesystem.js';
|
|
10
30
|
import { pathEntry_find, entry_isFolder, folderTree_remove } from './entries.js';
|
|
11
31
|
import { errno_words, rm_render, vfs_fail, vfs_ok } from '@fnndsc/fond';
|
|
12
32
|
import { sink_get } from '../../core/sink.js';
|
|
13
33
|
import { envelope_ok, envelope_error } from '@fnndsc/menu';
|
|
34
|
+
import { command_declare } from '../../core/commandDeclaration.js';
|
|
35
|
+
import { declaredCommand_run } from '../../core/commandParse.js';
|
|
14
36
|
/**
|
|
15
37
|
* Prompts the user for confirmation.
|
|
16
38
|
*
|
|
@@ -40,67 +62,6 @@ function unanswered_reason(error) {
|
|
|
40
62
|
? error.message
|
|
41
63
|
: 'the question could not be answered';
|
|
42
64
|
}
|
|
43
|
-
/** The long options rm knows, and the short flag each one is. */
|
|
44
|
-
const RM_LONG_OPTIONS = {
|
|
45
|
-
'--recursive': 'r',
|
|
46
|
-
'--force': 'f',
|
|
47
|
-
'--interactive': 'i',
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Parses `rm` arguments, supporting combined short flags (`-rf`, `-rfi`),
|
|
51
|
-
* the long forms (`--recursive`, `--force`, `--interactive`) and the `--`
|
|
52
|
-
* end-of-options separator. An option rm does not have is refused by name
|
|
53
|
-
* — never skipped, and never read letter by letter (`--force` once turned
|
|
54
|
-
* recursion on through its `r`).
|
|
55
|
-
*
|
|
56
|
-
* @param args - Raw command arguments.
|
|
57
|
-
* @returns The parsed flags and path operands, with `refused` set for the
|
|
58
|
-
* first unknown option.
|
|
59
|
-
*/
|
|
60
|
-
export function rmArgs_parse(args) {
|
|
61
|
-
let recursive = false;
|
|
62
|
-
let force = false;
|
|
63
|
-
let interactive = false;
|
|
64
|
-
let once = false;
|
|
65
|
-
const paths = [];
|
|
66
|
-
let endOfOptions = false;
|
|
67
|
-
for (const arg of args) {
|
|
68
|
-
if (arg === '--') {
|
|
69
|
-
endOfOptions = true;
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
if (endOfOptions) {
|
|
73
|
-
paths.push(arg);
|
|
74
|
-
continue;
|
|
75
|
-
}
|
|
76
|
-
if (arg.startsWith('-') && arg.length > 1) {
|
|
77
|
-
let flags = arg.substring(1);
|
|
78
|
-
if (arg.startsWith('--')) {
|
|
79
|
-
const short = RM_LONG_OPTIONS[arg];
|
|
80
|
-
if (short === undefined) {
|
|
81
|
-
return { recursive, force, interactive, once, paths, refused: `rm: unrecognized option '${arg}'` };
|
|
82
|
-
}
|
|
83
|
-
flags = short;
|
|
84
|
-
}
|
|
85
|
-
for (const ch of flags) {
|
|
86
|
-
if (ch === 'r' || ch === 'R')
|
|
87
|
-
recursive = true;
|
|
88
|
-
else if (ch === 'f')
|
|
89
|
-
force = true;
|
|
90
|
-
else if (ch === 'i')
|
|
91
|
-
interactive = true;
|
|
92
|
-
else if (ch === 'I')
|
|
93
|
-
once = true;
|
|
94
|
-
else
|
|
95
|
-
return { recursive, force, interactive, once, paths, refused: `rm: invalid option -- '${ch}'` };
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
paths.push(arg);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return { recursive, force, interactive, once, paths };
|
|
103
|
-
}
|
|
104
65
|
/**
|
|
105
66
|
* Formats the multi-target removal summary line.
|
|
106
67
|
*
|
|
@@ -143,26 +104,87 @@ async function entry_remove(dispatcher, target, recursive, force) {
|
|
|
143
104
|
}
|
|
144
105
|
return { type: entry.type === 'link' ? 'link' : 'file', outcome: await dispatcher.rm(target) };
|
|
145
106
|
}
|
|
107
|
+
/** What an `rm` line may hold. */
|
|
108
|
+
const RM_GRAMMAR = {
|
|
109
|
+
operands: [
|
|
110
|
+
{ name: 'paths', kind: 'cfsPath', repeat: true, glob: true, summary: 'What to remove: files, or folders with -r; a wildcard matches paths' },
|
|
111
|
+
],
|
|
112
|
+
options: {
|
|
113
|
+
recursive: { short: 'r', long: 'recursive', summary: 'Remove folders and all they hold (without it a folder is "Is a directory")' },
|
|
114
|
+
recursiveAlias: { short: 'R', summary: 'The same as -r' },
|
|
115
|
+
force: { short: 'f', long: 'force', summary: 'Force removal: a path not there is fine' },
|
|
116
|
+
interactive: { short: 'i', long: 'interactive', summary: 'Ask before every removal' },
|
|
117
|
+
once: { short: 'I', summary: 'Ask ONCE for the whole list, naming how many' },
|
|
118
|
+
},
|
|
119
|
+
};
|
|
146
120
|
/**
|
|
147
|
-
*
|
|
121
|
+
* `rm [-rRfiI] <path…>`: the declaration.
|
|
148
122
|
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```ts
|
|
125
|
+
* commands_register({ declarations: [rmCommand] });
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export const rmCommand = command_declare({
|
|
129
|
+
name: 'rm',
|
|
130
|
+
grammar: RM_GRAMMAR,
|
|
131
|
+
help: {
|
|
132
|
+
summary: 'Remove files or directories',
|
|
133
|
+
description: "Removes each path from ChRIS's filesystem (a wildcard matches paths). A folder goes only with -r, with all it holds. A link is removed itself, never what it points at. With -i each removal is asked first; with -I one question covers the whole list. Every target is fixed before any question, so a cd while one is open moves nothing.",
|
|
134
|
+
category: 'Files',
|
|
135
|
+
posix: { group: 'Files', differs: 'removes from CFS; -r for folders, -i asks' },
|
|
136
|
+
examples: [
|
|
137
|
+
'rm file.txt # Remove single file',
|
|
138
|
+
'rm file1 file2 # Remove multiple files',
|
|
139
|
+
'rm *.json # Remove all .json files (wildcard)',
|
|
140
|
+
'rm -i *.log # Prompt before removing each .log file',
|
|
141
|
+
'rm -r directory/ # Remove directory recursively',
|
|
142
|
+
'rm -rf temp_* # Force remove all temp_* dirs',
|
|
143
|
+
'rm -- --weird-name # Remove file starting with --',
|
|
144
|
+
'rm -- -dash-file # Remove file starting with -',
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
handler: async (args) => rm_run({
|
|
148
|
+
recursive: args.options.recursive || args.options.recursiveAlias,
|
|
149
|
+
force: args.options.force,
|
|
150
|
+
interactive: args.options.interactive,
|
|
151
|
+
once: args.options.once,
|
|
152
|
+
paths: args.operands.paths,
|
|
153
|
+
}),
|
|
154
|
+
});
|
|
155
|
+
/**
|
|
156
|
+
* `rm` over words already split: the declaration's parse and handler.
|
|
152
157
|
*
|
|
153
|
-
* @param args -
|
|
154
|
-
* @returns An envelope whose model lists per-target outcomes.
|
|
158
|
+
* @param args - The words after `rm`.
|
|
159
|
+
* @returns An envelope whose model lists per-target outcomes, or the refusal of a bad line.
|
|
155
160
|
*/
|
|
156
161
|
export async function builtin_rm(args) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
162
|
+
return declaredCommand_run(rmCommand, args);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Forgets the listings a removal changed: the folder that held the entry and
|
|
166
|
+
* everything cached beneath it, by the session's path and by the store's.
|
|
167
|
+
*
|
|
168
|
+
* @param fixed - The operand, as shown and in the store.
|
|
169
|
+
*/
|
|
170
|
+
function listings_forget(fixed) {
|
|
171
|
+
const listCache = listingCache_get();
|
|
172
|
+
for (const at of new Set([fixed.shown, fixed.target])) {
|
|
173
|
+
listCache.cache_invalidate?.(path.posix.dirname(at));
|
|
174
|
+
// Also drop the removed target and any listings cached beneath it:
|
|
175
|
+
// a later re-upload to the same path must not inherit still-fresh
|
|
176
|
+
// nested listings from the deleted tree.
|
|
177
|
+
listCache.cache_invalidateTree?.(at);
|
|
178
|
+
}
|
|
161
179
|
}
|
|
162
180
|
/**
|
|
163
181
|
* Removes files or directories: the shared typed core behind the parsed
|
|
164
182
|
* builtin and the typed API.
|
|
165
183
|
*
|
|
184
|
+
* In interactive mode (-i, -I) output is streamed live through the sink so
|
|
185
|
+
* each confirmation prompt appears in sequence with its result; the envelope
|
|
186
|
+
* then carries only the model. Otherwise output is buffered into the envelope.
|
|
187
|
+
*
|
|
166
188
|
* @param runArgs - Flags and target paths.
|
|
167
189
|
* @returns An envelope whose model lists per-target outcomes.
|
|
168
190
|
*/
|
|
@@ -178,7 +200,7 @@ export async function rm_run(runArgs) {
|
|
|
178
200
|
const fixed = [];
|
|
179
201
|
for (const pathArg of paths) {
|
|
180
202
|
try {
|
|
181
|
-
fixed.push({
|
|
203
|
+
fixed.push({ shown: await path_resolve(pathArg), target: await storePath_resolve(pathArg, { entry: true }) });
|
|
182
204
|
}
|
|
183
205
|
catch (failure) {
|
|
184
206
|
fixed.push({ failure });
|
|
@@ -286,16 +308,11 @@ export async function rm_run(runArgs) {
|
|
|
286
308
|
out_emit(chalk.gray(`removed '${pathArg}'`));
|
|
287
309
|
}
|
|
288
310
|
else {
|
|
289
|
-
out_emit(rm_render({ success: true, path:
|
|
311
|
+
out_emit(rm_render({ success: true, path: resolution.shown, type: removed.type }));
|
|
290
312
|
}
|
|
291
313
|
outcomes.push({ path: pathArg, removed: true, skipped: false });
|
|
292
314
|
successCount++;
|
|
293
|
-
|
|
294
|
-
listCache.cache_invalidate?.(path.posix.dirname(target));
|
|
295
|
-
// Also drop the removed target and any listings cached beneath it:
|
|
296
|
-
// a later re-upload to the same path must not inherit still-fresh
|
|
297
|
-
// nested listings from the deleted tree.
|
|
298
|
-
listCache.cache_invalidateTree?.(target);
|
|
315
|
+
listings_forget(resolution);
|
|
299
316
|
}
|
|
300
317
|
else {
|
|
301
318
|
const reason = removed.outcome.reason ?? errno_words(removed.outcome.errno);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/builtins/fs/rm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/builtins/fs/rm.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,20 +5,38 @@ export interface RmdirOutcome {
|
|
|
5
5
|
removed: boolean;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* `rmdir <directory…>`: the declaration.
|
|
9
9
|
*
|
|
10
|
-
* @
|
|
11
|
-
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* commands_register({ declarations: [rmdirCommand] });
|
|
13
|
+
* ```
|
|
12
14
|
*/
|
|
13
|
-
export declare
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
export declare const rmdirCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
|
|
16
|
+
readonly operands: readonly [{
|
|
17
|
+
readonly name: "paths";
|
|
18
|
+
readonly kind: "cfsPath";
|
|
19
|
+
readonly repeat: true;
|
|
20
|
+
readonly glob: true;
|
|
21
|
+
readonly summary: "The empty folders to remove; a wildcard matches paths";
|
|
22
|
+
}];
|
|
23
|
+
}>;
|
|
18
24
|
/**
|
|
19
|
-
*
|
|
25
|
+
* `rmdir` over words already split: the declaration's parse and handler.
|
|
20
26
|
*
|
|
21
|
-
* @param args - The
|
|
22
|
-
* @returns An envelope whose model lists each folder's outcome
|
|
27
|
+
* @param args - The words after `rmdir`.
|
|
28
|
+
* @returns An envelope whose model lists each folder's outcome, or the refusal of a bad line.
|
|
23
29
|
*/
|
|
24
30
|
export declare function builtin_rmdir(args: string[]): Promise<CommandEnvelope>;
|
|
31
|
+
/**
|
|
32
|
+
* Removes empty folders: the typed core behind the declaration.
|
|
33
|
+
*
|
|
34
|
+
* @param paths - The folders, as typed.
|
|
35
|
+
* @returns An envelope whose model lists each folder's outcome; silent on success.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* const envelope: CommandEnvelope = await rmdir_run(['scratch']);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare function rmdir_run(paths: readonly string[]): Promise<CommandEnvelope>;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file
|
|
2
|
+
* @file `rmdir`: removes empty folders, as on Linux.
|
|
3
|
+
*
|
|
4
|
+
* Declared in one record (`rmdirCommand`): folders only, which glob; it
|
|
5
|
+
* has no options. Each path names the entry itself: `rmdir` of a link is
|
|
6
|
+
* asked of the link, never of the folder it points at.
|
|
3
7
|
*
|
|
4
8
|
* Inside a projection that holds folders a user makes (a tag under
|
|
5
9
|
* /proc/tags) the projection removes it, and a tag still worn by a feed is
|
|
@@ -7,36 +11,31 @@
|
|
|
7
11
|
* refused by name and an empty one is removed; a projection that removes
|
|
8
12
|
* no folders refuses by name.
|
|
9
13
|
*
|
|
14
|
+
* Key components:
|
|
15
|
+
* - rmdirCommand: the declaration.
|
|
16
|
+
* - builtin_rmdir: the declaration run over words already split.
|
|
17
|
+
* - rmdir_run: the typed core behind both.
|
|
18
|
+
*
|
|
19
|
+
* Typical usage:
|
|
20
|
+
* ```ts
|
|
21
|
+
* await builtin_rmdir(['scratch']);
|
|
22
|
+
* await rmdir_run(['scratch', '/proc/tags/old']);
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* Dependencies: the session's filesystem and listing cache, and the
|
|
26
|
+
* store-path resolver.
|
|
27
|
+
*
|
|
10
28
|
* @module
|
|
11
29
|
*/
|
|
12
30
|
import chalk from 'chalk';
|
|
13
|
-
import
|
|
31
|
+
import path from 'path';
|
|
32
|
+
import { path_resolve, storePath_resolve } from '../utils.js';
|
|
14
33
|
import { listingCache_get, vfsDispatcher_get } from '../../core/filesystem.js';
|
|
15
34
|
import { vfsRefusal_text } from '@fnndsc/fond';
|
|
16
35
|
import { envelope_ok, envelope_error } from '@fnndsc/menu';
|
|
17
36
|
import { exitCode_set } from '../../core/handlerRun.js';
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
*
|
|
21
|
-
* @param args - Raw argument tokens.
|
|
22
|
-
* @returns The paths, or the refusal.
|
|
23
|
-
*/
|
|
24
|
-
export function rmdirArgs_parse(args) {
|
|
25
|
-
const paths = [];
|
|
26
|
-
let endOfOptions = false;
|
|
27
|
-
for (const arg of args) {
|
|
28
|
-
if (endOfOptions || arg === '-' || !arg.startsWith('-')) {
|
|
29
|
-
paths.push(arg);
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
if (arg === '--') {
|
|
33
|
-
endOfOptions = true;
|
|
34
|
-
continue;
|
|
35
|
-
}
|
|
36
|
-
return { refused: arg.startsWith('--') ? `rmdir: unrecognized option '${arg}'` : `rmdir: invalid option -- '${arg.slice(1, 2)}'` };
|
|
37
|
-
}
|
|
38
|
-
return { paths };
|
|
39
|
-
}
|
|
37
|
+
import { command_declare } from '../../core/commandDeclaration.js';
|
|
38
|
+
import { declaredCommand_run } from '../../core/commandParse.js';
|
|
40
39
|
/**
|
|
41
40
|
* What rmdir says when a folder was not removed: the mount's reason after
|
|
42
41
|
* the operand (unless the mount already named the verb), else the errno's
|
|
@@ -54,31 +53,83 @@ function rmdirRefusal_text(refused, pathArg) {
|
|
|
54
53
|
// A projection names the folder first (`urgent: Directory not empty`); rmdir has named it already.
|
|
55
54
|
return `rmdir: failed to remove '${pathArg}': ${refused.reason.replace(/^[^:]*: /, '')}`;
|
|
56
55
|
}
|
|
56
|
+
/** What an `rmdir` line may hold. */
|
|
57
|
+
const RMDIR_GRAMMAR = {
|
|
58
|
+
operands: [
|
|
59
|
+
{ name: 'paths', kind: 'cfsPath', repeat: true, glob: true, summary: 'The empty folders to remove; a wildcard matches paths' },
|
|
60
|
+
],
|
|
61
|
+
};
|
|
57
62
|
/**
|
|
58
|
-
*
|
|
63
|
+
* `rmdir <directory…>`: the declaration.
|
|
59
64
|
*
|
|
60
|
-
* @
|
|
61
|
-
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* commands_register({ declarations: [rmdirCommand] });
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export const rmdirCommand = command_declare({
|
|
71
|
+
name: 'rmdir',
|
|
72
|
+
grammar: RMDIR_GRAMMAR,
|
|
73
|
+
help: {
|
|
74
|
+
summary: 'Remove empty directories',
|
|
75
|
+
description: 'Removes each folder only when it is empty, as on Linux: one that holds anything is "Directory not empty". Under /proc/tags a folder is a tag: rmdir deletes a tag no feed wears.',
|
|
76
|
+
category: 'Files',
|
|
77
|
+
posix: { group: 'Files', differs: 'removes empty CFS folders' },
|
|
78
|
+
examples: [
|
|
79
|
+
'rmdir scratch # Remove an empty folder',
|
|
80
|
+
'rmdir /proc/tags/old # Delete a tag no feed wears',
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
handler: async (args) => rmdir_run(args.operands.paths),
|
|
84
|
+
});
|
|
85
|
+
/**
|
|
86
|
+
* `rmdir` over words already split: the declaration's parse and handler.
|
|
87
|
+
*
|
|
88
|
+
* @param args - The words after `rmdir`.
|
|
89
|
+
* @returns An envelope whose model lists each folder's outcome, or the refusal of a bad line.
|
|
62
90
|
*/
|
|
63
91
|
export async function builtin_rmdir(args) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
92
|
+
return declaredCommand_run(rmdirCommand, args);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Forgets the listing of the folder that held a removed one, by the
|
|
96
|
+
* session's path and by the store's.
|
|
97
|
+
*
|
|
98
|
+
* @param shown - The folder as the session names it.
|
|
99
|
+
* @param target - The folder's entry in the store.
|
|
100
|
+
*/
|
|
101
|
+
function parentListings_forget(shown, target) {
|
|
102
|
+
for (const at of new Set([shown, target]))
|
|
103
|
+
listingCache_get().cache_invalidate?.(path.posix.dirname(at));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Removes empty folders: the typed core behind the declaration.
|
|
107
|
+
*
|
|
108
|
+
* @param paths - The folders, as typed.
|
|
109
|
+
* @returns An envelope whose model lists each folder's outcome; silent on success.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* const envelope: CommandEnvelope = await rmdir_run(['scratch']);
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
export async function rmdir_run(paths) {
|
|
117
|
+
if (paths.length === 0)
|
|
68
118
|
return envelope_error('', undefined, `${chalk.red('Usage: rmdir <directory> [directory...]')}\n`);
|
|
69
119
|
let renderedErr = '';
|
|
70
120
|
const outcomes = [];
|
|
71
|
-
for (const pathArg of
|
|
72
|
-
const
|
|
121
|
+
for (const pathArg of paths) {
|
|
122
|
+
const shown = await path_resolve(pathArg);
|
|
123
|
+
const target = await storePath_resolve(pathArg, { entry: true });
|
|
73
124
|
// Every mount says why it will not: a folder that is not there, that
|
|
74
125
|
// holds something, or a tag a feed still wears.
|
|
75
|
-
const removed = await vfsDispatcher_get().rmdir(
|
|
126
|
+
const removed = await vfsDispatcher_get().rmdir(target);
|
|
76
127
|
const refusal = removed.ok ? null : rmdirRefusal_text(removed, pathArg);
|
|
77
128
|
if (refusal !== null)
|
|
78
129
|
renderedErr += `${chalk.red(refusal)}\n`;
|
|
79
130
|
else
|
|
80
|
-
|
|
81
|
-
outcomes.push({ path:
|
|
131
|
+
parentListings_forget(shown, target);
|
|
132
|
+
outcomes.push({ path: shown, removed: refusal === null });
|
|
82
133
|
}
|
|
83
134
|
const model = { kind: 'fs.rmdir', data: outcomes };
|
|
84
135
|
if (renderedErr !== '') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rmdir.js","sourceRoot":"","sources":["../../../src/builtins/fs/rmdir.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rmdir.js","sourceRoot":"","sources":["../../../src/builtins/fs/rmdir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAkC,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAmB,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAA8C,MAAM,kCAAkC,CAAC;AAC/G,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAQjE;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,OAA6C,EAAE,OAAe;IACvF,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACpF,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC/D,mGAAmG;IACnG,OAAO,4BAA4B,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;AAC3F,CAAC;AAED,qCAAqC;AACrC,MAAM,aAAa,GAAG;IACpB,QAAQ,EAAE;QACR,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,uDAAuD,EAAE;KAC/H;CACgC,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE;QACJ,OAAO,EAAE,0BAA0B;QACnC,WAAW,EAAE,kLAAkL;QAC/L,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE;QAC/D,QAAQ,EAAE;YACR,qDAAqD;YACrD,yDAAyD;SAC1D;KACF;IACD,OAAO,EAAE,KAAK,EAAE,IAA4C,EAA4B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;CAC1H,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,OAAO,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,KAAa,EAAE,MAAc;IAC1D,KAAK,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAAE,gBAAgB,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAwB;IACtD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,IAAI,CAAC,CAAC;IAC1H,IAAI,WAAW,GAAW,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAW,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAW,MAAM,iBAAiB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,qEAAqE;QACrE,gDAAgD;QAChD,MAAM,OAAO,GAAe,MAAM,iBAAiB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,OAAO,GAAkB,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvF,IAAI,OAAO,KAAK,IAAI;YAAE,WAAW,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;;YAC1D,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,KAAK,GAA2C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3F,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;QACvB,YAAY,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,QAAQ,GAAoB,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7E,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -9,10 +9,52 @@ export interface TouchRunOptions {
|
|
|
9
9
|
/** File paths to create or update, absolute or relative to the session cwd. */
|
|
10
10
|
paths: string[];
|
|
11
11
|
/** Literal content to write into the (single) target file. */
|
|
12
|
-
contents?: string;
|
|
12
|
+
contents?: string | undefined;
|
|
13
13
|
/** Local file whose content is uploaded into the (single) target file. */
|
|
14
|
-
contentsFromFile?: string;
|
|
14
|
+
contentsFromFile?: string | undefined;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* `touch [--withContents <string>] [--withContentsFromFile <file>] <file…>`: the declaration.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* commands_register({ declarations: [touchCommand] });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const touchCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
|
|
25
|
+
readonly operands: readonly [{
|
|
26
|
+
readonly name: "paths";
|
|
27
|
+
readonly kind: "cfsPath";
|
|
28
|
+
readonly repeat: true;
|
|
29
|
+
readonly glob: true;
|
|
30
|
+
readonly summary: "The files to make; with text, only the first takes it";
|
|
31
|
+
}];
|
|
32
|
+
readonly options: {
|
|
33
|
+
readonly withContents: {
|
|
34
|
+
readonly long: "withContents";
|
|
35
|
+
readonly summary: "Create the file with this text inline";
|
|
36
|
+
readonly value: {
|
|
37
|
+
readonly name: "string";
|
|
38
|
+
readonly kind: "word";
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
readonly withContentsFromFile: {
|
|
42
|
+
readonly long: "withContentsFromFile";
|
|
43
|
+
readonly summary: "Create the file with the text of a file on this machine";
|
|
44
|
+
readonly value: {
|
|
45
|
+
readonly name: "file";
|
|
46
|
+
readonly kind: "hostPath";
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* `touch` over words already split: the declaration's parse and handler.
|
|
53
|
+
*
|
|
54
|
+
* @param args - The words after `touch`.
|
|
55
|
+
* @returns The envelope from {@link touch_run}, or the refusal of a bad line.
|
|
56
|
+
*/
|
|
57
|
+
export declare function builtin_touch(args: string[]): Promise<CommandEnvelope>;
|
|
16
58
|
/**
|
|
17
59
|
* Creates empty files or updates timestamps: the shared typed core behind
|
|
18
60
|
* the parsed builtin and the typed API.
|
|
@@ -22,10 +64,3 @@ export interface TouchRunOptions {
|
|
|
22
64
|
* whose model lists per-target outcomes.
|
|
23
65
|
*/
|
|
24
66
|
export declare function touch_run(runOptions: TouchRunOptions): Promise<CommandEnvelope>;
|
|
25
|
-
/**
|
|
26
|
-
* Creates files from parsed command-line arguments.
|
|
27
|
-
*
|
|
28
|
-
* @param args - Command line arguments (paths and --withContents flags).
|
|
29
|
-
* @returns The envelope from {@link touch_run}.
|
|
30
|
-
*/
|
|
31
|
-
export declare function builtin_touch(args: string[]): Promise<CommandEnvelope>;
|