aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPS <p@0x53.net>2026-02-01 12:09:27 +0100
committerPS <p@0x53.net>2026-02-01 12:09:27 +0100
commit570eff1d9e14fc2c3c20f47cc0419064b0eea76d (patch)
tree841a433099df7f04b218c312f0a1824acfa80b59 /src
downloadlinux-supplements-570eff1d9e14fc2c3c20f47cc0419064b0eea76d.tar.gz
linux-supplements-570eff1d9e14fc2c3c20f47cc0419064b0eea76d.tar.bz2
linux-supplements-570eff1d9e14fc2c3c20f47cc0419064b0eea76d.zip
version 0.1.0.0
Diffstat (limited to 'src')
-rw-r--r--src/linux-supplements/deps-exe/powertool1
-rw-r--r--src/linux-supplements/deps-exe/set-ctrlaltdel1
-rw-r--r--src/linux-supplements/powertool.c35
-rw-r--r--src/linux-supplements/set-ctrlaltdel.c34
4 files changed, 71 insertions, 0 deletions
diff --git a/src/linux-supplements/deps-exe/powertool b/src/linux-supplements/deps-exe/powertool
new file mode 100644
index 0000000..e7187fe
--- /dev/null
+++ b/src/linux-supplements/deps-exe/powertool
@@ -0,0 +1 @@
+-lskarnet
diff --git a/src/linux-supplements/deps-exe/set-ctrlaltdel b/src/linux-supplements/deps-exe/set-ctrlaltdel
new file mode 100644
index 0000000..e7187fe
--- /dev/null
+++ b/src/linux-supplements/deps-exe/set-ctrlaltdel
@@ -0,0 +1 @@
+-lskarnet
diff --git a/src/linux-supplements/powertool.c b/src/linux-supplements/powertool.c
new file mode 100644
index 0000000..ecba369
--- /dev/null
+++ b/src/linux-supplements/powertool.c
@@ -0,0 +1,35 @@
+/* ISC license. */
+
+#include <unistd.h>
+#include <sys/reboot.h>
+
+#include <skalibs/sgetopt.h>
+#include <skalibs/strerr.h>
+
+#define USAGE "powertool -h | -p | -r"
+
+int main (int argc, char const *const *argv)
+{
+ int what = 0 ;
+ PROG = "powertool" ;
+ if(argc < 2) strerr_dieusage(100, USAGE);
+ {
+ subgetopt l = SUBGETOPT_ZERO ;
+ for (;;)
+ {
+ int opt = subgetopt_r(argc, argv, "hpr", &l) ;
+ if (opt == -1) break ;
+ switch (opt)
+ {
+ case 'h': if(what > 0) strerr_dieusage(100, USAGE) ; what = 1; break ;
+ case 'p': if(what > 0) strerr_dieusage(100, USAGE) ; what = 2; break ;
+ case 'r': if(what > 0) strerr_dieusage(100, USAGE) ; what = 3; break ;
+ default : strerr_dieusage(100, USAGE) ;
+ }
+ }
+ argc -= l.ind ; argv += l.ind ;
+ }
+ sync();
+ reboot(what == 3 ? RB_AUTOBOOT : what == 2 ? RB_POWER_OFF : RB_HALT_SYSTEM) ;
+ strerr_diefu1sys(111, "reboot()") ;
+}
diff --git a/src/linux-supplements/set-ctrlaltdel.c b/src/linux-supplements/set-ctrlaltdel.c
new file mode 100644
index 0000000..f200d42
--- /dev/null
+++ b/src/linux-supplements/set-ctrlaltdel.c
@@ -0,0 +1,34 @@
+/* ISC license. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sys/reboot.h>
+
+#include <skalibs/sgetopt.h>
+#include <skalibs/strerr.h>
+
+#define USAGE "set-ctrlaltdel -h | -s"
+
+int main (int argc, char const *const *argv)
+{
+ int what = 0 ;
+ PROG = "set-ctrlaltdel" ;
+ if(argc < 2) strerr_dieusage(100, USAGE);
+ {
+ subgetopt l = SUBGETOPT_ZERO ;
+ for (;;)
+ {
+ int opt = subgetopt_r(argc, argv, "hs", &l) ;
+ if (opt == -1) break ;
+ switch (opt)
+ {
+ case 'h': if(what > 0) strerr_dieusage(100, USAGE); what = 1; break;
+ case 's': if(what > 0) strerr_dieusage(100, USAGE); what = 2; break;
+ default : strerr_dieusage(100, USAGE);
+ }
+ }
+ argc -= l.ind ; argv += l.ind ;
+ }
+ if(reboot(what == 1 ? RB_ENABLE_CAD : RB_DISABLE_CAD) == -1)
+ strerr_diefu1sys(111, "reboot()") ;
+}