@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.
Files changed (361) hide show
  1. package/dist/buildinfo.json +1 -1
  2. package/dist/builtins/berth/berth.d.ts +90 -3
  3. package/dist/builtins/berth/berth.js +129 -76
  4. package/dist/builtins/berth/berth.js.map +1 -1
  5. package/dist/builtins/berth/berthClose.d.ts +25 -6
  6. package/dist/builtins/berth/berthClose.js +8 -64
  7. package/dist/builtins/berth/berthClose.js.map +1 -1
  8. package/dist/builtins/berth/berthCube.d.ts +3 -2
  9. package/dist/builtins/berth/berthCube.js +9 -16
  10. package/dist/builtins/berth/berthCube.js.map +1 -1
  11. package/dist/builtins/berth/berthProcesses.js +33 -3
  12. package/dist/builtins/berth/berthProcesses.js.map +1 -1
  13. package/dist/builtins/debug.d.ts +24 -3
  14. package/dist/builtins/debug.js +66 -13
  15. package/dist/builtins/debug.js.map +1 -1
  16. package/dist/builtins/fs/acl.args.d.ts +5 -38
  17. package/dist/builtins/fs/acl.args.js +6 -72
  18. package/dist/builtins/fs/acl.args.js.map +1 -1
  19. package/dist/builtins/fs/acl.d.ts +100 -10
  20. package/dist/builtins/fs/acl.js +222 -68
  21. package/dist/builtins/fs/acl.js.map +1 -1
  22. package/dist/builtins/fs/cat.args.d.ts +14 -15
  23. package/dist/builtins/fs/cat.args.js +13 -40
  24. package/dist/builtins/fs/cat.args.js.map +1 -1
  25. package/dist/builtins/fs/cat.d.ts +40 -3
  26. package/dist/builtins/fs/cat.js +92 -13
  27. package/dist/builtins/fs/cat.js.map +1 -1
  28. package/dist/builtins/fs/cd.d.ts +24 -6
  29. package/dist/builtins/fs/cd.js +71 -18
  30. package/dist/builtins/fs/cd.js.map +1 -1
  31. package/dist/builtins/fs/configWrite.d.ts +24 -8
  32. package/dist/builtins/fs/configWrite.js +77 -36
  33. package/dist/builtins/fs/configWrite.js.map +1 -1
  34. package/dist/builtins/fs/cp.d.ts +39 -4
  35. package/dist/builtins/fs/cp.js +122 -56
  36. package/dist/builtins/fs/cp.js.map +1 -1
  37. package/dist/builtins/fs/download.d.ts +31 -4
  38. package/dist/builtins/fs/download.js +75 -38
  39. package/dist/builtins/fs/download.js.map +1 -1
  40. package/dist/builtins/fs/du.d.ts +59 -33
  41. package/dist/builtins/fs/du.js +111 -79
  42. package/dist/builtins/fs/du.js.map +1 -1
  43. package/dist/builtins/fs/edit.d.ts +19 -4
  44. package/dist/builtins/fs/edit.js +77 -16
  45. package/dist/builtins/fs/edit.js.map +1 -1
  46. package/dist/builtins/fs/find.d.ts +25 -0
  47. package/dist/builtins/fs/find.js +76 -5
  48. package/dist/builtins/fs/find.js.map +1 -1
  49. package/dist/builtins/fs/ls.d.ts +69 -4
  50. package/dist/builtins/fs/ls.js +84 -45
  51. package/dist/builtins/fs/ls.js.map +1 -1
  52. package/dist/builtins/fs/mkdir.d.ts +28 -18
  53. package/dist/builtins/fs/mkdir.js +95 -66
  54. package/dist/builtins/fs/mkdir.js.map +1 -1
  55. package/dist/builtins/fs/mv.d.ts +34 -4
  56. package/dist/builtins/fs/mv.js +129 -64
  57. package/dist/builtins/fs/mv.js.map +1 -1
  58. package/dist/builtins/fs/pull.args.d.ts +56 -17
  59. package/dist/builtins/fs/pull.args.js +16 -66
  60. package/dist/builtins/fs/pull.args.js.map +1 -1
  61. package/dist/builtins/fs/pull.d.ts +62 -0
  62. package/dist/builtins/fs/pull.js +123 -31
  63. package/dist/builtins/fs/pull.js.map +1 -1
  64. package/dist/builtins/fs/pwd.d.ts +19 -5
  65. package/dist/builtins/fs/pwd.js +62 -8
  66. package/dist/builtins/fs/pwd.js.map +1 -1
  67. package/dist/builtins/fs/rm.d.ts +58 -21
  68. package/dist/builtins/fs/rm.js +99 -82
  69. package/dist/builtins/fs/rm.js.map +1 -1
  70. package/dist/builtins/fs/rmdir.d.ts +29 -11
  71. package/dist/builtins/fs/rmdir.js +87 -36
  72. package/dist/builtins/fs/rmdir.js.map +1 -1
  73. package/dist/builtins/fs/touch.d.ts +44 -9
  74. package/dist/builtins/fs/touch.js +91 -27
  75. package/dist/builtins/fs/touch.js.map +1 -1
  76. package/dist/builtins/fs/tree.d.ts +36 -9
  77. package/dist/builtins/fs/tree.js +126 -36
  78. package/dist/builtins/fs/tree.js.map +1 -1
  79. package/dist/builtins/fs/upload.d.ts +22 -3
  80. package/dist/builtins/fs/upload.js +82 -14
  81. package/dist/builtins/fs/upload.js.map +1 -1
  82. package/dist/builtins/fs/xattr.args.d.ts +12 -33
  83. package/dist/builtins/fs/xattr.args.js +17 -95
  84. package/dist/builtins/fs/xattr.args.js.map +1 -1
  85. package/dist/builtins/fs/xattr.d.ts +98 -8
  86. package/dist/builtins/fs/xattr.js +163 -24
  87. package/dist/builtins/fs/xattr.js.map +1 -1
  88. package/dist/builtins/games/bytes.d.ts +201 -5
  89. package/dist/builtins/games/bytes.js +255 -54
  90. package/dist/builtins/games/bytes.js.map +1 -1
  91. package/dist/builtins/games/chimes.d.ts +180 -3
  92. package/dist/builtins/games/chimes.js +203 -26
  93. package/dist/builtins/games/chimes.js.map +1 -1
  94. package/dist/builtins/games/chrislab.d.ts +101 -3
  95. package/dist/builtins/games/chrislab.js +117 -17
  96. package/dist/builtins/games/chrislab.js.map +1 -1
  97. package/dist/builtins/games/cowsay.d.ts +93 -2
  98. package/dist/builtins/games/cowsay.js +90 -31
  99. package/dist/builtins/games/cowsay.js.map +1 -1
  100. package/dist/builtins/games/figlet.d.ts +70 -2
  101. package/dist/builtins/games/figlet.js +83 -6
  102. package/dist/builtins/games/figlet.js.map +1 -1
  103. package/dist/builtins/games/lab.d.ts +104 -5
  104. package/dist/builtins/games/lab.js +144 -6
  105. package/dist/builtins/games/lab.js.map +1 -1
  106. package/dist/builtins/games/lolcat.d.ts +61 -1
  107. package/dist/builtins/games/lolcat.js +59 -24
  108. package/dist/builtins/games/lolcat.js.map +1 -1
  109. package/dist/builtins/games/morse.d.ts +36 -1
  110. package/dist/builtins/games/morse.js +50 -2
  111. package/dist/builtins/games/morse.js.map +1 -1
  112. package/dist/builtins/games/numbers.d.ts +241 -5
  113. package/dist/builtins/games/numbers.js +298 -23
  114. package/dist/builtins/games/numbers.js.map +1 -1
  115. package/dist/builtins/games/play.d.ts +96 -6
  116. package/dist/builtins/games/play.js +137 -6
  117. package/dist/builtins/games/play.js.map +1 -1
  118. package/dist/builtins/games/qr.d.ts +40 -1
  119. package/dist/builtins/games/qr.js +51 -2
  120. package/dist/builtins/games/qr.js.map +1 -1
  121. package/dist/builtins/games/show.d.ts +131 -6
  122. package/dist/builtins/games/show.js +208 -20
  123. package/dist/builtins/games/show.js.map +1 -1
  124. package/dist/builtins/games/sky.d.ts +178 -4
  125. package/dist/builtins/games/sky.js +228 -12
  126. package/dist/builtins/games/sky.js.map +1 -1
  127. package/dist/builtins/games/text.d.ts +258 -7
  128. package/dist/builtins/games/text.js +310 -29
  129. package/dist/builtins/games/text.js.map +1 -1
  130. package/dist/builtins/games/trek.d.ts +67 -3
  131. package/dist/builtins/games/trek.js +63 -10
  132. package/dist/builtins/games/trek.js.map +1 -1
  133. package/dist/builtins/games/wtf.d.ts +58 -1
  134. package/dist/builtins/games/wtf.js +67 -6
  135. package/dist/builtins/games/wtf.js.map +1 -1
  136. package/dist/builtins/help.d.ts +41 -3
  137. package/dist/builtins/help.js +92 -796
  138. package/dist/builtins/help.js.map +1 -1
  139. package/dist/builtins/net/connect.d.ts +36 -3
  140. package/dist/builtins/net/connect.js +84 -26
  141. package/dist/builtins/net/connect.js.map +1 -1
  142. package/dist/builtins/net/cubepath.d.ts +49 -5
  143. package/dist/builtins/net/cubepath.js +69 -27
  144. package/dist/builtins/net/cubepath.js.map +1 -1
  145. package/dist/builtins/net/logout.d.ts +13 -4
  146. package/dist/builtins/net/logout.js +49 -3
  147. package/dist/builtins/net/logout.js.map +1 -1
  148. package/dist/builtins/net/netstat.d.ts +29 -4
  149. package/dist/builtins/net/netstat.js +64 -23
  150. package/dist/builtins/net/netstat.js.map +1 -1
  151. package/dist/builtins/net/pacs.d.ts +169 -15
  152. package/dist/builtins/net/pacs.js +92 -33
  153. package/dist/builtins/net/pacs.js.map +1 -1
  154. package/dist/builtins/net/query.args.d.ts +95 -0
  155. package/dist/builtins/net/query.args.js +26 -0
  156. package/dist/builtins/net/query.args.js.map +1 -0
  157. package/dist/builtins/net/query.d.ts +98 -5
  158. package/dist/builtins/net/query.js +89 -83
  159. package/dist/builtins/net/query.js.map +1 -1
  160. package/dist/builtins/net/status.d.ts +5 -3
  161. package/dist/builtins/net/status.js +5 -12
  162. package/dist/builtins/net/status.js.map +1 -1
  163. package/dist/builtins/parametersofplugin.d.ts +82 -3
  164. package/dist/builtins/parametersofplugin.js +79 -23
  165. package/dist/builtins/parametersofplugin.js.map +1 -1
  166. package/dist/builtins/proc.d.ts +210 -3
  167. package/dist/builtins/proc.js +210 -119
  168. package/dist/builtins/proc.js.map +1 -1
  169. package/dist/builtins/res/compute.d.ts +67 -3
  170. package/dist/builtins/res/compute.js +121 -35
  171. package/dist/builtins/res/compute.js.map +1 -1
  172. package/dist/builtins/res/dicom.d.ts +55 -7
  173. package/dist/builtins/res/dicom.js +86 -52
  174. package/dist/builtins/res/dicom.js.map +1 -1
  175. package/dist/builtins/res/expect.d.ts +52 -3
  176. package/dist/builtins/res/expect.js +92 -29
  177. package/dist/builtins/res/expect.js.map +1 -1
  178. package/dist/builtins/res/feed.d.ts +475 -3
  179. package/dist/builtins/res/feed.js +253 -158
  180. package/dist/builtins/res/feed.js.map +1 -1
  181. package/dist/builtins/res/files.d.ts +517 -3
  182. package/dist/builtins/res/files.js +124 -44
  183. package/dist/builtins/res/files.js.map +1 -1
  184. package/dist/builtins/res/gather.d.ts +113 -3
  185. package/dist/builtins/res/gather.js +153 -44
  186. package/dist/builtins/res/gather.js.map +1 -1
  187. package/dist/builtins/res/gather.process.d.ts +27 -19
  188. package/dist/builtins/res/gather.process.js +29 -59
  189. package/dist/builtins/res/gather.process.js.map +1 -1
  190. package/dist/builtins/res/group.d.ts +284 -3
  191. package/dist/builtins/res/group.js +147 -76
  192. package/dist/builtins/res/group.js.map +1 -1
  193. package/dist/builtins/res/image.d.ts +30 -2
  194. package/dist/builtins/res/image.js +62 -10
  195. package/dist/builtins/res/image.js.map +1 -1
  196. package/dist/builtins/res/play.d.ts +71 -9
  197. package/dist/builtins/res/play.js +124 -82
  198. package/dist/builtins/res/play.js.map +1 -1
  199. package/dist/builtins/res/plugininstance.d.ts +307 -2
  200. package/dist/builtins/res/plugininstance.js +122 -50
  201. package/dist/builtins/res/plugininstance.js.map +1 -1
  202. package/dist/builtins/res/pluginmeta.d.ts +244 -2
  203. package/dist/builtins/res/pluginmeta.js +98 -40
  204. package/dist/builtins/res/pluginmeta.js.map +1 -1
  205. package/dist/builtins/res/record.d.ts +37 -3
  206. package/dist/builtins/res/record.js +127 -57
  207. package/dist/builtins/res/record.js.map +1 -1
  208. package/dist/builtins/res/resourceList.d.ts +136 -0
  209. package/dist/builtins/res/resourceList.js +51 -0
  210. package/dist/builtins/res/resourceList.js.map +1 -0
  211. package/dist/builtins/res/tag.d.ts +244 -3
  212. package/dist/builtins/res/tag.js +97 -41
  213. package/dist/builtins/res/tag.js.map +1 -1
  214. package/dist/builtins/res/user.d.ts +122 -3
  215. package/dist/builtins/res/user.js +83 -21
  216. package/dist/builtins/res/user.js.map +1 -1
  217. package/dist/builtins/res/workflow.d.ts +244 -2
  218. package/dist/builtins/res/workflow.js +97 -40
  219. package/dist/builtins/res/workflow.js.map +1 -1
  220. package/dist/builtins/store.d.ts +85 -3
  221. package/dist/builtins/store.js +135 -68
  222. package/dist/builtins/store.js.map +1 -1
  223. package/dist/builtins/sys/apropos.d.ts +80 -5
  224. package/dist/builtins/sys/apropos.js +121 -15
  225. package/dist/builtins/sys/apropos.js.map +1 -1
  226. package/dist/builtins/sys/cal.d.ts +44 -5
  227. package/dist/builtins/sys/cal.js +57 -10
  228. package/dist/builtins/sys/cal.js.map +1 -1
  229. package/dist/builtins/sys/command.d.ts +20 -0
  230. package/dist/builtins/sys/command.js +31 -0
  231. package/dist/builtins/sys/command.js.map +1 -1
  232. package/dist/builtins/sys/context.d.ts +13 -3
  233. package/dist/builtins/sys/context.js +51 -4
  234. package/dist/builtins/sys/context.js.map +1 -1
  235. package/dist/builtins/sys/date.d.ts +56 -5
  236. package/dist/builtins/sys/date.js +63 -9
  237. package/dist/builtins/sys/date.js.map +1 -1
  238. package/dist/builtins/sys/echo.d.ts +63 -2
  239. package/dist/builtins/sys/echo.js +87 -8
  240. package/dist/builtins/sys/echo.js.map +1 -1
  241. package/dist/builtins/sys/fortune.d.ts +27 -2
  242. package/dist/builtins/sys/fortune.js +44 -2
  243. package/dist/builtins/sys/fortune.js.map +1 -1
  244. package/dist/builtins/sys/grep.d.ts +245 -11
  245. package/dist/builtins/sys/grep.js +418 -131
  246. package/dist/builtins/sys/grep.js.map +1 -1
  247. package/dist/builtins/sys/joblets.d.ts +66 -7
  248. package/dist/builtins/sys/joblets.js +101 -14
  249. package/dist/builtins/sys/joblets.js.map +1 -1
  250. package/dist/builtins/sys/motd.d.ts +37 -3
  251. package/dist/builtins/sys/motd.js +49 -8
  252. package/dist/builtins/sys/motd.js.map +1 -1
  253. package/dist/builtins/sys/notes.d.ts +75 -3
  254. package/dist/builtins/sys/notes.js +90 -29
  255. package/dist/builtins/sys/notes.js.map +1 -1
  256. package/dist/builtins/sys/physicalmode.d.ts +24 -3
  257. package/dist/builtins/sys/physicalmode.js +68 -14
  258. package/dist/builtins/sys/physicalmode.js.map +1 -1
  259. package/dist/builtins/sys/tasks.d.ts +74 -5
  260. package/dist/builtins/sys/tasks.js +102 -14
  261. package/dist/builtins/sys/tasks.js.map +1 -1
  262. package/dist/builtins/sys/textFilters.d.ts +673 -41
  263. package/dist/builtins/sys/textFilters.js +719 -264
  264. package/dist/builtins/sys/textFilters.js.map +1 -1
  265. package/dist/builtins/sys/timing.d.ts +24 -3
  266. package/dist/builtins/sys/timing.js +67 -14
  267. package/dist/builtins/sys/timing.js.map +1 -1
  268. package/dist/builtins/sys/variables.d.ts +70 -4
  269. package/dist/builtins/sys/variables.js +103 -31
  270. package/dist/builtins/sys/variables.js.map +1 -1
  271. package/dist/builtins/sys/version.d.ts +27 -2
  272. package/dist/builtins/sys/version.js +48 -3
  273. package/dist/builtins/sys/version.js.map +1 -1
  274. package/dist/builtins/sys/weather.d.ts +92 -15
  275. package/dist/builtins/sys/weather.js +71 -45
  276. package/dist/builtins/sys/weather.js.map +1 -1
  277. package/dist/builtins/sys/whoami.d.ts +38 -18
  278. package/dist/builtins/sys/whoami.js +112 -8
  279. package/dist/builtins/sys/whoami.js.map +1 -1
  280. package/dist/builtins/utils.d.ts +1 -38
  281. package/dist/builtins/utils.js +1 -87
  282. package/dist/builtins/utils.js.map +1 -1
  283. package/dist/chris/backend.js +2 -0
  284. package/dist/chris/backend.js.map +1 -1
  285. package/dist/chris/chrisCommands.js +62 -159
  286. package/dist/chris/chrisCommands.js.map +1 -1
  287. package/dist/chris/commandFallback.d.ts +12 -0
  288. package/dist/chris/commandFallback.js +47 -0
  289. package/dist/chris/commandFallback.js.map +1 -1
  290. package/dist/chris/files.js +24 -85
  291. package/dist/chris/files.js.map +1 -1
  292. package/dist/chris/filesystem.js +7 -5
  293. package/dist/chris/filesystem.js.map +1 -1
  294. package/dist/chris/help.js +0 -1082
  295. package/dist/chris/help.js.map +1 -1
  296. package/dist/chris/kinds.d.ts +30 -0
  297. package/dist/chris/kinds.js +154 -0
  298. package/dist/chris/kinds.js.map +1 -0
  299. package/dist/chris/mounts.d.ts +4 -4
  300. package/dist/chris/mounts.js +9 -16
  301. package/dist/chris/mounts.js.map +1 -1
  302. package/dist/chris/navigation.d.ts +2 -3
  303. package/dist/chris/navigation.js +6 -20
  304. package/dist/chris/navigation.js.map +1 -1
  305. package/dist/chris/pacsResources.d.ts +259 -0
  306. package/dist/chris/pacsResources.js +168 -0
  307. package/dist/chris/pacsResources.js.map +1 -0
  308. package/dist/chris/promptContext.d.ts +6 -0
  309. package/dist/chris/promptContext.js +3 -1
  310. package/dist/chris/promptContext.js.map +1 -1
  311. package/dist/core/argumentKinds.d.ts +107 -0
  312. package/dist/core/argumentKinds.js +223 -0
  313. package/dist/core/argumentKinds.js.map +1 -0
  314. package/dist/core/backend.d.ts +4 -1
  315. package/dist/core/backend.js.map +1 -1
  316. package/dist/core/commandDeclaration.d.ts +453 -0
  317. package/dist/core/commandDeclaration.js +52 -0
  318. package/dist/core/commandDeclaration.js.map +1 -0
  319. package/dist/core/commandParse.d.ts +64 -0
  320. package/dist/core/commandParse.js +468 -0
  321. package/dist/core/commandParse.js.map +1 -0
  322. package/dist/core/commandRegistry.d.ts +37 -0
  323. package/dist/core/commandRegistry.js +100 -3
  324. package/dist/core/commandRegistry.js.map +1 -1
  325. package/dist/core/commandSchema.d.ts +32 -0
  326. package/dist/core/commandSchema.js +117 -0
  327. package/dist/core/commandSchema.js.map +1 -0
  328. package/dist/core/commandUsage.d.ts +62 -0
  329. package/dist/core/commandUsage.js +247 -0
  330. package/dist/core/commandUsage.js.map +1 -0
  331. package/dist/core/coreCommands.js +66 -214
  332. package/dist/core/coreCommands.js.map +1 -1
  333. package/dist/core/dispatch.js +15 -8
  334. package/dist/core/dispatch.js.map +1 -1
  335. package/dist/core/paths.d.ts +51 -0
  336. package/dist/core/paths.js +86 -2
  337. package/dist/core/paths.js.map +1 -1
  338. package/dist/core/preprocess.d.ts +10 -9
  339. package/dist/core/preprocess.js +10 -20
  340. package/dist/core/preprocess.js.map +1 -1
  341. package/dist/core/warmupFailures.d.ts +34 -2
  342. package/dist/core/warmupFailures.js +43 -2
  343. package/dist/core/warmupFailures.js.map +1 -1
  344. package/dist/lib/completer/cfsPaths.d.ts +14 -0
  345. package/dist/lib/completer/cfsPaths.js +91 -0
  346. package/dist/lib/completer/cfsPaths.js.map +1 -0
  347. package/dist/lib/completer/declared.d.ts +15 -0
  348. package/dist/lib/completer/declared.js +189 -0
  349. package/dist/lib/completer/declared.js.map +1 -0
  350. package/dist/lib/completer/index.js +33 -79
  351. package/dist/lib/completer/index.js.map +1 -1
  352. package/dist/lib/parser.d.ts +5 -8
  353. package/dist/lib/parser.js +2 -11
  354. package/dist/lib/parser.js.map +1 -1
  355. package/dist/lib/vfs/vfs.d.ts +2 -1
  356. package/dist/lib/vfs/vfs.js +9 -6
  357. package/dist/lib/vfs/vfs.js.map +1 -1
  358. package/dist/lib/wildcard.js +2 -3
  359. package/dist/lib/wildcard.js.map +1 -1
  360. package/dist/notes.json +1 -1
  361. package/package.json +6 -5
