mirror of git://git.suckless.org/sbase
d24ef864cb
break out the non printable character to ? code into a makeprint() function so it can be used both in output() and lsdir() |
||
---|---|---|
libutf | ||
libutil | ||
LICENSE | ||
Makefile | ||
README | ||
TODO | ||
arg.h | ||
basename.1 | ||
basename.c | ||
cal.1 | ||
cal.c | ||
cat.1 | ||
cat.c | ||
chgrp.1 | ||
chgrp.c | ||
chmod.1 | ||
chmod.c | ||
chown.1 | ||
chown.c | ||
chroot.1 | ||
chroot.c | ||
cksum.1 | ||
cksum.c | ||
cmp.1 | ||
cmp.c | ||
cols.1 | ||
cols.c | ||
comm.1 | ||
comm.c | ||
compat.h | ||
config.mk | ||
cp.1 | ||
cp.c | ||
cron.1 | ||
cron.c | ||
crypt.h | ||
cut.1 | ||
cut.c | ||
date.1 | ||
date.c | ||
dirname.1 | ||
dirname.c | ||
du.1 | ||
du.c | ||
echo.1 | ||
echo.c | ||
ed.1 | ||
ed.c | ||
env.1 | ||
env.c | ||
expand.1 | ||
expand.c | ||
expr.1 | ||
expr.c | ||
false.1 | ||
false.c | ||
find.1 | ||
find.c | ||
flock.1 | ||
flock.c | ||
fold.1 | ||
fold.c | ||
fs.h | ||
getconf.1 | ||
getconf.c | ||
getconf.sh | ||
grep.1 | ||
grep.c | ||
head.1 | ||
head.c | ||
hostname.1 | ||
hostname.c | ||
join.1 | ||
join.c | ||
kill.1 | ||
kill.c | ||
link.1 | ||
link.c | ||
ln.1 | ||
ln.c | ||
logger.1 | ||
logger.c | ||
logname.1 | ||
logname.c | ||
ls.1 | ||
ls.c | ||
md5.h | ||
md5sum.1 | ||
md5sum.c | ||
mkdir.1 | ||
mkdir.c | ||
mkfifo.1 | ||
mkfifo.c | ||
mktemp.1 | ||
mktemp.c | ||
mv.1 | ||
mv.c | ||
nice.1 | ||
nice.c | ||
nl.1 | ||
nl.c | ||
nohup.1 | ||
nohup.c | ||
od.1 | ||
od.c | ||
paste.1 | ||
paste.c | ||
pathchk.1 | ||
pathchk.c | ||
printenv.1 | ||
printenv.c | ||
printf.1 | ||
printf.c | ||
pwd.1 | ||
pwd.c | ||
queue.h | ||
readlink.1 | ||
readlink.c | ||
renice.1 | ||
renice.c | ||
rm.1 | ||
rm.c | ||
rmdir.1 | ||
rmdir.c | ||
sed.1 | ||
sed.c | ||
seq.1 | ||
seq.c | ||
setsid.1 | ||
setsid.c | ||
sha1.h | ||
sha1sum.1 | ||
sha1sum.c | ||
sha224.h | ||
sha224sum.1 | ||
sha224sum.c | ||
sha256.h | ||
sha256sum.1 | ||
sha256sum.c | ||
sha384.h | ||
sha384sum.1 | ||
sha384sum.c | ||
sha512-224.h | ||
sha512-224sum.1 | ||
sha512-224sum.c | ||
sha512-256.h | ||
sha512-256sum.1 | ||
sha512-256sum.c | ||
sha512.h | ||
sha512sum.1 | ||
sha512sum.c | ||
sleep.1 | ||
sleep.c | ||
sort.1 | ||
sort.c | ||
split.1 | ||
split.c | ||
sponge.1 | ||
sponge.c | ||
strings.1 | ||
strings.c | ||
sync.1 | ||
sync.c | ||
tail.1 | ||
tail.c | ||
tar.1 | ||
tar.c | ||
tee.1 | ||
tee.c | ||
test.1 | ||
test.c | ||
text.h | ||
tftp.1 | ||
tftp.c | ||
time.1 | ||
time.c | ||
touch.1 | ||
touch.c | ||
tr.1 | ||
tr.c | ||
true.1 | ||
true.c | ||
tsort.1 | ||
tsort.c | ||
tty.1 | ||
tty.c | ||
uname.1 | ||
uname.c | ||
unexpand.1 | ||
unexpand.c | ||
uniq.1 | ||
uniq.c | ||
unlink.1 | ||
unlink.c | ||
utf.h | ||
util.h | ||
uudecode.1 | ||
uudecode.c | ||
uuencode.1 | ||
uuencode.c | ||
wc.1 | ||
wc.c | ||
which.1 | ||
which.c | ||
whoami.1 | ||
whoami.c | ||
xargs.1 | ||
xargs.c | ||
xinstall.1 | ||
xinstall.c | ||
yes.1 | ||
yes.c |
README
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: '#' -> UTF-8 support, '=' -> Implicit UTF-8 support, '*' -> Finished, '|' -> Audited, 'o' -> POSIX 2013 compliant, 'x' -> Non-POSIX, '0' -> NUL handling, '()' -> Petty flag UTILITY MISSING ------- ------- 0=*|o basename . 0=*|o cal . 0=*|o cat . 0=*|o chgrp . 0=*|o chmod . 0=*|o chown . 0=*|x chroot . 0=*|o cksum . 0=*|o cmp . 0#*|x cols . 0=*|o comm . 0=*|o cp (-i) 0=*|x cron . 0#*|o cut . 0=*|o date . 0=*|o dirname . 0=*|o du . 0=*|o echo . o ed . 0=*|o env . 0#*|o expand . 0#*|o expr . 0=*|o false . 0= find . 0=* x flock . 0#*|o fold . 0=*|o getconf (-v) =*|o grep . 0=*|o head . 0=*|x hostname . 0=*|x install . 0=* o join . 0=*|o kill . 0=*|o link . 0=*|o ln . 0=*|o logger . 0=*|o logname . 0#* o ls (-C, -k, -m, -p, -s, -x) 0=*|x md5sum . 0=*|o mkdir . 0=*|o mkfifo . 0=*|x mktemp . 0=*|o mv (-i) 0=*|o nice . 0#*|o nl . 0=*|o nohup . 0=*|o od . 0#* o pathchk . #*|o paste . 0=*|x printenv . 0#*|o printf . 0=*|o pwd . 0=*|x readlink . 0=*|o renice . 0=*|o rm (-i) 0=*|o rmdir . # sed . 0=*|x seq . 0=*|x setsid . 0=*|x sha1sum . 0=* x sha224sum . 0=*|x sha256sum . 0=* x sha238sum . 0=*|x sha512sum . 0=* x sha512-224sum . 0=* x sha512-256sum . 0=*|o sleep . 0#*|o sort . 0=*|o split . 0=*|x sponge . 0#*|o strings . 0=*|x sync . 0=*|o tail . 0=*|x tar . 0=*|o tee . 0=*|o test . 0=*|x tftp . 0=*|o time . 0=*|o touch . 0#*|o tr . 0=*|o true . 0=* o tsort . 0=*|o tty . 0=*|o uname . 0#*|o unexpand . 0=*|o uniq . 0=*|o unlink . 0=*|o uudecode . 0=*|o uuencode . 0#*|o wc . 0=*|x which . 0=*|x whoami . 0=*|o xargs (-p) 0=*|x yes . 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/