6c3ba4c4c7
1) style fix (don't arrange local variables) 2) BUGFIX: Previously, if ret was turned 1 for some folder, it would disable the p-flag for every following folders, which is not desired. Instead, the "else if" makes sure that the p-flag-section is only entered when the initial rmdir succeeds. 3) BUGFIX: Previously, the program would cancel with eprintf if it failed to remove one folder in the parent-pathname. This is not desired, as we have other folders pending. Instead, print a warning for the current failing parent-folder, set ret to 1 and break off the loop at this point. This allows to finish the other pending folders without issues.
122 lines
5.6 KiB
Plaintext
122 lines
5.6 KiB
Plaintext
sbase - suckless unix tools
|
|
===========================
|
|
|
|
sbase is a collection of unix tools that are inherently portable
|
|
across UNIX and UNIX-like systems.
|
|
|
|
The following tools are implemented ('*' == finished, '#' == UTF-8 support,
|
|
'=' == implicit UTF-8 support, '|' == audited):
|
|
|
|
UTILITY POSIX 2008 COMPLIANT MISSING OPTIONS
|
|
------- -------------------- ---------------
|
|
=*| basename yes none
|
|
=* cal yes none
|
|
=*| cat yes none
|
|
=* chgrp yes none
|
|
=* chmod yes none
|
|
=* chown yes none
|
|
=* chroot non-posix none
|
|
=* cksum yes none
|
|
=* cmp yes none
|
|
#* cols non-posix none
|
|
=* comm yes none
|
|
= cp yes none (-i)
|
|
=* cron non-posix none
|
|
#* cut yes none
|
|
=*| date yes none
|
|
=*| dirname yes none
|
|
=* du yes none
|
|
=*| echo yes none
|
|
=*| env yes none
|
|
#* expand yes none
|
|
#* expr yes none
|
|
=*| false yes none
|
|
= find yes none
|
|
#* fold yes none
|
|
=* grep yes none
|
|
=* head yes none
|
|
=*| hostname non-posix none
|
|
=* kill yes none
|
|
=*| link yes none
|
|
=* ln yes none
|
|
=* logger yes none
|
|
=* logname yes none
|
|
= ls no (-C), -S, -f, -m, -s, -x
|
|
=*| md5sum non-posix none
|
|
=* mkdir yes none
|
|
=* mkfifo yes none
|
|
=* mktemp non-posix none
|
|
=* mv yes none (-i)
|
|
=* nice yes none
|
|
= nl no -d, -f, -h, -l, -p
|
|
=* nohup yes none
|
|
#* paste yes none
|
|
=*| printenv non-posix none
|
|
#* printf yes none
|
|
=* pwd yes none
|
|
= readlink non-posix none
|
|
=* renice yes none
|
|
=*| rm yes none (-i)
|
|
=*| rmdir yes none
|
|
# sed
|
|
seq non-posix none
|
|
=*| setsid non-posix none
|
|
=*| sha1sum non-posix none
|
|
=*| sha256sum non-posix none
|
|
=*| sha512sum non-posix none
|
|
=*| sleep yes none
|
|
sort no -m, -o, -d, -f, -i
|
|
=* split yes none
|
|
=*| sponge non-posix none
|
|
#* strings yes none
|
|
=* sync non-posix none
|
|
=* tail yes none
|
|
=* tar non-posix none
|
|
=* tee yes none
|
|
=* test yes none
|
|
= time yes none
|
|
=* touch yes none
|
|
#* tr yes none
|
|
=*| true yes none
|
|
=*| tty yes none
|
|
=* uname yes none
|
|
#* unexpand yes none
|
|
=* uniq yes none
|
|
=*| unlink yes none
|
|
=* uudecode yes none
|
|
=* uuencode yes none
|
|
#* wc yes none
|
|
= xargs no -I, -L, -p, -s, -t, -x
|
|
=*| yes non-posix none
|
|
|
|
The complement of sbase is ubase[1] which is Linux-specific and
|
|
provides all the non-portable tools. Together they are intended to
|
|
form a base system similar to busybox but much smaller and suckless.
|
|
|
|
Building
|
|
--------
|
|
|
|
To build sbase, simply type make. You may have to fiddle with
|
|
config.mk depending on your system.
|
|
|
|
You can also build sbase-box, which generates a single binary
|
|
containing all the required tools. You can then symlink the
|
|
individual tools to sbase-box or run: make sbase-box-install
|
|
|
|
Ideally you will want to statically link sbase. If you are on Linux
|
|
we recommend using musl-libc[2].
|
|
|
|
Portability
|
|
-----------
|
|
|
|
sbase has been compiled on a variety of different operating systems,
|
|
including Linux, *BSD, OSX, Haiku, Solaris, SCO OpenServer and others.
|
|
|
|
Various combinations of operating systems and architectures have also
|
|
been built.
|
|
|
|
You can build sbase with gcc, clang, tcc, nwcc and pcc.
|
|
|
|
[1] http://git.suckless.org/ubase/
|
|
[2] http://www.musl-libc.org/
|