| 1 |
### written by Benjamin Shropshire (a.k.a. BCS) |
|---|
| 2 |
### shro8822drop_this at vandals dot uidaho edu |
|---|
| 3 |
### |
|---|
| 4 |
### This script has no warranty of any kind. If it breaks yours system, tell |
|---|
| 5 |
### me about it and I'll try to fix this script. Besides that you assume all |
|---|
| 6 |
### responsibility for all effects of using it. |
|---|
| 7 |
### |
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 |
SAVE_OLD=true |
|---|
| 11 |
WEB_DOCS=false |
|---|
| 12 |
CLEAN_OLD=false |
|---|
| 13 |
CLEAN_AFTER=false |
|---|
| 14 |
|
|---|
| 15 |
if [ -z "$1" ] |
|---|
| 16 |
then |
|---|
| 17 |
DMD_ZIP_FILE=dmd.zip |
|---|
| 18 |
else |
|---|
| 19 |
DMD_ZIP_FILE=dmd.$1.zip |
|---|
| 20 |
fi |
|---|
| 21 |
|
|---|
| 22 |
echo === Getting $DMD_ZIP_FILE |
|---|
| 23 |
echo On some systems this errors, don't worry, it's still works |
|---|
| 24 |
ftp << E |
|---|
| 25 |
open ftp.digitalmars.com |
|---|
| 26 |
|
|---|
| 27 |
user anonymous foo@bar.com |
|---|
| 28 |
binary |
|---|
| 29 |
get $DMD_ZIP_FILE |
|---|
| 30 |
bye |
|---|
| 31 |
E |
|---|
| 32 |
|
|---|
| 33 |
echo === got $DMD_ZIP_FILE |
|---|
| 34 |
|
|---|
| 35 |
if $CLEAN_OLD ; then ( |
|---|
| 36 |
ehco === clear space for dmd |
|---|
| 37 |
rm -rf dmd/ dm/ |
|---|
| 38 |
) ; fi |
|---|
| 39 |
|
|---|
| 40 |
echo === extract files |
|---|
| 41 |
unzip -o -q $DMD_ZIP_FILE |
|---|
| 42 |
|
|---|
| 43 |
echo === find where to put man files |
|---|
| 44 |
MAND=`man -w gcc ln cpp as ar tar ls bash 2>/dev/null | head -n 1 | sed "s/\/[^\/]*$//"` |
|---|
| 45 |
|
|---|
| 46 |
|
|---|
| 47 |
if $SAVE_OLD ; then ( |
|---|
| 48 |
echo === geting old version num. |
|---|
| 49 |
DMDVER=`dmd | grep Comp | sed "s/.*v//"` |
|---|
| 50 |
|
|---|
| 51 |
if [ -e /usr/bin/dmd.$DMDVER ] |
|---|
| 52 |
then |
|---|
| 53 |
echo === found saved copy of V $DMDVER : not saving again |
|---|
| 54 |
SAVE_OLD=false |
|---|
| 55 |
else |
|---|
| 56 |
echo === saveing old stuff from V $DMDVER |
|---|
| 57 |
mv /usr/bin/dmd /usr/bin/dmd.$DMDVER |
|---|
| 58 |
mv /usr/lib/libphobos.a /usr/lib/libphobos.a.$DMDVER |
|---|
| 59 |
mv /usr/include/phobos /usr/include/phobos.$DMDVER |
|---|
| 60 |
mv $MAND/man1/dmd.1 $MAND/man1/dmd.$DMDVER.1 |
|---|
| 61 |
fi |
|---|
| 62 |
) ; fi |
|---|
| 63 |
|
|---|
| 64 |
if $SAVE_OLD && $WEB_DOCS ; then ( |
|---|
| 65 |
echo === save old dmd docs |
|---|
| 66 |
mv /var/www/html/dmd /var/www/html/dmd.$DMDVER |
|---|
| 67 |
) ; fi |
|---|
| 68 |
|
|---|
| 69 |
echo === copy dmd to the correct place |
|---|
| 70 |
cp dmd/bin/dmd /usr/bin/dmd |
|---|
| 71 |
chmod 755 /usr/bin/dmd |
|---|
| 72 |
|
|---|
| 73 |
echo === copy libphobos.a |
|---|
| 74 |
cp dmd/lib/libphobos.a /usr/lib/libphobos.a |
|---|
| 75 |
chmod 644 /usr/lib/libphobos.a |
|---|
| 76 |
|
|---|
| 77 |
echo === copy phobos source |
|---|
| 78 |
cp -r dmd/src/phobos /usr/include/phobos |
|---|
| 79 |
chmod 755 /usr/include/phobos |
|---|
| 80 |
find /usr/include/phobos -type d -exec chmod 755 "{}" ";" |
|---|
| 81 |
find /usr/include/phobos -type f -exec chmod 644 "{}" ";" |
|---|
| 82 |
|
|---|
| 83 |
echo === copy man page |
|---|
| 84 |
cp dmd/man/man1/dmd.1 $MAND/dmd.1 |
|---|
| 85 |
chmod 644 $MAND/dmd.1 |
|---|
| 86 |
|
|---|
| 87 |
if $WEB_DOCS ; then ( |
|---|
| 88 |
echo === install dmd docs for httpd |
|---|
| 89 |
cp -r dmd/html/ /var/www/html/dmd |
|---|
| 90 |
chown apache:apache -R /var/www/html/dmd/ |
|---|
| 91 |
find /var/www/html/dmd -type d -exec chmod 755 "{}" ";" |
|---|
| 92 |
find /var/www/html/dmd -type f -exec chmod 444 "{}" ";" |
|---|
| 93 |
) ; fi |
|---|
| 94 |
|
|---|
| 95 |
if $CLEAN_AFTER ; then ( |
|---|
| 96 |
echo === clearup after dmd install |
|---|
| 97 |
rm -rf dmd/ dm/ |
|---|
| 98 |
) ; fi |
|---|