@@ -1,23 +1,113 @@
1
1
  import { CommandEnvelope } from '@fnndsc/menu';
2
2
  /**
3
- * Adds or modifies an access control entry on a feed.
3
+ * `setfacl [-m <entry>] [-x <entry>] <path>…`: the declaration.
4
4
  *
5
- * @param args - Raw argument tokens.
6
- * @returns An envelope naming what was granted.
5
+ * @example
6
+ * ```ts
7
+ * commands_register({ declarations: [setfaclCommand] }, 'backend');
8
+ * ```
9
+ */
10
+ export declare const setfaclCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
11
+ readonly operands: readonly [{
12
+ readonly name: "path";
13
+ readonly kind: "cfsPath";
14
+ readonly repeat: true;
15
+ readonly glob: true;
16
+ readonly summary: "The feeds: an id, feed_N, any path through /feeds/, or /proc/jobs/feed_N";
17
+ }];
18
+ readonly options: {
19
+ readonly modify: {
20
+ readonly short: "m";
21
+ readonly long: "modify";
22
+ readonly summary: "Add an entry: u:<user>:r, g:<group>:r, o::r (public) or o::- (private)";
23
+ readonly value: {
24
+ readonly name: "entry";
25
+ readonly kind: "word";
26
+ };
27
+ };
28
+ readonly remove: {
29
+ readonly short: "x";
30
+ readonly long: "remove";
31
+ readonly summary: "Withdraw a grant: u:<user> or g:<group>";
32
+ readonly value: {
33
+ readonly name: "entry";
34
+ readonly kind: "word";
35
+ };
36
+ };
37
+ };
38
+ }>;
39
+ /**
40
+ * `setfacl` over words already split: the declaration's parse and handler.
41
+ *
42
+ * @param args - The words after `setfacl`.
43
+ * @returns An envelope naming what was granted, or the refusal of a bad line.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * await builtin_setfacl(['-x', 'u:someone', 'feed_12']);
48
+ * ```
7
49
  */
