[go: up one dir, main page]

Menu

[r58]: / current / dnfd  Maximize  Restore  History

Download this file

179 lines (159 with data), 5.3 kB

#!/bin/bash

###############################################################
	PROGRAMA="Debian Netinstall For Dummies"  
		       VER="V 0.6-alpha1"
#		     AUTHOR="niky45"
###############################################################
#
#   por favor, lee el archivo README antes de usar DNFD
#
##########  TO-DO  ############################################
# // V0.6
# DONE - funciones en fichero aparte, leido por todos los demas
# DONE?	- modo debug 
# DONE	- texto de debugging en la interfaz!! no en main! 
#	-	activar repos.conf !!!!!!!!!
#	- modo verbose real. # PERO COMO?!?! (no esta ya el debug?)
#	- lista de develop (al menos dependencias de compilacion)
#	- lista de apps ncurses (apps)
#	- listas de apps aparte?? o extras?? (gimp & libreoffice aparte?)
#	- drivers grafica (ati & nvidia)
#	- kernel!!
# DONE	- el questions-txt ha de llevar la interfaz APARTE. 
#	DONE 	-	averiguar como hacer que funcione el select (con espacios :S)
# DONE	- selector y questions UNICOS, el texto va en interfaz-txt (T.O.D.O el texto)
#	- decidir cuando llamar a aptitude con el -R y cuando no. (ver llamada a aptitude)
#	- ofrecer tambien un paquete .deb
#	- traducciones (como minimo ingles)
# DONE	- revisar comportamiento de repos.conf 
#	- crear un log de todo lo que ocurre (de cara a posibles bug reports). 
#			preguntar AL FINAL al usuario si desea borrarlo. 
# DONE	- necesitaremos a "script" como dependencia # es parte de coreutils?
#	- modo silent (redirigir todo)
#	- instalador 
#
# // algun dia de estos
#	- interfaz dialog 
#			nota: esto es complejo, los read estan en el codigo, y deberian ir en la interfaz
#	-	usar el mismo fichero de texto, que cambien las llamadas a dialog o echo's
#	- distribucion: dos paquetes, uno con dependencias (dialog) y otro sin ellas. 
#	  	cuando haya interfaz dialog, claro... ^_^u 
#	- importar configuraciones (vim, entorno... )
#	- paquetes deb (dependencias?)
#
################################################################

### variables globales (modifican el comportamiento del programa)
AUTO=N ## modo auto - instalacion de lista de paquetes predeterminada SIN PREGUNTAR
DEBUG=N ## modo debug
VMODE=Y ## verbose
NCURSES=N ### selector interfaz: dialog / texto puro 
# la interfaz dialog no esta disponible (aun)
export AUTO ; export DEBUG ; export VMODE ; export NCURSES 
listaauto="./listas/auto.list"
### /variables globales

### funciones
source functions start  
### /funciones

##verbose y debug
if [ $DEBUG == Y ]; then
	PRINT dbg_start
	sleep 5
	FN dy
	PRINT dbg01
	read bd
	if [ bd == y ]; then 
		set -x 
		set -v
	fi
	PRINT dbg02
	read C
	if [ $C == Y ];then APTS=" -s";fi
else 
	FN dn
fi

if [ $VMODE == Y ]; then
	### seteamos las variables para los echos de verbose
#	V="-v" ## esto para que?? no veo ninguna llamada...
	FN vy
else
	FN vn
fi

## comprobamos que es root quien trabaja
#user=$USER ## comprobacion de root
user=root ## FOR TESTING ONLY <------------------
if [ $user != root ]; then
	PRINT rooterr
	DBG exit 10
fi
## comprobamos que la sintaxis es correcta
if [ "$1" == a ] || [ "$1" == p ] || [ "$1" == e ]; then
	echo ""
	[ $1 == a ] && AUTO=Y 
else
	PRINT syntaxerr
	exit 1
fi

### configurador
#instalamos dialog si se va a usar el modo ncurses
if [ $NCURSES == Y ];then
	REDIR dpkg -i dep/*deb 
fi
### /configurador

### WELCOME
PRINT welcome "$PROGRAMA" - "$VER"
### /welcome

## NETCONF 
#por ahora, suponemos la red configurada
##/netconf

### configuracion de repos: repos.conf 
[ $AUTO == N ] && DBG bash repos.conf $interfaz $DEBUG
### /configuracion repos

### aptitude update && aptitude dist-upgrade
DBG aptitude update 
DBG aptitude dist-upgrade $APTS ## no hace falta especificar rama, tenemos apt.conf
### /aptitude

### llamadas a los modos
R="" ## por si el nounset....
case $1 in 
	a) ## auto - instala lista dada de paquetes
		PKG=$(GREP cat $listaauto) 
		R="-R"
		;;
	p) ## preselect - se instalaran paquetes segun las repuestas
		CALL $questions ##llamamos a preguntas
		PKG=$(GREP cat paquetes) ## questions imprime lista en ./paquetes
		;;
	e) ## expert - se instalaran paquetes segun las repuestas + selector
		CALL $questions ##llamada a questions
		CALL $selector $interfaz ## llamada a selector
		PKG=$(GREP cat paquetes ) ## selector imprime lista en ./paquetes
		R="-R"
		;;
esac
### /modos (listas)

### aptitude install
#R="-R" ## quitar esto en la release
DBG aptitude install $PKG $APTS $R
#nota: la optimizacion real requiere el -R, pero la gestion de dependencias puede complicarse... 
## idea: usar el -R solo en expert y/o auto
DBG aptitude clean 
### /aptitude 

### drivers - ponerlo aqui!!! 
## nvidia y fglrx con suerte se pueden automatizar. 
## hay algun otro driver no libre habitual?? (madwifi lo descarto, el libre va bien)
## OJO: asegurarse antes de que se esta trabajando con el kernel mas reciente!!!
### /drivers

### configuracion de las X para lxde y awesome
#if test "$( cat paquetes |grep awesome )" || test "$( cat paquetes |grep lxde)" ;then # funciona?
#	X -configure
#	REDIR cp /root/xorg.conf.new /etc/X11/xorg.conf -v
#fi

### borramos lista de paquetes
DBG REDIR rm paquetes -v

### comprobamos que aptitude no haya hecho cosas raras...
if ! test /usr/bin/aptitude ;then apt-get install aptitude; fi

### goodbye!!!
echo -e "\n \n"
PRINT goodbye $PROGRAMA 
### /

## EOF