            ****************************************
            **             MUDShell 1.1           **
            **                                    **
            **   Copyleft 2000, Henning Strandin  **
            **          (henning@roxen.com)       **
            ****************************************


   "Turn every command line task into a multi-user adventure"


** INDEX **

	Introduction
	Requirements
	Installation
	Usage
	Room descriptions and skins
	Changes history
	Bugs
	ToDo


** INTRODUCTION **

	mdsh (a.k.a MUDShell) is a piece of productivity software
	that will make your command line environment "MUD like."
	It consists of a small perl script, and some shell functions.
	Because of the shell functions, it currently only works in bash.


** REQUIREMENTS **

	The bash shell
	Perl 5
	The Term::ANSIColor perl module
	The "file" command line program


** INSTALLATION **

	1. Make sure that mdsh.pl is in $HOME/mdsh.

	2. Install the Term::ANSIColor perl module if you don't
	   have it already; MUDShell uses pretty colors.
	   (Try http://www.cpan.com)

	3. Run install_mdsh.sh (You will need the root password if
           this is the first install on this system).

	4. Copy the contents of shell_functions to the end of your
	   ~/.bashrc.

	5. Start a new shell session, or type "source shell_functions"
	   at the command line.

       (6. Set your skin preference in mdsh.pl)


** USAGE **

	MUDShell at the moment adds six new commands:


	go <directory|north|n>

	Move to another "room." 
	When you enter a new room, several things are displayed:
	    Your present location.
	    A room description, if there is one
	    Other people presently in the room
	    The number of files in the room
	    What exits are available from this room


	examine <object>

	Object can be a file in the current room, a directory
	accessible from here, or a person present in the room.


	take <file>

	Picks up a file.
	Files with the same name are numbered: foo foo.1 foo.2 etc.
	You can of course pick up several files at once (and use
	file-globs to do it, but see "drop" below for how to drop
	several files at once).


	drop <file>

	Drops the named file. <file> is actually a regexp, so you
	can drop several files at once. However, don't try to use
	file-globs or unqouted regexps with drop, since the shell
	will expand it _before_ it is sent to drop. I.e.
	"drop *" will try to drop all the files that are in your
	current directory, which probably won't work. To drop all
	files, use "drop '*.'".


	inventory

	Prints the current contents of your inventory.


	use <file>

	File association.

	use examines the file and tries to put it to good use. If
	it is an executable, it executes it (duh). If the filename
	begins with 'x' it forks before launching it, otherwise it
	launches in the shell. If it's not an executable file, it
	uses the "file" command to analyze the file, and then
	$HOME/mdsh/mdsh.magic to try to open it with an appropriate
	application. The application name in mdsh.magic can be followed
	by ' &' in which case mdsh.pl will fork before launching it.
	Currently mdsh.magic only matches text files, pdf files, and
	some image formats. Feel free to add more file types. Run
	'file' on the filetype you want to add to see what the type's
	unique identifier is. The format of mdsh.magic should be
	obvious (commas are used to separate file types and
	application names, and a tab separates types and applications
	from each other).


** ROOM DESCRIPTIONS AND SKINS **

	Every "room" (directory) can contain a .room_description file
	that will be printed when entering that room or running the
	"examine" command without arguments. Two example files are
	provided, in the $HOME/mdsh directory and the $HOME directory.

	If a .room_description file is not found, mdsh.pl tries to open
	a skin named by the $skin variable in mdsh.pl. The skin file
	should reside either in $HOME/mdsh/skins or in /etc/mdsh/skins
	(and they are searched in that order).
	If the skin file contains a description of the current room it
	is printed. See the 'default' skin for the format.


** CHANGES HISTORY **

	1.1
	* Added 'Changes history' section to README ;-)
	* 'use' can/will now launch X apps in new forked process.
	* 'go .' in shell_functions messed up things, removed.
	* Some trivial output changes.


** BUGS **

	No way to examine a directory if there is a person with the
	same name in the cwd (it will examine the person).


** TODO **

	say
	Copies text to another user's tty (who's in the same
	directory). Use writevt?

	Means to kill a user and take his possessions (carried files,
	processes?).

	Any number of other multi-user oriented commands.
