Cool idea. Wish it supported Bash 3 (did read the note on that). For some strange reason, sourcing Lib/Array/Intersect.sh is an infinite loop. The full library, apart from that file, sources in a few seconds which isn't terrible:
$ time { . lib/oo-bootstrap.sh ; for f in `find lib/ -type f -name '*.sh' -not -name oo-bootstrap.sh` ; do echo $f && source $f ; done ; }
lib/Array/Contains.sh
lib/Array/List.sh
lib/Array/Reverse.sh
lib/String/GetSpaces.sh
lib/String/IsNumber.sh
lib/String/SanitizeForVariable.sh
lib/String/SlashReplacement.sh
lib/String/UUID.sh
lib/TypePrimitives/array.sh
lib/TypePrimitives/boolean.sh
lib/TypePrimitives/integer.sh
lib/TypePrimitives/map.sh
lib/TypePrimitives/string.sh
lib/UI/Color.sh
lib/UI/Console.sh
lib/UI/Cursor.sh
lib/util/bash4.sh
lib/util/class.sh
lib/util/command.sh
lib/util/exception.sh
lib/util/log.sh
lib/util/namedParameters.sh
lib/util/pipe.sh
lib/util/test.sh
lib/util/tryCatch.sh
lib/util/type.sh
lib/util/variable.sh
real 0m2.490s
user 0m1.240s
sys 0m0.834s
Sadly it broke my already installed bash completion: $ ls # + <TAB>
x UNCAUGHT EXCEPTION: quoted
gsed: -e expression #1, char 2: invalid usage of line address 0
|} [bash_completion:0]
|} * _filedir [bash_completion:1196]
|} x COMPREPLY=( $( compgen -P "$prefix" -W "${COMPREPLY[@]}" ) ) [bash_completion:1196]
! Press [CTRL+C] to exit or [Return] to continue execution.
I don't understand why somebody would use Bash in this way though, maybe just for fun?