Introduction
Introduction Statistics Contact Development Disclaimer Help
sbase-box: Add -i flag - sbase - suckless unix tools
git clone git://git.suckless.org/sbase
Log
Files
Refs
README
LICENSE
---
commit 986bbb9253526d29e056ca57ce1ed87fbf65f920
parent 58ec1f628525b538cf52bf8f1bda1068dd0929f2
Author: Roberto E. Vargas Caballero <[email protected]>
Date: Tue, 26 Sep 2023 20:27:08 +0200
sbase-box: Add -i flag
Diffstat:
M Makefile | 9 +++------
M scripts/mkbox | 36 +++++++++++++++++++++++++++++…
2 files changed, 39 insertions(+), 6 deletions(-)
---
diff --git a/Makefile b/Makefile
@@ -237,14 +237,11 @@ sbase-box: $(BIN)
sbase-box-install: sbase-box
mkdir -p $(DESTDIR)$(PREFIX)/bin
+ mkdir -p $(DESTDIR)$(MANPREFIX)/man1
cp -f sbase-box $(DESTDIR)$(PREFIX)/bin
chmod 755 $(DESTDIR)$(PREFIX)/bin/sbase-box
- for f in $(BIN); do ln -sf sbase-box $(DESTDIR)$(PREFIX)/bin/"$$f"; do…
- ln -sf sbase-box $(DESTDIR)$(PREFIX)/bin/[
- mv -f $(DESTDIR)$(PREFIX)/bin/xinstall $(DESTDIR)$(PREFIX)/bin/install
- mkdir -p $(DESTDIR)$(MANPREFIX)/man1
- for m in $(MAN); do sed "s/^\.Os sbase/.Os sbase $(VERSION)/g" < "$$m"…
- cd $(DESTDIR)$(MANPREFIX)/man1 && chmod 644 $(MAN)
+ $(DESTDIR)$(PREFIX)/bin/sbase-box -i $(DESTDIR)$(PREFIX)/bin/
+ cp -f $(MAN) $(DESTDIR)$(MANPREFIX)/man1/
mv -f $(DESTDIR)$(MANPREFIX)/man1/xinstall.1 $(DESTDIR)$(MANPREFIX)/ma…
sbase-box-uninstall: uninstall
diff --git a/scripts/mkbox b/scripts/mkbox
@@ -8,7 +8,10 @@ mkdir -p build
cp *.h build
cat > build/sbase-box.c <<EOF
+#include <unistd.h>
+
#include <libgen.h>
+#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -38,6 +41,35 @@ done)
{NULL},
};
+static void
+install(char *path)
+{
+ int r;
+ struct cmd *bp;
+ char fname[FILENAME_MAX];
+
+ if (path == NULL) {
+ fputs("sbase-box [-i path] [command]\n", stderr);
+ exit(1);
+ }
+
+ for (bp = cmds; bp->name; ++bp) {
+ r = snprintf(fname, sizeof(fname), "%s/%s", path, bp->name);
+ if (r < 0 || r >= sizeof(fname)) {
+ fprintf(stderr,
+ "sbase-box: destination path truncated for '%s…
+ bp->name);
+ exit(1);
+ }
+ if (symlink("sbase-box", fname) < 0) {
+ fprintf(stderr,
+ "sbase-box: %s: %s\n",
+ bp->name, strerror(errno));
+ exit(1);
+ }
+ }
+}
+
int
main(int argc, char *argv[])
{
@@ -46,6 +78,10 @@ main(int argc, char *argv[])
if(!strcmp(s,"sbase-box")) {
argc--; argv++;
+ if (strcmp(argv[0], "-i") == 0) {
+ install(argv[1]);
+ exit(0);
+ }
s = basename(argv[0]);
}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.