8
50
  export declare function builtin_setfacl(args: string[]): Promise<CommandEnvelope>;
9
51
  /**
10
- * `chmod o+r` / `o-r` on feeds: the other entry, public or private, as
11
- * `setfacl -m o::r` / `o::-` writes it. No other mode is one a feed has.
52
+ * `chmod <o+r|o-r> <path>…`: the declaration.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * commands_register({ declarations: [chmodCommand] }, 'backend');
57
+ * ```
58
+ */
59
+ export declare const chmodCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
60
+ readonly operands: readonly [{
61
+ readonly name: "mode";
62
+ readonly kind: "enum";
63
+ readonly values: readonly ["o+r", "o-r"];
64
+ readonly summary: "o+r makes the feeds public, o-r private: no other mode is one a feed has";
65
+ }, {
66
+ readonly name: "path";
67
+ readonly kind: "cfsPath";
68
+ readonly repeat: true;
69
+ readonly glob: true;
70
+ readonly summary: "The feeds: an id, feed_N, any path through /feeds/, or /proc/jobs/feed_N";
71
+ }];
72
+ }>;
73
+ /**
74
+ * `chmod` over words already split: the declaration's parse and handler.
75
+ *
76
+ * @param args - The words after `chmod`.
77
+ * @returns An envelope naming what changed, or the refusal of a bad line.
12
78
  *
13
- * @param args - Raw argument tokens.
14
- * @returns An envelope naming what changed.
79
+ * @example
80
+ * ```ts
81
+ * await builtin_chmod(['o+r', 'feed_12']);
82
+ * ```
15
83
  */
