Iraf/Ubuntu7.10

De Jorge Andres Gonzalez Cetina - jag2kn

#!/bin/bash 

#
# Este script instala los paquetes iraf (as+ib+nb), x11iraf, ds9, ecl y guiapps.
#
# Las aplicaciones se instalan en /iraf y en /usr/local.
#
# En ubuntu, el script se ejecuta como usuario y pide la contraseña
# una vez para hacer "sudo". En redhat, hay que ejecutarlo como root.
#
# Al acabar, crea un icono (de KDE) en el escritorio.
#
# El script sobreescribe /iraf/iraf/unix/hlib/extern.pkg (hace backup... 
# considerarlo si se instalan mas paquetes de iraf)
# 
# Si el script abortara a media ejecución se pueden comentar las acciones realizadas
# al final del fichero.
#
# Alberto Morales <amd77 en gulic.org> CopyLeft 2005
#

#
# DEFINICION DE VARIABLES
#

# si estamos en ubuntu
SUDO=sudo
OSTYPE=linux
OSKEY=lnux

# si estamos en redhat
#SUDO=
#OSTYPE=redhat
#OSKEY=rhux

# ARCH tiene valor "x86" si estamos en pc, "ppc" si estamos en mac
ARCH=x86
#ARCH=ppc

#
# RESTO DEL SCRIPT
#

# variables fijas
WORK=$(pwd)
DOWNLOAD=$(pwd)/installiraf-download
IRAF=/iraf/iraf

# si hay algun error no sigas
set -e

function ubuntu_sudo  {
    echo 'preguntamos la contraseña... (si no está ya cacheada)'
    $SUDO true
}

function iraf_user  {
	echo Creando usuario iraf
	$SUDO adduser --home /iraf/iraf/local --shell /bin/csh --disabled-password --gecos "Iraf Administrator" --no-create-home iraf
}

function iraf_dirs  {
	echo Creando directorios
	$SUDO mkdir -p /iraf/iraf
	$SUDO mkdir -p /iraf/iraf/local
	$SUDO mkdir -p /iraf/irafbin
	$SUDO mkdir -p /iraf/irafbin/bin.$OSTYPE
	$SUDO mkdir -p /iraf/irafbin/noao.bin.$OSTYPE
	$SUDO mkdir -p /iraf/x11iraf
	$SUDO mkdir -p /iraf/extern
}

function iraf_download  {
	echo Descargando paquetes
	mkdir -p $DOWNLOAD
	cd $DOWNLOAD
	# x86 o ppc
	wget -nc http://iraf.noao.edu/iraf/ftp/iraf/v212/PCIX/as.pcix.gen.gz
	wget -nc http://iraf.noao.edu/iraf/ftp/iraf/v212/PCIX/ib.$OSKEY.$ARCH.gz
	wget -nc http://iraf.noao.edu/iraf/ftp/iraf/v212/PCIX/nb.$OSKEY.$ARCH.gz
}

function iraf_untar  {
	echo Descomprimiendo paquetes
	cd $IRAF
	$SUDO tar xpzf $DOWNLOAD/as.pcix.gen.gz 
	cd $IRAF/bin.$OSTYPE
	$SUDO tar xpzf $DOWNLOAD/ib.$OSKEY.$ARCH.gz
	cd $IRAF/noao/bin.$OSTYPE
	$SUDO tar xpzf $DOWNLOAD/nb.$OSKEY.$ARCH.gz

	echo Asignando permisos
	$SUDO chown iraf.iraf -R $IRAF
}	

function iraf_install  {
	echo Ejecutando postinstalacion
	cd $DOWNLOAD
cat > installiraf.csh << EOF 
setenv iraf $IRAF
cd \$iraf/unix/hlib
source irafuser.csh
./install -noedit
EOF
	$SUDO csh installiraf.csh
	rm installiraf.csh
}

function iraf_x11  {
	cd $DOWNLOAD
	wget -nc http://iraf.noao.edu/iraf/ftp/iraf/x11iraf/x11iraf-v1.3.1-bin.$OSTYPE.tar.gz
	mkdir tmp
	cd tmp
	tar xzf ../x11iraf-v1.3.1-bin.$OSTYPE.tar.gz
	$SUDO csh install
	cd ..
	rm -Rf tmp
}

function iraf_ds9  {
	cd $DOWNLOAD
	wget -nc http://hea-www.harvard.edu/saord/download/ds9/linux/ds9.linux.5.0.tar.gz
	cd /usr/local/bin
	$SUDO tar xzf $DOWNLOAD/ds9.linux.5.0.tar.gz
}

function iraf_ecl  {
	cd $DOWNLOAD
	wget -nc http://iraf.noao.edu/iraf/ftp/pub/ecl_install_$OSTYPE.csh
	$SUDO csh ecl_install_$OSTYPE.csh
}

function iraf_guiapps  {
	cd $DOWNLOAD
	wget -nc http://iraf.noao.edu/iraf/ftp/iraf/extern/guiapps.tar.gz
	$SUDO mkdir -p /iraf/extern/guiapps
	cd /iraf/extern/guiapps
	$SUDO tar xzf $DOWNLOAD/guiapps.tar.gz
cat > $DOWNLOAD/extern.pkg << EOF
# External (non core-system) packages.  To install a new package, add the
# two statements to define the package root directory and package task,
# then add the package helpdb to the \`helpdb' list.

reset	noao		= iraf\$noao/
task	noao.pkg	= noao\$noao.cl

#reset	tables		= /iraf/extern/tables/
#task	tables.pkg	= tables\$tables.cl

reset guiapps       = /iraf/extern/guiapps/
task  guiapps.pkg   = guiapps\$guiapps.cl

reset	helpdb		= "lib\$helpdb.mip\\
			  ,noao\$lib/helpdb.mip\\
#			  ,tables\$lib/helpdb.mip\\
			  ,guiapps\$lib/helpdb.mip\\
			  "
keep
EOF
	$SUDO cp -b $DOWNLOAD/extern.pkg /iraf/iraf/unix/hlib/extern.pkg
}

function iraf_deb  {
    # TODO: Hacer una equivalente a esta para redhat
	$SUDO apt-get install csh sharutils libxft1
}

function iraf_link  {
	echo Creando acceso directo
cat > ~/Desktop/IRAF.desktop << EOF
[Desktop Entry]
Encoding=UTF-8
Exec=xgterm -e csh -e /usr/local/bin/ecl
GenericName=IRAF ECL
GenericName[es]=IRAF ECL
Name=IRAF
Name[es]=IRAF
StartupNotify=true
Terminal=false
Type=Application
X-KDE-SubstituteUID=false
EOF

}

# listado de acciones a seguir (util comentar las ya realizadas)
ubuntu_sudo
iraf_deb
iraf_user
iraf_dirs
iraf_download
iraf_untar
iraf_install
iraf_x11
iraf_ecl
iraf_ds9
iraf_guiapps
iraf_link
Herramientas personales