Trimmed-down bourne-like shell
C Makefile QMake
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Doxyfile
Makefile
README
TODO
argv.c
argv.h
command.c
command.h
dstring.c
dstring.h
exec.c
exec.h
input.c
input.h
main.c
memory.c
memory.h
task.c
task.h
util.c
util.h
yas.pro

README

--------------------------------------------------------------------------------
                             YetAnotherShell
--------------------------------------------------------------------------------
    Copyright (c) 2010 Hugues Bruant & Nicolas Paglieri. All rights reserved

  YetAnotherShell is a bourne-like shell written in C and licensed under GPL3.
--------------------------------------------------------------------------------


I. BUILD
	
	A qmake project file is provided. Compiling is just as easy as:
	$ qmake && make
	
	A default Makefile is provided in case qmake is not available.
	
	By default YAS uses readline as its input backend. If readline is not
	available it can be built with a simplified input backend. To disable
	the readline backend you can either :
		
		# comment out / remove the line "CONFIG += readline" from yas.prog
		
		# remove "-DYAS_USE_READLINE" and "-lreadline -lncurses" from the
		default Makefile
	
	A full rebuild is needed for the configuration change to take effect :
	$ make clean && qmake && make
	or, if using the default Makefile :
	$ make clean && make
	
	
II. USE
	
	$ yas
	The program then behaves like a standard shell.
	Type "exit" to quit.
	You can use "liste_ps" or "list_tasks" (same command) to get the  statuses
	of all the tasks running background.
	
	
	
III. DOCUMENTATION
	
	The documentation is provided as doxygen (see ./doc/html/index.html).
	You can regenerate it in case it has evolved or isn't present by doing :
	$ doxygen
	
	
	
IV. POSSIBLE IMPROVEMENTS
	
	# better error reporting (exec.c)
	# completion of executables in $PATH
	# management of user-defined variables
	# management of special variables ($0..$n $? $0)
	# complex redirections like >> 2>1 &>
	# implementation of && and ||
	# arithmetic expansion
	# logic, control flow & functions