6 ms·
is this stuff not pretty easy to do with python? ``` python -c "import base64; print(base64.b64encode('$INPUT_STRING'.encode('utf-8')).decode('utf-8'))" ```
by rohan_ 1y ago
is this stuff not pretty easy to do with python?
```
python -c "import base64; print(base64.b64encode('$INPUT_STRING'.encode('utf-8')).decode('utf-8'))"
```
- landr0id 1y agoI love typing python commands that are 10x longer than a shorthand. Yes it's easy to set up an alias or shell command or whatever, but that's besides the point :p
- ksdme9 1y agoYou don't even have to go that far, `base64` is a coreutil (https://github.com/coreutils/coreutils/blob/ebfd80083b4fe4ae37f50bbc2fcf3cfaee50a248/src/basenc.c#L467 https://github.com/coreutils/coreutils/blob/ebfd80083b4fe4ae...). The point of ut is not to replace or invent new tooling. It is meant to be a set of tools that are simple, self exploratory and work out of the box with sane defaults. So, essentially, something that you don't have to remember syntax for or go through help/man pages everytime you want to use it.
- westurner 1y agouutils/coreutils has a `base64` in Rust which just gained better performance due to the base64-simd crate for SIMD: https://github.com/uutils/coreutils/pull/8578 https://github.com/uutils/coreutils/pull/8578
- collinfunk 1y agoNote that uutils does not work if the file does not fit into memory. With GNU coreutils: $ base64 /dev/zero | head -c 1 | wc -c 1 With uutils doing the same would exhaust your systems memory until either it freezes or oomd kills the process.
- conradludgate 1y agoFor now. There's no reason this won't/can't be worked on in the future.
- westurner 1y agoWhich BusyBox, toybox, and coreutils commands fail with data larger than RAM? Has that been part of the spec yet? Just realized `LC_COLLATE=C sort` must be specified if you don't want it to ignore leading underscores in sorting due to LC_COLLATE=en_US.utf8 being the default these days.
- baq 1y agoYou can send a heredoc into as in a single line of shell, too.
- klardotsh 1y agoIf you can remember all of that off the top of your head and find it ergonomic to type out, then sure. But much like how I prefer someone else to do my content syncing as an ergonomic appliance rather than using FTP + curlftpfs + a VCS [1], I quite like this idea of a focused toolbox (written in a language that compiles to native code) and welcome it rather than having to store these massive snippets in my head (or write shell wrappers for them). [1] https://news.ycombinator.com/item?id=9224 https://news.ycombinator.com/item?id=9224
- dolmen 1y agoThe "openssl" tool already has many of those tools and that tool is probably already available on your system. https://docs.openssl.org/master/man1/openssl/#command-summary https://docs.openssl.org/master/man1/openssl/#command-summar...
- dolmen 1y agoAlso with Go: $ go run github.com/dolmen-go/goeval@master 'fmt.Println(base64.StdEncoding.EncodeToString([]byte(os.Args[1])))' foobar Zm9vYmFy
- dolmen 1y agoMany of this utilities are bundled with the "openssl" tool: $ echo -n foobar | openssl base64 -e Zm9vYmFy