16
84
  export declare function builtin_chmod(args: string[]): Promise<CommandEnvelope>;
17
85
  /**
18
- * Reports a feed's access list, in `getfacl`'s own shape.
86
+ * `getfacl <path>…`: the declaration.
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * commands_register({ declarations: [getfaclCommand] }, 'backend');
91
+ * ```
92
+ */
93
+ export declare const getfaclCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
94
+ readonly operands: readonly [{
95
+ readonly name: "path";
96
+ readonly kind: "cfsPath";
97
+ readonly repeat: true;
98
+ readonly glob: true;
99
+ readonly summary: "The feeds: an id, feed_N, any path through /feeds/, or /proc/jobs/feed_N";
100
+ }];
101
+ }>;
102
+ /**
103
+ * `getfacl` over words already split: the declaration's parse and handler.
104
+ *
105
+ * @param args - The words after `getfacl`.
106
+ * @returns The access lists, or the refusal of a bad line.
19
107
  *
20
- * @param args - Raw argument tokens.
21
- * @returns An envelope carrying the rendered list.
108
+ * @example
109
+ * ```ts
110
+ * await builtin_getfacl(['feed_12']);
111
+ * ```
22
112
  */
23
113
  export declare function builtin_getfacl(args: string[]): Promise<CommandEnvelope>;
