# status

has been in use for quite some time.

# intro

ircfs is an irc client with a 9p2000 file system interface, an irc
library and a tk front-end for the filesystem (wm/irc).  all written
in limbo for use under inferno.

see the manual pages for details, ircfs(4) and wm-irc(1).

# download

the latest version can be found at:

# install

modify "mkconfig" if you do not have $ROOT set.  run "mk install"
to compile and install.  NOTE: just "mk" does not work, since the
module files (*.m) will be missing and compilation of source files
(*.b) will fail.

when building from within inferno, insert SYSHOST=Inferno and ROOT=
in the mk invocations to override the values in the mkconfig.

# licence & author

this code is in the public domain.  the code is written by mechiel
lukkien, reachable at

# example

to run ircfs on a remote machine and export its files, you can do the following.

on the remote machines, to start ircfs:

	once: mkdir /mnt/irc /mnt/irc/freenode $home/irclog $home/irclog/freenode
	emu -c0
	mount {ircfs -d -l $home/irclog/freenode -a net!!6667 -n ircfsuser freenode} /mnt/irc/freenode
	styxlisten -A net!*!6872 {export /mnt/irc}

and to mount the ircfs tree and start the gui wm/irc:

	once: mkdir /mnt/irc
	mount net!remotemachine!6872 /mnt/irc
	wm/irc -d /mnt/irc/freenode &

# example, with authentication

you should set up authentication, this should be outside the scope of this document...
to set this up, first run a signer:

	auth/changelogin yourusername	# enter password

make the $home/keyring/ircfs file:

	getauthinfo ircfs	# enter signer address and password

now either copy the ircfs to the styx client and server,
or do the getauthinfo again.  finally, replace the -A in
the mount and styxlisten calls earlier by "-k $home/keyring/ircfs".

# todo

- ircfs & wm/irc: make ircfs keep track of unread data.  when a client opens a file and reads the history, ircfs will send a "new data" meta-message when it switches from already-read to not-yet-read data.  ircfs should also indicate which data it wrote, so wm/irc's can mark the window as clean.
- wm/irc: make adding a window faster (tk-wise probably), so startup with many windows becomes faster.

- ircfs: when people come online (in channel) and have a window, put a meta-message in the window?  idea from sqweek
- read irc rfc's, try on many networks/channels
- ircfs: perhaps add the more obscure commands: info, ison, links, list, lusers, motd, note, servlist, squery?, stats, time, trace, version, userhost, whowas