Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close
# 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:

	http://www.ueber.net/code/r/ircfs


# 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 mechiel@ueber.net.


# 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
	ndb/cs
	mount {ircfs -d -l $home/irclog/freenode -a net!irc.freenode.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
	ndb/cs
	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:

	ndb/cs
	auth/createsignerkey
	svc/auth
	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

Recent activity

mjl

Commits by mjl were pushed to mjl/ircfs

1ba7ba8 - after resizing, scroll windows that had last line visible.
mjl

Commits by mjl were pushed to mjl/ircfs

cdc0bd3 - fix indenting of long lines. remove dead code. cosmetics.
mjl

Commits by mjl were pushed to mjl/ircfs

f9c9531 - man page improvements, and better scrolling.
mjl

Commits by mjl were pushed to mjl/ircfs

fb003aa - don't set fonts explicitly in wm/irc, be happy with tk default fonts.
mjl

Commits by mjl were pushed to mjl/ircfs

9fe23b5 - make ircfs handle reads smaller than a line on Qdata files. fix bug tracking history data. ircfs used to assume the user would read at ...
mjl

Commits by mjl were pushed to mjl/ircfs

1224731 - do not crash on wstat on not-open data files. found by fr1tz on #plan9. 9pfuse/linux 9p will do a wstat of lenght=0 when doing a ...
mjl

Commits by mjl were pushed to mjl/ircfs

f905ee9 - remove -D flag from ircfs, people can use mount -S instead. add "debug" ctl message for setting dflag at runtime.
mjl

Commits by mjl were pushed to mjl/ircfs

385f539 - prevent crash when reading "nick" while not connected. add default mkconfig.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.