shithub: fork

Download patch

ref: b15a74bec36352fca64f60f8a1dc3eef4c6b69c3
parent: dd001412977252214860b40f16b0948943e6638b
author: qwx <qwx@sciops.net>
date: Fri Aug 8 21:30:05 EDT 2025

kbdfs: re-add emergency warp, now with gefs

--- a/sys/src/cmd/aux/kbdfs/kbdfs.c
+++ b/sys/src/cmd/aux/kbdfs/kbdfs.c
@@ -397,6 +397,31 @@
 }
 
 void
+emergencywarp(void)
+{
+	int fd;
+
+	if(debug)
+		return;
+
+	if(access("/srv/gefs.cmd", AEXIST) == 0 && (fd = eopen("/srv/gefs.cmd", OWRITE)) >= 0){
+		fprint(fd, "halt\n");
+		close(fd);
+	}
+	if(access("/srv/cwfs.cmd", AEXIST) == 0 && (fd = eopen("/srv/cwfs.cmd", OWRITE)) >= 0){
+		fprint(fd, "halt\n");
+		close(fd);
+	}
+	if(access("/srv/hjfs.cmd", AEXIST) == 0 && (fd = eopen("/srv/hjfs.cmd", OWRITE)) >= 0){
+		fprint(fd, "halt\n");
+		close(fd);
+	}
+	fprint(2, "emergency warp!\n");
+	sleep(3000);
+	reboot();
+}
+
+void
 shutdown(void)
 {
 	if(notefd >= 0)
@@ -474,6 +499,9 @@
 
 	if(scan->caps && key.r<='z' && key.r>='a')
 		key.r += 'A' - 'a';
+
+	if(scan->ctl && scan->altgr && key.r == Kdel)
+		emergencywarp();
 
 	if(scan->ctl && scan->alt && key.r == Kdel){
 		if(scan->shift)
--