On Sun, Jun 13, 2021 at 2:49 AM Rob Landley <[email protected]> wrote:
> On 6/11/21 4:51 PM, Ryan Prichard wrote: > > On Thu, Jun 10, 2021 at 7:05 PM Rob Landley <[email protected] > > <mailto:[email protected]>> wrote: > > to show the help for ls. And DON'T want "chroot dir ls --help" to > show help > > output for chroot. (Or time. Or nice. Or nohup...) > > > > > > Yeah, I think my ideal would be for --help to apply to the last > (sub)command > > preceding it. e.g. When it appears after a subcommand name, it would be > parsed > > like any other subcommand flag. For "time", flag parsing (for -p and -v) > seems > > to stop at the first non-hyphenated argument. > > Which pulls in the argument parsing as a prerequisite for --help support in > commands like dd, expr, test... > > Sigh. It's possible this is an acceptable cost, I'd just really like to > avoid it > if I can. It's that whole "project serving two masters" thing again. The > embedded space is weird. Yes you can fit the computing power of a > supercomputer > into a wristwatch, at the expense of the watch's battery life being about 3 > hours of actual usage and 12 hours on standby. My mental model has been the > "free toy inside" of a cereal box running two chips off a watch battery. A > modern version of the blinking LED that was in everything in the 90's. [1] > how much of toybox is even buildable (let alone usable!) without Linux or equivalent Unix-y kernel? and afaik you can't run Linux [or equivalent] on any of the Cortex-M series, let alone the 8-bit AVR series or whatever else lives in the sub-Cortex-M realm? (maybe things are different in the SH world? TIL^Wlast week i learned [when skeptical of your claim about generating the md5sum.c tables] that SH-4 has a sincos instruction! i don't know of any ARM cores with anything like that. sqrt is about as fancy as they get.) and aren't the "free toy inside" crowd even _more_ likely to have one multiplexer binary than others? only folks with disk and memory to throw away will build n separate tools? > > Aside: "toybox toybox toybox toybox ls" doesn't seem to work for me: > > > > $ toybox toybox toybox toybox ls --help > > toybox: Unknown command toybox (see "toybox --help") > > Ah, I forgot commit 28c9710edf8b changed that. > > > The reason that --help isn't in the argument parsing plumbing is > because then > > commands that don't have arguments wouldn't support --help, not > without the > > argument parsing plumbing being unable to drop out when building > small binaries. > > > > > > I'm wondering when it's useful to drop the argument parsing plumbing. Is > there a > > configuration where CFG_TOYBOX is off, and there is one binary for one > command? > > You can make individual command names, or "make change" to do each > individual > command in a loop. (Both are listed in "make help".) > > $ make crc32 > ... > $ nm --size-sort generated/unstripped/crc32 > > (Might wanna pipe that to grep -v ' [Bb] ' because bss only exists at > runtime, > not in the binary...) > > > Most of the commands take arguments, so I'd think most builds of the > toybox > > binary would need some amount of the plumbing. > > Most builds use the multiplexer where the infrastructure is shared between > all > the commands, but a lot of small systems cherry pick just the commands they > need. Still, the list of commands that when build standalone don't include > lib/args.c is currently: > > $ grep 'NEWTOY(' toys/*/*.c | grep -v '["]' | grep -v NOHELP | \ > grep -v NOFORK | sed 's/.*NEWTOY(\([^,]*\),.*/\1/p' | sort -u | xargs > arch ascii bootchartd bzcat clear count crc32 dd demo_scankey > demo_utf8towc > dos2unix expr factor groups hello ip lsmod lsusb more readahead reset > rev sync > tac unix2dos w xzcat yes > > Which isn't a huge list. (And half that's in pending or example anyway.) > > I suppose I could make if/else logic for the drop out case still supporting > --help. I wince at this but lemme think about it. > > > > $ ./tar -c README > --help && ./tar -tvf --help > > > <prints "toybox tar" usage with the new --help behavior. > previously toybox > > > behaved like GNU tar above.> > > > > And now you know why I had it the way it was. It sounds like what > you're saying > > is that the toysh "alias" command should be --help aware for > builtins. > > > > Ah, I don't think I'd make a special case for alias... not sure how that > would work? > > I'm writing a shell as we speak, so... :) > > (Alias is in the near term todo heap but I need to get through job control > first. Job control is a gordian knot I don't get to cut, but there are some > interesting solvents...) > > > So... I don't actually use alias on Android devices. I had suggested it > as an > > example that might motivate "ls -l --help" more strongly than > convenience and > > expectation. I'm happy enough just editing the --help into the right > place on > > the command line. > > I try to have multiple ways: > > toybox --help ls > toybox ls --help > ls --help > help ls > toybox help ls > > Plus the "man" command someday... > > > -Ryan > > > > Rob > > Footnote 1: > > We've run j-core with an ice-40 wired to an spi flash chip and had it > export an > spi interface to read from a calculator keyboard/display running off a > stack of > 3 watch batteries. We haven't YET taped the ice40/spi pair to the front a > watch > battery and added an LED and IR sensor as a proof of concept to have a > coin cell > run gnuchess all by itself, but that's mostly because you'd have to stack > 3 coin > cells to get the voltage the ice40 wants (and adding voltage converter > circuitry > would defeat the "two chips scotch taped to a battery bigger than the > chips are" > bragging rights thing), so that'll have to wait for an asic SOC version... > > You can get tiny processors for 3 cents > (https://www.youtube.com/watch?v=VYhAGnsnO7w) and a quick search found > coin cell > batteries for 36 cents each retail > ( > https://www.amazon.com/Panasonic-Cr2032-Lithium-Battery-Ecr2032/dp/B00REWNF2M/ref=asc_df_B00REWNF2M/ > ) > presumably cheaper in bulk. (I occasionally look at > htts://landley.net/notes-2017.html#30-09-2017 and such but "woman invents > a > thing, white dude takes credit, his company gets sued for treating > employees > terribly and goes bankrupt" is a sadly common story...) > _______________________________________________ > Toybox mailing list > [email protected] > http://lists.landley.net/listinfo.cgi/toybox-landley.net >
_______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
