Skip to content
Trimmed-down bourne-like shell
C Makefile QMake
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
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
	
	
	
You can’t perform that action at this time.