An update to the "lang" command-line tool for quickly scanning what languages are available on a Unix system, though I've only tested it on a Mac, and it only seems to really work 10.5 and up. Comments, updates and suggestions welcome.
Available as a
zip file download .
( sh ) ✂
#!/bin/sh
echo
languages="clang gcc erl gfortran 8g 6g ghc java lua perl php python ruby macruby gem fscript"
websystems="apachectl ant rails"
databases="mysql sqlite3"
versionsystems="cvs git hg svn"
other="xcodebuild"
shells="bash csh ksh tcsh zsh"
for language in $languages echo $websystems echo $databases echo $versionsystems echo $shells $other
do
if [ which $language ]
then
case $language in
clang ) clang --version 2>&1 | head -n 1 | awk '{ print "Clang",$4 }';;
gcc ) gcc --version | grep gcc | awk '{ print "GCC",$3 }';;
erl ) erl +V 2>&1 | awk '{ print $1, $6 }';;
gfortran ) gfortran --version | grep GCC | awk '{ print "GFortran",$4 }';;
8g ) 8g -V | awk '{ print "Go",$3,"(32-bit)" }';;
6g ) 6g -V | awk '{ print "Go",$3,"(64-bit)" }';;
ghc ) ghc --version | awk '{ print $4, $8 }';;
java ) java -fullversion 2>&1 | sed 's/full version //' | sed 's/\"//g' | sed 's/java/Java/';;
lua ) lua -e 'print( _VERSION )';;
perl ) perl -version | grep 'is perl' | awk '{ print "Perl",$4 }';;
php ) php -v | grep PHP | grep built | awk '{print $1,$2}';;
python ) python -V;;
ruby ) ruby -v | awk '{ print "Ruby",$2 }';;
macruby ) /usr/local/bin/macruby -v | awk '{ print $1,$3,$4,$5; }';;
gem ) gem -v | awk '{ print "Ruby Gem",$1 }';;
fscript ) echo; echo "F-Script:"; fscript -v;;
apachectl ) apachectl -v | grep Apache | awk '{ print $3}' | sed 's/\// /';;
ant ) ant -version | awk '{ print $1,$2,$4 }';;
rails ) rails -v;;
mysql ) mysql --version | awk '{ print $1, $5 }';;
sqlite3 ) sqlite3 --version | awk '{ print "SQLite",$1 }';;
cvs ) cvs --version | grep client | sed 's/ (client\/server)//' | sed 's/ (CVS)//';;
git ) git --version | awk '{print $1,$3}';;
hg ) hg --version | head -n 1 | awk '{ split( $0,a," " ); print a[1],a[5] }' | sed 's/)//';;
svn ) svn --version | grep 'svn, version' | sed 's/, version//' | sed 's/svn/Subversion/';;
xcodebuild ) echo; xcodebuild -version | grep Xcode;;
bash ) bash --version | head -n 1 | awk '{ print "bash: ",$2, $4 }';;
csh ) csh --version | awk '{ print "csh: ",$1, $2 }';;
ksh ) ksh 'echo ${.sh.version}' | awk '{ print "ksh: ", $2, $3 }';;
sh ) sh --version | head -n 1 | awk '{ print "sh: ", $2, $4 }';;
tcsh ) tcsh --version | awk '{ print "tcsh: ",$1, $2 }';;
zsh ) zsh --version | awk '{ print "zsh: ",$1, $2 }';;
echo ) echo;;
esac
fi
done
echo
1 #!/bin/sh 2 echo 3 4 languages ="clang gcc erl gfortran 8g 6g ghc java lua perl php python ruby macruby gem fscript " 5 websystems ="apachectl ant rails " 6 databases ="mysql sqlite3 " 7 versionsystems ="cvs git hg svn " 8 other ="xcodebuild " 9 sh ells ="bash csh ksh tcsh zsh " 10 11 for language in $languages echo $websystems echo $databases echo $versionsystems echo $sh ells $other 12 do 13 if [ which $language ] 14 then 15 case $language in 16 clang ) clang --version 2> &1 | head -n 1 | awk '{ print "Clang",$4 }' ;; 17 gcc ) gcc --version | grep gcc | awk '{ print "GCC",$3 }' ;; 18 erl ) erl +V 2> &1 | awk '{ print $1, $6 }' ;; 19 gfortran ) gfortran --version | grep GCC | awk '{ print "GFortran",$4 }' ;; 20 8g ) 8g -V | awk '{ print "Go",$3,"(32-bit)" }' ;; 21 6g ) 6g -V | awk '{ print "Go",$3,"(64-bit)" }' ;; 22 ghc ) ghc --version | awk '{ print $4, $8 }' ;; 23 java ) java -fullversion 2> &1 | sed 's/full version //' | sed 's/\"//g' | sed 's/java /Java/' ;; 24 lua ) lua -e 'print( _VERSION )' ;; 25 perl ) perl -version | grep 'is perl ' | awk '{ print "Perl ",$4 }' ;; 26 php ) php -v | grep PHP | grep built | awk '{print $1,$2}' ;; 27 python ) python -V;; 28 ruby ) ruby -v | awk '{ print "Ruby",$2 }' ;; 29 macruby ) /usr/local/bin/macruby -v | awk '{ print $1,$3,$4,$5; }' ;; 30 gem ) gem -v | awk '{ print "Ruby Gem",$1 }' ;; 31 fscript ) echo ; echo "F-Script:"; fscript -v;; 32 apachectl ) apachectl -v | grep Apache | awk '{ print $3}' | sed 's/\// /' ;; 33 ant ) ant -version | awk '{ print $1,$2,$4 }' ;; 34 rails ) rails -v;; 35 mysql ) mysql --version | awk '{ print $1, $5 }' ;; 36 sqlite3 ) sqlite3 --version | awk '{ print "SQLite",$1 }' ;; 37 cvs ) cvs --version | grep client | sed 's/ (client\/server)//' | sed 's/ (CVS)//' ;; 38 git ) git --version | awk '{print $1,$3}' ;; 39 hg ) hg --version | head -n 1 | awk '{ split( $0,a," " ); print a[1],a[5] }' | sed 's/)//' ;; 40 svn ) svn --version | grep 'svn , version' | sed 's/, version//' | sed 's/svn /Subversion/' ;; 41 xcodebuild ) echo ; xcodebuild -version | grep Xcode;; 42 bash ) bash --version | head -n 1 | awk '{ print "bash : ",$2, $4 }' ;; 43 csh ) csh --version | awk '{ print "csh : ",$1, $2 }' ;; 44 ksh ) ksh 'echo ${.sh .version}' | awk '{ print "ksh : ", $2, $3 }' ;; 45 sh ) sh --version | head -n 1 | awk '{ print "sh : ", $2, $4 }' ;; 46 tcsh ) tcsh --version | awk '{ print "tcsh : ",$1, $2 }' ;; 47 zsh ) zsh --version | awk '{ print "zsh : ",$1, $2 }' ;; 48 echo ) echo ;; 49 esac 50 fi 51 done 52 echo