@@ -7,62 +7,148 @@
7
7
  * a group's grant, and `chmod o±r` is the other entry spelled as a mode.
8
8
  * `share X with Y` is a sentence; it lands nowhere in a terminal.
9
9
  *
10
- * The capability itself lives in the kernel (cumin `feed_share`,
10
+ * Each is declared in one record: the feeds are path operands that glob,
11
+ * `setfacl`'s entry an option's value, `chmod`'s mode one of two words. The
12
+ * capability itself lives in the kernel (cumin `feed_share`,
11
13
  * `feedShare_group`, `feedShare_revoke`, `feedAccess_read`,
12
14
  * `feed_makePublic`, `feed_makePrivate`). This is its shell face.
13
15
  *
16
+ * Key components:
17
+ * - setfaclCommand, getfaclCommand, chmodCommand: the declarations.
18
+ * - builtin_setfacl, builtin_getfacl, builtin_chmod: each declaration run over words already split.
19
+ *
20
+ * Typical usage:
21
+ * ```ts
22
+ * await builtin_setfacl(['-m', 'u:someone:r', 'feed_12']);
23
+ * ```
24
+ *
25
+ * Dependencies: cumin's sharing calls; the words of an entry and of a feed (`acl.args.ts`).
26
+ *
14
27
  * @module
15
28
  */
16
29
  import { feed_share, feedShare_group, feedShare_revoke, feedAccess_read, feed_makePublic, feed_makePrivate } from '@fnndsc/cumin';
17
- import { aclTarget_resolve, acl_render, chmodArgs_parse, setfaclArgs_parse, GETFACL_USAGE, } from './acl.args.js';
30
+ import { aclEntry_parse, aclRemoval_parse, aclTarget_resolve, acl_render, } from './acl.args.js';
18
31
  import { errorStack } from '@fnndsc/fond';
19
32
  import { envelope_ok, envelope_error } from '@fnndsc/menu';
33
+ import { command_declare } from '../../core/commandDeclaration.js';
34
+ import { declaredCommand_run } from '../../core/commandParse.js';
35
+ /** The feeds a line names, as each of these commands takes them. */
36
+ const FEEDS_OPERAND = {
37
+ name: 'path',
38
+ kind: 'cfsPath',
39
+ repeat: true,
40
+ glob: true,
41
+ summary: 'The feeds: an id, feed_N, any path through /feeds/, or /proc/jobs/feed_N',
42
+ };
43
+ /** What a `setfacl` line may hold. */
44
+ const SETFACL_GRAMMAR = {
45
+ operands: [FEEDS_OPERAND],
46
+ options: {
47
+ modify: { short: 'm', long: 'modify', summary: 'Add an entry: u:<user>:r, g:<group>:r, o::r (public) or o::- (private)', value: { name: 'entry', kind: 'word' } },
48
+ remove: { short: 'x', long: 'remove', summary: 'Withdraw a grant: u:<user> or g:<group>', value: { name: 'entry', kind: 'word' } },
49
+ },
50
+ };
20
51
  /**
21
- * Adds or modifies an access control entry on a feed.
52
+ * The feeds some targets name, in order.
22
53
  *
23
- * @param args - Raw argument tokens.
24
- * @returns An envelope naming what was granted.
54
+ * @param verb - The command, for its refusal.
55
+ * @param paths - The targets as the line gave them.
56
+ * @param distinct - Whether a feed named twice counts once.
57
+ * @returns The feed ids, or the refusal of the first target that names none.
25
58
  */
26
- export async function builtin_setfacl(args) {
27
- let parsed = setfaclArgs_parse(args);
28
- // A path and no entry names WHAT to share and not WITH WHOM, which is a
29
- // question rather than a usage error (an-absent-value-is-a-question). The
30
- // grant CUBE offers is read on a feed, so the only thing missing is the
31
- // identity: ask for it, and refuse as before when it is not answered.
32
- if (parsed.error !== null && entryless_is(args)) {
33
- const paths = args.filter((token) => !token.startsWith('-'));
34
- const feedIDs = [];
35
- for (const path of paths) {
36
- const feedID = aclTarget_resolve(path);
37
- if (feedID === null) {
38
- return envelope_error(`setfacl: '${path}' does not name a feed\n`);
39
- }
40
- if (!feedIDs.includes(feedID))
41
- feedIDs.push(feedID);
42
- }
43
- // One question for the whole set: a grant is per identity, and asking
44
- // who once for twenty feeds is the same answer twenty times.
45
- const who = (await who_ask(feedIDs)).trim();
46
- if (who === '') {
47
- const named = feedIDs.map((id) => `feed_${id}`).join(' ');
48
- return envelope_error(`setfacl: nobody named; ${named} shared with no one new\n`);
49
- }
50
- parsed = setfaclArgs_parse(['-m', `u:${who}:r`, ...paths]);
51
- }
52
- if (parsed.error !== null)
53
- return envelope_error(`${parsed.error}\n`);
59
+ function feedIDs_resolve(verb, paths, distinct) {
54
60
  const feedIDs = [];
55
- for (const path of parsed.paths) {
61
+ for (const path of paths) {
56
62
  const feedID = aclTarget_resolve(path);
57
63
  if (feedID === null)
58
- return envelope_error(`setfacl: '${path}' does not name a feed\n`);
59
- feedIDs.push(feedID);
64
+ return envelope_error(`${verb}: '${path}' does not name a feed\n`);
65
+ if (!distinct || !feedIDs.includes(feedID))
66
+ feedIDs.push(feedID);
67
+ }
68
+ return feedIDs;
69
+ }
70
+ /**
71
+ * Adds or modifies an access control entry on feeds, or withdraws a grant;
72
+ * given feeds and no entry, asks whom to share them with.
73
+ *
74
+ * @param args - The line, parsed.
75
+ * @returns An envelope naming what was granted or withdrawn.
76
+ */
77
+ async function setfacl_run(args) {
78
+ const { modify, remove } = args.options;
79
+ if (remove !== undefined) {
80
+ const removal = aclRemoval_parse(remove);
81
+ if (typeof removal === 'string')
82
+ return envelope_error(`${removal}\n`);
83
+ const feedIDs = feedIDs_resolve('setfacl', args.operands.path, false);
84
+ return Array.isArray(feedIDs) ? acl_remove(removal, feedIDs) : feedIDs;
85
+ }
86
+ if (modify !== undefined) {
87
+ const entry = aclEntry_parse(modify);
88
+ if (entry === null)
89
+ return envelope_error(`setfacl: '${modify}' is not an entry (want u:<user>:r, g:<group>:r, o::r or o::-)\n`);
90
+ const feedIDs = feedIDs_resolve('setfacl', args.operands.path, false);
91
+ return Array.isArray(feedIDs) ? acl_apply(entry, feedIDs, 'setfacl') : feedIDs;
60
92
  }
61
- if (parsed.remove !== null)
62
- return acl_remove(parsed.remove, feedIDs);
63
- if (parsed.modify === null)
64
- return envelope_error(`${parsed.error ?? 'setfacl: nothing to do'}\n`);
65
- return acl_apply(parsed.modify, feedIDs, 'setfacl');
93
+ // A path and no entry names WHAT to share and not WITH WHOM, which is a
94
+ // question rather than a usage error (an-absent-value-is-a-question). The
95
+ // grant CUBE offers is read on a feed, so the only thing missing is the
96
+ // identity: ask for it, and refuse when it is not answered.
97
+ const feedIDs = feedIDs_resolve('setfacl', args.operands.path, true);
98
+ if (!Array.isArray(feedIDs))
99
+ return feedIDs;
100
+ // One question for the whole set: a grant is per identity, and asking
101
+ // who once for twenty feeds is the same answer twenty times.
102
+ const who = (await who_ask(feedIDs)).trim();
103
+ if (who === '') {
104
+ const named = feedIDs.map((id) => `feed_${id}`).join(' ');
105
+ return envelope_error(`setfacl: nobody named; ${named} shared with no one new\n`);
106
+ }
107
+ return acl_apply({ kind: 'user', name: who, perms: 'r' }, feedIDs, 'setfacl');
108
+ }
109
+ /**
110
+ * `setfacl [-m <entry>] [-x <entry>] <path>…`: the declaration.
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * commands_register({ declarations: [setfaclCommand] }, 'backend');
115
+ * ```
116
+ */
117
+ export const setfaclCommand = command_declare({
118
+ name: 'setfacl',
119
+ grammar: SETFACL_GRAMMAR,
120
+ help: {
121
+ summary: 'Share a feed with a user, a group or everyone, or stop sharing it',
122
+ description: 'A feed\'s access list, as POSIX ACL entries. -m u:<user>:r shares it with a user, -m g:<group>:r '
123
+ + 'with a group, -m o::r with everyone (a public feed) and -m o::- makes it private again. '
124
+ + '-x u:<user> or -x g:<group> withdraws that grant. A feed is named by id, by the feed_N a '
125
+ + 'listing shows, by any path through /feeds/, or by /proc/jobs/feed_N. Given a feed and no '
126
+ + 'entry, it asks which user to share it with.',
127
+ category: 'Sharing',
128
+ posix: { group: 'Files', differs: 'ChRIS sharing, as ACL entries' },
129
+ examples: [
130
+ 'setfacl -m u:someone:r /home/me/feeds/feed_12',
131
+ 'setfacl -m g:grantlab:r feed_12 feed_13',
132
+ 'setfacl -m o::r feed_12 # public',
133
+ 'setfacl -x u:someone feed_12',
134
+ 'setfacl feed_12 # asks who to share it with',
135
+ ],
136
+ },
137
+ handler: setfacl_run,
138
+ });
139
+ /**
140
+ * `setfacl` over words already split: the declaration's parse and handler.
141
+ *
142
+ * @param args - The words after `setfacl`.
143
+ * @returns An envelope naming what was granted, or the refusal of a bad line.
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * await builtin_setfacl(['-x', 'u:someone', 'feed_12']);
148
+ * ```
149
+ */
150
+ export async function builtin_setfacl(args) {
151
+ return declaredCommand_run(setfaclCommand, args);
66
152
  }
67
153
  /**
68
154
  * Applies one entry to feeds: a user or group granted read, or the other
@@ -128,36 +214,63 @@ async function acl_remove(removal, feedIDs) {
128
214
  lines.unshift(`${removal.kind} ${removal.name} no longer reads ${removed.join(' ')}`);
129
215
  return envelope_ok(`${lines.join('\n')}\n`, { kind: 'fs.acl.removed', data: { kind: removal.kind, name: removal.name, targets: removed } });
130
216
  }
217
+ /** What a `chmod` line may hold: a feed's one mode, then the feeds. */
218
+ const CHMOD_GRAMMAR = {
219
+ operands: [
220
+ { name: 'mode', kind: 'enum', values: ['o+r', 'o-r'], summary: 'o+r makes the feeds public, o-r private: no other mode is one a feed has' },
221
+ FEEDS_OPERAND,
222
+ ],
223
+ };
131
224
  /**
132
225
  * `chmod o+r` / `o-r` on feeds: the other entry, public or private, as
133
- * `setfacl -m o::r` / `o::-` writes it. No other mode is one a feed has.
226
+ * `setfacl -m o::r` / `o::-` writes it.
134
227
  *
135
- * @param args - Raw argument tokens.
228
+ * @param args - The line, parsed.
136
229
  * @returns An envelope naming what changed.
137
230
  */
138
- export async function builtin_chmod(args) {
139
- const parsed = chmodArgs_parse(args);
140
- if (typeof parsed === 'string')
141
- return envelope_error(`${parsed}\n`);
142
- const feedIDs = [];
143
- for (const path of parsed.paths) {
144
- const feedID = aclTarget_resolve(path);
145
- if (feedID === null)
146
- return envelope_error(`chmod: '${path}' does not name a feed\n`);
147
- feedIDs.push(feedID);
148
- }
149
- return acl_apply(parsed.entry, feedIDs, 'chmod');
231
+ async function chmod_run(args) {
232
+ const feedIDs = feedIDs_resolve('chmod', args.operands.path, false);
233
+ if (!Array.isArray(feedIDs))
234
+ return feedIDs;
235
+ return acl_apply({ kind: 'other', name: '', perms: args.operands.mode === 'o+r' ? 'r' : '-' }, feedIDs, 'chmod');
150
236
  }
151
237
  /**
152
- * Whether an invocation names paths but no entry to apply to them.
238
+ * `chmod <o+r|o-r> <path>…`: the declaration.
239
+ *
240
+ * @example
241
+ * ```ts
242
+ * commands_register({ declarations: [chmodCommand] }, 'backend');
243
+ * ```
244
+ */
245
+ export const chmodCommand = command_declare({
246
+ name: 'chmod',
247
+ grammar: CHMOD_GRAMMAR,
248
+ help: {
249
+ summary: 'Make a feed public, or private again',
250
+ description: 'The other entry of a feed\'s access list spelled as a mode: o+r makes it public, o-r private, '
251
+ + 'exactly as setfacl -m o::r and o::- do. No other mode is one a feed has.',
252
+ category: 'Sharing',
253
+ posix: { group: 'Files', differs: 'sets who may see a feed or folder (ChRIS sharing)' },
254
+ examples: [
255
+ 'chmod o+r feed_12',
256
+ 'chmod o-r /proc/jobs/feed_12',
257
+ ],
258
+ },
259
+ handler: chmod_run,
260
+ });
261
+ /**
262
+ * `chmod` over words already split: the declaration's parse and handler.
263
+ *
264
+ * @param args - The words after `chmod`.
265
+ * @returns An envelope naming what changed, or the refusal of a bad line.
153
266
  *
154
- * @param args - Raw argument tokens.
155
- * @returns True when there is something to share and nobody to share with.
267
+ * @example
268
+ * ```ts
269
+ * await builtin_chmod(['o+r', 'feed_12']);
270
+ * ```
156
271
  */
157
- function entryless_is(args) {
158
- const flagged = args.some((token) => token === '-m' || token === '-x' || token.startsWith('--'));
159
- const paths = args.filter((token) => !token.startsWith('-'));
160
- return !flagged && paths.length >= 1;
272
+ export async function builtin_chmod(args) {
273
+ return declaredCommand_run(chmodCommand, args);
161
274
  }
162
275
  /**
163
276
  * Asks which identity a feed should be shared with.
@@ -179,19 +292,20 @@ async function who_ask(feedIDs) {
179
292
  return '';
180
293
  }
181
294
  }
295
+ /** What a `getfacl` line may hold. */
296
+ const GETFACL_GRAMMAR = {
297
+ operands: [FEEDS_OPERAND],
298
+ };
182
299
  /**
183
300
  * Reports a feed's access list, in `getfacl`'s own shape.
184
301
  *
185
- * @param args - Raw argument tokens.
302
+ * @param args - The line, parsed.
186
303
  * @returns An envelope carrying the rendered list.
187
304
  */
188
- export async function builtin_getfacl(args) {
189
- const paths = args.filter((token) => !token.startsWith('-'));
190
- if (paths.length === 0)
191
- return envelope_error(`${GETFACL_USAGE}\n`);
305
+ async function getfacl_run(args) {
192
306
  const blocks = [];
193
307
  const model = [];
194
- for (const path of paths) {
308
+ for (const path of args.operands.path) {
195
309
  const feedID = aclTarget_resolve(path);
196
310
  if (feedID === null) {
197
311
  return envelope_error(`getfacl: '${path}' does not name a feed\n`);
@@ -206,4 +320,44 @@ export async function builtin_getfacl(args) {
206
320
  }
207
321
  return envelope_ok(`${blocks.join('\n\n')}\n`, { kind: 'fs.acl', data: model });
208
322
  }
323
+ /**
324
+ * `getfacl <path>…`: the declaration.
325
+ *
326
+ * @example
327
+ * ```ts
328
+ * commands_register({ declarations: [getfaclCommand] }, 'backend');
329
+ * ```
330
+ */
331
+ export const getfaclCommand = command_declare({
332
+ name: 'getfacl',
333
+ grammar: GETFACL_GRAMMAR,
334
+ help: {
335
+ summary: 'Show who can read a feed: users, groups, and whether it is public',
336
+ description: 'Show who can read a feed, in the familiar block: a # file: line, the owner\'s user:: entry, '
337
+ + 'one user: line per user and one group: line per group holding access, then other:: '
338
+ + '(r-- when the feed is public).',
339
+ category: 'Sharing',
340
+ posix: { group: 'Files', differs: 'who a feed or folder is shared with, as ACL entries' },
341
+ examples: [
342
+ 'getfacl /home/me/feeds/feed_12',
343
+ ],
344
+ },
345
+ // Reading an access list changes nothing of the session.
346
+ holds: [],
347
+ handler: getfacl_run,
348
+ });
349
+ /**
350
+ * `getfacl` over words already split: the declaration's parse and handler.
351
+ *
352
+ * @param args - The words after `getfacl`.
353
+ * @returns The access lists, or the refusal of a bad line.
354
+ *
355
+ * @example
356
+ * ```ts
357
+ * await builtin_getfacl(['feed_12']);
358
+ * ```
359
+ */
360
+ export async function builtin_getfacl(args) {
361
+ return declaredCommand_run(getfaclCommand, args);
362
+ }
209
363
  //# sourceMappingURL=acl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"acl.js","sourceRoot":"","sources":["../../../src/builtins/fs/acl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acl.js","sourceRoot":"","sources":["../../../src/builtins/fs/acl.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,35 @@
1
1
  /**
2
- * @file Shared `cat` command-line grammar.
2
+ * @file What of `cat`'s line other modules read without loading cat.
3
3
  *
4
- * Defines the typed result used by the builtin, the usage text shown in help
5
- * and errors, and the option predicate used by redirect filename inference.
6
- * This module is intentionally dependency-free so preprocessing can consume
7
- * the grammar without loading the file reader or syntax highlighter.
4
+ * Defines the typed options the core reads, the usage text, and the option
5
+ * predicate redirect filename inference uses. The line itself is parsed
6
+ * against `catCommand`'s grammar (`cat.ts`). This module is intentionally
7
+ * dependency-free so preprocessing can consume it without loading the file
8
+ * reader or syntax highlighter.
8
9
  *
9
10
  * @module
10
11
  */
11
12
  /** Whether syntax highlighting follows TTY detection, is forced, or is disabled. */
12
13
  export type CatHighlightMode = 'auto' | 'always' | 'never';
13
- /** Parsed `cat` command-line arguments. */
14
+ /** The typed core's options: which files, and how they are presented. */
14
15
  export interface CatArguments {
15
16
  binaryMode: boolean;
16
17
  highlightMode: CatHighlightMode;
17
18
  highlightLanguage?: string;
18
19
  filePaths: string[];
19
20
  }
20
- /** Canonical usage shared by builtin errors and interactive help. */
21
+ /** Canonical usage shared by the typed core's refusal and interactive help. */
21
22
  export declare const CAT_USAGE: string;
22
23
  /**
23
24
  * Returns whether an argument belongs to the `cat` option grammar.
24
25
  *
25
26
  * @param argument - One token from the command line.
26
27
  * @returns True for a recognized binary or highlight option.
27
- */
28
- export declare function catArgument_isOption(argument: string): boolean;
29
- /**
30
- * Parses file paths and presentation options for the `cat` builtin.
31
- * Later highlight flags take precedence over earlier highlight flags.
32
28
  *
33
- * @param args - Tokens following the `cat` command name.
34
- * @returns Typed binary, highlighting, language, and file-path selections.
29
+ * @example
30
+ * ```ts
31
+ * catArgument_isOption('--highlight=python'); // true
32
+ * catArgument_isOption('notes.txt'); // false
33
+ * ```
35
34
  */
36
- export declare function catArguments_parse(args: string[]): CatArguments;
35
+ export declare function catArgument_isOption(argument: string): boolean;
@@ -1,14 +1,15 @@
1
1
  /**
2
- * @file Shared `cat` command-line grammar.
2
+ * @file What of `cat`'s line other modules read without loading cat.
3
3
  *
4
- * Defines the typed result used by the builtin, the usage text shown in help
5
- * and errors, and the option predicate used by redirect filename inference.
6
- * This module is intentionally dependency-free so preprocessing can consume
7
- * the grammar without loading the file reader or syntax highlighter.
4
+ * Defines the typed options the core reads, the usage text, and the option
5
+ * predicate redirect filename inference uses. The line itself is parsed
6
+ * against `catCommand`'s grammar (`cat.ts`). This module is intentionally
7
+ * dependency-free so preprocessing can consume it without loading the file
8
+ * reader or syntax highlighter.
8
9
  *
9
10
  * @module
10
11
  */
11
- /** Canonical usage shared by builtin errors and interactive help. */
12
+ /** Canonical usage shared by the typed core's refusal and interactive help. */
12
13
  export const CAT_USAGE = 'cat [--binary] [--highlight[=language] | --no-highlight] <file> [file...]';
13
14
  const BINARY_OPTION = '--binary';
14
15
  const HIGHLIGHT_OPTION = '--highlight';
@@ -19,6 +20,12 @@ const NO_HIGHLIGHT_OPTION = '--no-highlight';
19
20
  *
20
21
  * @param argument - One token from the command line.
21
22
  * @returns True for a recognized binary or highlight option.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * catArgument_isOption('--highlight=python'); // true
27
+ * catArgument_isOption('notes.txt'); // false
28
+ * ```
22
29
  */
23
30
  export function catArgument_isOption(argument) {
24
31
  return argument === BINARY_OPTION
@@ -26,38 +33,4 @@ export function catArgument_isOption(argument) {
26
33
  || argument === NO_HIGHLIGHT_OPTION
27
34
  || argument.startsWith(HIGHLIGHT_LANGUAGE_PREFIX);
28
35
  }
29
- /**
30
- * Parses file paths and presentation options for the `cat` builtin.
31
- * Later highlight flags take precedence over earlier highlight flags.
32
- *
33
- * @param args - Tokens following the `cat` command name.
34
- * @returns Typed binary, highlighting, language, and file-path selections.
35
- */
36
- export function catArguments_parse(args) {
37
- let binaryMode = false;
38
- let highlightMode = 'auto';
39
- let highlightLanguage;
40
- const filePaths = [];
41
- for (const argument of args) {
42
- if (argument === BINARY_OPTION) {
43
- binaryMode = true;
44
- }
45
- else if (argument === HIGHLIGHT_OPTION) {
46
- highlightMode = 'always';
47
- highlightLanguage = undefined;
48
- }
49
- else if (argument.startsWith(HIGHLIGHT_LANGUAGE_PREFIX)) {
50
- highlightMode = 'always';
51
- highlightLanguage = argument.slice(HIGHLIGHT_LANGUAGE_PREFIX.length);
52
- }
53
- else if (argument === NO_HIGHLIGHT_OPTION) {
54
- highlightMode = 'never';
55
- highlightLanguage = undefined;
56
- }
57
- else {
58
- filePaths.push(argument);
59
- }
60
- }
61
- return { binaryMode, highlightMode, highlightLanguage, filePaths };
62
- }
63
36
  //# sourceMappingURL=cat.args.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cat.args.js","sourceRoot":"","sources":["../../../src/builtins/fs/cat.args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,qEAAqE;AACrE,MAAM,CAAC,MAAM,SAAS,GACpB,2EAA2E,CAAC;AAE9E,MAAM,aAAa,GAAW,UAAU,CAAC;AACzC,MAAM,gBAAgB,GAAW,aAAa,CAAC;AAC/C,MAAM,yBAAyB,GAAW,cAAc,CAAC;AACzD,MAAM,mBAAmB,GAAW,gBAAgB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,QAAQ,KAAK,aAAa;WAC5B,QAAQ,KAAK,gBAAgB;WAC7B,QAAQ,KAAK,mBAAmB;WAChC,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAc;IAC/C,IAAI,UAAU,GAAY,KAAK,CAAC;IAChC,IAAI,aAAa,GAAqB,MAAM,CAAC;IAC7C,IAAI,iBAAqC,CAAC;IAC1C,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC/B,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YACzC,aAAa,GAAG,QAAQ,CAAC;YACzB,iBAAiB,GAAG,SAAS,CAAC;QAChC,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC1D,aAAa,GAAG,QAAQ,CAAC;YACzB,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;YAC5C,aAAa,GAAG,OAAO,CAAC;YACxB,iBAAiB,GAAG,SAAS,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"cat.args.js","sourceRoot":"","sources":["../../../src/builtins/fs/cat.args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,SAAS,GACpB,2EAA2E,CAAC;AAE9E,MAAM,aAAa,GAAW,UAAU,CAAC;AACzC,MAAM,gBAAgB,GAAW,aAAa,CAAC;AAC/C,MAAM,yBAAyB,GAAW,cAAc,CAAC;AACzD,MAAM,mBAAmB,GAAW,gBAAgB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,QAAQ,KAAK,aAAa;WAC5B,QAAQ,KAAK,gBAAgB;WAC7B,QAAQ,KAAK,mBAAmB;WAChC,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;AACtD,CAAC"}