about summary refs log tree commit diff
path: root/extra/edit
diff options
context:
space:
mode:
Diffstat (limited to 'extra/edit')
-rw-r--r--extra/edit/Makefile28
-rwxr-xr-xextra/edit/configure44
-rw-r--r--extra/edit/pounce-edit.1123
3 files changed, 195 insertions, 0 deletions
diff --git a/extra/edit/Makefile b/extra/edit/Makefile
new file mode 100644
index 0000000..8bac3a6
--- /dev/null
+++ b/extra/edit/Makefile
@@ -0,0 +1,28 @@
+PREFIX ?= /usr/local
+BINDIR ?= ${PREFIX}/bin
+MANDIR ?= ${PREFIX}/man
+
+CFLAGS += -std=c11 -Wall -Wextra -Wpedantic
+LDADD.libtls = -ltls
+
+-include config.mk
+
+LDLIBS = ${LDADD.libtls}
+OBJS = edit.o xdg.o
+
+all: pounce-edit
+
+pounce-edit: ${OBJS}
+	${CC} ${LDFLAGS} ${OBJS} ${LDLIBS} -o $@
+
+clean:
+	rm -f ${OBJS} pounce-edit
+
+install: pounce-edit pounce-edit.1
+	install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1
+	install pounce-edit ${DESTDIR}${BINDIR}
+	install -m 644 pounce-edit.1 ${DESTDIR}${MANDIR}/man1
+
+uninstall:
+	rm -f ${DESTDIR}${BINDIR}/pounce-edit
+	rm -f ${DESTDIR}${MANDIR}/man1/pounce-edit.1
diff --git a/extra/edit/configure b/extra/edit/configure
new file mode 100755
index 0000000..e180aa5
--- /dev/null
+++ b/extra/edit/configure
@@ -0,0 +1,44 @@
+#!/bin/sh
+set -eu
+
+cflags() {
+	echo "CFLAGS += $*"
+}
+defstr() {
+	cflags "-D'$1=\"$2\"'"
+}
+defvar() {
+	defstr "$1" "$(pkg-config --variable=$3 $2)${4:-}"
+}
+ldadd() {
+	lib=$1; shift
+	echo "LDADD.${lib} = $*"
+}
+config() {
+	pkg-config --print-errors "$@"
+	cflags $(pkg-config --cflags "$@")
+	for lib; do ldadd $lib $(pkg-config --libs $lib); done
+}
+
+exec >config.mk
+
+for opt; do
+	case "${opt}" in
+		(--prefix=*) echo "PREFIX = ${opt#*=}" ;;
+		(--bindir=*) echo "BINDIR = ${opt#*=}" ;;
+		(--mandir=*) echo "MANDIR = ${opt#*=}" ;;
+		(*) echo "warning: unsupported option ${opt}" >&2 ;;
+	esac
+done
+
+case "$(uname)" in
+	(OpenBSD)
+		;;
+	(Linux)
+		cflags -D_GNU_SOURCE
+		config libtls
+		;;
+	(*)
+		config libtls
+		;;
+esac
diff --git a/extra/edit/pounce-edit.1 b/extra/edit/pounce-edit.1
new file mode 100644
index 0000000..eb66a95
--- /dev/null
+++ b/extra/edit/pounce-edit.1
@@ -0,0 +1,123 @@
+.Dd April  3, 2022
+.Dt POUNCE-EDIT 7
+.Os
+.
+.Sh NAME
+.Nm pounce-edit
+.Nd pounce configuration over IRC
+.
+.Sh SYNOPSIS
+.Nm
+.Op Fl v
+.Op Fl c Ar cert
+.Op Fl h Ar host
+.Op Fl k Ar priv
+.Op Fl p Ar port
+.Op Fl t Ar trust
+.Op Fl u Ar user
+.Op Fl w Ar pass
+.Ar config ...
+.
+.Sh DESCRIPTION
+The
+.Nm
+client provides
+.Xr pounce 1
+configuration editing
+over IRC.
+It accepts commands
+sent to the user's own nick.
+It writes its changes
+to the last configuration file
+listed on the command line.
+Configuration files
+are searched for
+in the same manner as
+.Xr pounce 1 .
+.
+.Pp
+The options are as follows:
+.Bl -tag -width Ds
+.It Fl c Ar cert
+Load the TLS client certificate from
+.Ar cert .
+If the private key
+is in a separate file,
+it is loaded with
+.Fl k .
+.
+.It Fl h Ar host
+Connect to
+.Ar host .
+The default is the value of
+.Cm local-host
+from the configuration files.
+.
+.It Fl p Ar port
+Connect to
+.Ar port .
+The default is the value of
+.Cm local-port
+from the configuration files,
+or 6697.
+.
+.It Fl t Ar trust
+Trust the self-signed certificate loaded from
+.Ar path
+and disable server name verification.
+.
+.It Fl u Ar user
+Set the username to
+.Ar user .
+The default username is
+.Dq pounce-edit .
+.
+.It Fl v
+Log IRC protocol to standard error.
+.
+.It Fl w Ar pass
+Log in with the server password
+.Ar pass .
+.El
+.
+.Sh COMMANDS
+Commands are sent as private messages
+to the user's own nick.
+Replies are sent as notices.
+.Bl -tag -width Ds
+.It Ic get Op Ar option
+Show the value of an option,
+or list all set options.
+.It Ic restart
+Restart
+.Xr pounce 1 .
+.It Ic set Ar option Op Ar value
+Set an option.
+.It Ic unset Ar option
+Unset an option.
+.El
+.
+.Sh FILES
+See
+.Xr pounce 1 .
+.
+.Sh EXAMPLES
+Inherit options from
+.Pa tilde.conf ,
+write changes to
+.Pa tilde.edit :
+.Bd -literal -offset indent
+$ pounce tilde.conf tilde.edit
+$ pounce-edit -c local.pem tilde.conf tilde.edit
+.Ed
+.
+.Sh AUTHORS
+.An June McEnroe Aq Mt june@causal.agency
+.
+.Sh BUGS
+Send mail to
+.Aq Mt list+pounce@causal.agency
+or join
+.Li #ascii.town
+on
+.Li irc.tilde.chat .