Create ethermess.1
This commit is contained in:
parent
69dcd4640d
commit
a0cf20f797
9
Makefile
9
Makefile
|
@ -3,6 +3,8 @@ PREFIX ?= /usr/local
|
||||||
EXEC_PREFIX ?= $(PREFIX)
|
EXEC_PREFIX ?= $(PREFIX)
|
||||||
BINDIR ?= $(EXEC_PREFIX)/bin
|
BINDIR ?= $(EXEC_PREFIX)/bin
|
||||||
LIBEXECDIR ?= $(EXEC_PREFIX)/libexec
|
LIBEXECDIR ?= $(EXEC_PREFIX)/libexec
|
||||||
|
DATAROOTDIR ?= $(PREFIX)/share
|
||||||
|
MANDIR ?= $(DATAROOTDIR)/man
|
||||||
|
|
||||||
CFLAGS += -Os -g -Wall -Wextra -pedantic
|
CFLAGS += -Os -g -Wall -Wextra -pedantic
|
||||||
CPPFLAGS +=
|
CPPFLAGS +=
|
||||||
|
@ -13,6 +15,7 @@ SED ?= sed
|
||||||
BINS := ethermess
|
BINS := ethermess
|
||||||
LIBEXECS := ethermess-backend
|
LIBEXECS := ethermess-backend
|
||||||
TOOLS := ethertype-dump arp-request
|
TOOLS := ethertype-dump arp-request
|
||||||
|
MAN1S := ethermess.1
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .c .o
|
.SUFFIXES: .c .o
|
||||||
|
@ -40,11 +43,12 @@ ethermess-backend: ethermess-backend.o
|
||||||
.c.o:
|
.c.o:
|
||||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
|
$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
|
||||||
|
|
||||||
install: $(BINS) $(LIBEXECS)
|
install: $(BINS) $(LIBEXECS) $(MANS)
|
||||||
mkdir -p $(DESTDIR)$(BINDIR)
|
mkdir -p $(DESTDIR)$(BINDIR)
|
||||||
mkdir -p $(DESTDIR)$(LIBEXECDIR)
|
mkdir -p $(DESTDIR)$(LIBEXECDIR)
|
||||||
install $(BINS) $(DESTDIR)$(BINDIR)
|
install $(BINS) $(DESTDIR)$(BINDIR)
|
||||||
install $(LIBEXECS) $(DESTDIR)$(LIBEXECDIR)
|
install $(LIBEXECS) $(DESTDIR)$(LIBEXECDIR)
|
||||||
|
cp $(MAN1S) $(DESTDIR)$(MANDIR)/man1
|
||||||
@echo
|
@echo
|
||||||
@echo '--------------------------------------------------------------------------------'
|
@echo '--------------------------------------------------------------------------------'
|
||||||
@echo 'To finish the installation, set the CAP_NET_RAW on $(LIBEXECDIR)/ethermess-backend with'
|
@echo 'To finish the installation, set the CAP_NET_RAW on $(LIBEXECDIR)/ethermess-backend with'
|
||||||
|
@ -58,7 +62,8 @@ install: $(BINS) $(LIBEXECS)
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
cd $(DESTDIR)$(BINDIR) && rm $(BINS)
|
cd $(DESTDIR)$(BINDIR) && rm $(BINS)
|
||||||
cs $(DESTDIR)$(LIBEXECDIR) && rm $(LIBEXECS)
|
cd $(DESTDIR)$(LIBEXECDIR) && rm $(LIBEXECS)
|
||||||
|
cd $(DESTDIR)$(MANDIR)/man1 && rm $(MAN1S)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(BINS) $(LIBEXECS) $(TOOLS) *.o
|
rm -f $(BINS) $(LIBEXECS) $(TOOLS) *.o
|
||||||
|
|
|
@ -0,0 +1,116 @@
|
||||||
|
.Dd July 07, 2019
|
||||||
|
.Dt ETHERMESS 1
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm ethermess
|
||||||
|
.Nd simple messenger over bare Ethernet
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.Nm
|
||||||
|
.Ar interface
|
||||||
|
.Ar nick
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
.Nm
|
||||||
|
allows sending and receiving messages over Ethernet or Wi-Fi networks using
|
||||||
|
the EtherMess protocol.
|
||||||
|
Since EtherMess protocol uses bare Ethernet frames as its transport, IP
|
||||||
|
connectivity is not needed.
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
|
.Nm
|
||||||
|
command requires two arguments:
|
||||||
|
.Bl -tag -width Ds
|
||||||
|
.It Ar interface
|
||||||
|
Network interface to talk over.
|
||||||
|
.It Ar nick
|
||||||
|
The nick to use for yourself.
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
.Nm
|
||||||
|
uses a very bare-bones line-oriented user interface.
|
||||||
|
.Pp
|
||||||
|
Lines that start with
|
||||||
|
.Sq /
|
||||||
|
are considered commands.
|
||||||
|
Lines that do not will be sent as messages to the default target.
|
||||||
|
.Ss Commands
|
||||||
|
.Bl -tag -width Ds
|
||||||
|
.It / Ar message
|
||||||
|
Send a message to the default target.
|
||||||
|
This form is only really useful for sending a message that starts with
|
||||||
|
.Sq / .
|
||||||
|
.It /msg Ar target Ar message
|
||||||
|
Send a message to the specified target.
|
||||||
|
.It /status Op Ar target
|
||||||
|
Display the status of either a target (if specified) or yourself (if not).
|
||||||
|
.It /peers
|
||||||
|
List all the peers that
|
||||||
|
.Nm
|
||||||
|
knows about.
|
||||||
|
.It /available
|
||||||
|
Set your status to available.
|
||||||
|
.It /unavailable
|
||||||
|
Set your status to unavailable
|
||||||
|
.It /nick Op Ar nick
|
||||||
|
Set your nick to the one specified or display the current one.
|
||||||
|
.It /target Ar target
|
||||||
|
Set the default target.
|
||||||
|
.El
|
||||||
|
.Ss Nick and Target
|
||||||
|
The full form of a nick as used by
|
||||||
|
.Nm
|
||||||
|
is
|
||||||
|
.Dq ~nick .
|
||||||
|
Here the
|
||||||
|
.Sq ~
|
||||||
|
refers to the fact that it is set by the user and untrusted, and also helps
|
||||||
|
to differentiate it from a MAC address.
|
||||||
|
In most cases you can drop the
|
||||||
|
.Sq ~
|
||||||
|
without any effect.
|
||||||
|
.Pp
|
||||||
|
A target can be either a nick or a raw MAC address.
|
||||||
|
.Ss Messages
|
||||||
|
A message not from your default target will generally look like:
|
||||||
|
.Bd -literal -compact
|
||||||
|
16:20:03 < ~hutenosa> Lorem ipsum.
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
A message from your default target will instead look like:
|
||||||
|
.Bd -literal -compact
|
||||||
|
16:20:03 <*~hutenosa> Lorem ipsum.
|
||||||
|
.Ed
|
||||||
|
.Ss Status
|
||||||
|
There are four main types of status notification: join, quit, status
|
||||||
|
change, and nick change.
|
||||||
|
.Pp
|
||||||
|
The maximal form of a join is
|
||||||
|
.Bd -literal -compact
|
||||||
|
20:08:19 >>> ~nick (status) [b7:00:f0:9f:a4:94]
|
||||||
|
.Ed
|
||||||
|
If the status is available, the
|
||||||
|
.Dq (status)
|
||||||
|
part will not be present.
|
||||||
|
.Pp
|
||||||
|
A normal quit looks like
|
||||||
|
.Bd -literal -compact
|
||||||
|
18:09:22 <<< ~nick [b7:00:f0:9f:8d:86]
|
||||||
|
.Ed
|
||||||
|
And one due to a timeout looks like
|
||||||
|
.Bd -literal -compact
|
||||||
|
18:14:23 <<< (timeout) ~nick [b7:00:f0:9f:8d:86]
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
A status change looks like
|
||||||
|
.Bd -literal -compact
|
||||||
|
19:06:49 === ~nick (status) [b7:00:f0:9f:8d:91]
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
A nick change looks like
|
||||||
|
.Bd -literal -compact
|
||||||
|
03:00:40 === ~oldnick -> ~newnick [b7:00:f0:9f:98:85]
|
||||||
|
.Ed
|
||||||
|
.Sh EXIT STATUS
|
||||||
|
.Nm
|
||||||
|
exit with status code 0 if it is exiting on user command and 1 if it is exiting due to backend having quit.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr ethermess 7
|
Loading…
Reference in New Issue