#!/bin/bash
# pcinfo.sh
# Versión 0.2 (03-abril-2006)
#
# Se agregó información de Video para Musix 0.40
#
# Recolectar información sobre datos importantes de una PC
# para resolver problemas de hardware/software, configuración, etc.
# que tengan que ver con el sonido, sobre todo...
#
# (C) 2005-2006 Marcos Guglielmetti y Adrian Pardini, 
# licencia GNU GPL v2 o posterior
# basado en partes de Adrian Pardini
# Musix GNU+Linux

# Agregué soporte para i18n
# Ahora uso xtest para una deteccion mas fiable de X
# Pardo. 24-08-2005


clear

# Linea original:
export USAR_NLS="si"
# Linea original:
export TEXTDOMAIN="pcinfo"
export TEXTDOMAINDIR=/etc/musix/locales

#Contenido de config/encabezado :

. /etc/musix/funciones-i18n
[ -e /etc/musix/funciones ] && . /etc/musix/funciones

#Fin de config/encabezado
#Fin de las modificaciones.

#puede ser -nearmouse o -center (o nada)
pos="-nearmouse"

probar_X && x=1

if [ -z $USER ]; then export USER=root; fi
if [ -z $HOME ]; then export HOME=/root; fi

#echo Estamos en español

if [ $x ]; then

_n "Voy a buscar información importante en tu PC.
Puede ser útil para resolver problemas.
Crearé un archivo de texto con los datos recolectados en:
/tmp/pcinfo.txt
Puedes enviar ese archivo a algún experto
para que analice el sistema.
Puedo tardar unos segundos...
¿Continuar?" | gmessage -wrap -title 'PCinfo' -file - $pos -buttons $(_n "Si:0,No:2" ) -default $(_n "Si" ) -geometry 350x250
if [ $? -gt 0 ]; then exit 2; fi

else

_ "Voy a buscar información importante en tu PC.
Puede ser útil para resolver problemas.
Crearé un archivo de texto con los datos recolectados en:
/tmp/pcinfo.txt
Puedes enviar ese archivo a algún experto
para que analice el sistema.
Puedo tardar unos segundos...
¿Continuar?"

_ "(S/N)"

	while (true)
	do
		read -n1 resp
		case $resp in
		[$( _n "sS" )])
			echo -e "\n"
			break
			;;
		[$( _n "nN" )])
			_ "\nOk. \n"
			exit 2
			;;
		*)
			_ "\nSs o Nn."
		;;
	esac
	done

fi


[ -e "/tmp/pcinfo.txt" ] && rm -f /tmp/pcinfo.txt

if [ $x ]; then
	_n "Trabajando..." | xmessage -file - $pos &
	l_PID=$!
	export l_PID
else
	_n "Trabajando..."
fi


# Creación del archivo de datos
cat /dev/null >/tmp/pcinfo.txt
#
sleep 1s
echo "___________opciones de inicio del kernel:________________" >>/tmp/pcinfo.txt
cat /proc/cmdline >>/tmp/pcinfo.txt
echo "_________________________________________" >>/tmp/pcinfo.txt
echo "_________________________________________" >>/tmp/pcinfo.txt
echo "INTERRUPTS" >>/tmp/pcinfo.txt
cat /proc/interrupts >/tmp/pcinfo.txt
echo "_________________________________________" >>/tmp/pcinfo.txt
echo "CPUINFO" >>/tmp/pcinfo.txt
cat /proc/cpuinfo >>/tmp/pcinfo.txt
echo "_________________________________________" >>/tmp/pcinfo.txt
echo "snd-page-alloc" >>/tmp/pcinfo.txt
cat /proc/driver/snd-page-alloc >>/tmp/pcinfo.txt
echo "_________________________________________" >>/tmp/pcinfo.txt
echo "MEMINFO" >>/tmp/pcinfo.txt
# modificando la forma de hace echo, musix "0.32" en adelante
echo "
_________________________________________

          Placas de sonido reconocidas
          por el sistema
_________________________________________

" >>/tmp/pcinfo.txt
echo "cat /proc/asound/cards" >>/tmp/pcinfo.txt


cat /proc/asound/cards >>/tmp/pcinfo.txt
echo "cat /proc/isapnp >>/tmp/pcinfo.txt" >>/tmp/pcinfo.txt
cat /proc/isapnp >>/tmp/pcinfo.txt

if ! echo "$0" | grep hwsetup; then
echo "_________________________________________" >>/tmp/pcinfo.txt
echo "HWSETUP" >>/tmp/pcinfo.txt


hwsetup -v >>/tmp/pcinfo.txt
fi

echo "_________________________________________" >>/tmp/pcinfo.txt
echo "ESPACIO_USADO_LIBRE" >>/tmp/pcinfo.txt

df -h >> /tmp/pcinfo.txt
echo "_________________________________________" >>/tmp/pcinfo.txt
echo "Modulos ALSA cargados" >>/tmp/pcinfo.txt


lsmod | grep snd >>/tmp/pcinfo.txt
echo "_________________________________________" >>/tmp/pcinfo.txt
echo "Modulos OSS cargados" >>/tmp/pcinfo.txt
lsmod | grep sound >>/tmp/pcinfo.txt
echo "_________________________________________" >>/tmp/pcinfo.txt

# Nuevo para Musix 0.40
echo "________________VIDEO______________________" >>/tmp/pcinfo.txt
echo "________________Xorg________________________" >>/tmp/pcinfo.txt
cat /etc/X11/xorg.conf >>/tmp/pcinfo.txt
echo "_________________________________________" >>/tmp/pcinfo.txt
#
echo "______________errores de video________________" >>/tmp/pcinfo.txt
cat /root/.xsession-errors >>/tmp/pcinfo.txt
echo "_________________________________________" >>/tmp/pcinfo.txt
#
uname -a >>/tmp/pcinfo.txt

echo "___________opciones de inicio del kernel:________________" >>/tmp/pcinfo.txt
cat /proc/cmdline >>/tmp/pcinfo.txt


if ps | grep "$l_PID" | grep -v grep; then
	kill "$l_PID"
	unset l_PID
fi

if [ $x ] 
then

# Abriendo kedit porque es más sencillo cuando quieres guardar el archivo en otro lado
kedit /tmp/pcinfo.txt &
# abriendo leafpad sólo porque se ve mejor ahí
#leafpad /tmp/pcinfo.txt
sleep 5s
# abriendolo en el explorador, para que pueda copiarlo
rox-filer /tmp
else
clear
echo "Terminado...
Generamos el archivo /tmp/pcinfo.txt
Ahora puedes enviar el archivo /tmp/pcinfo.txt a un experto para que analice el problema...
Únete a la lista de correo en: http://www.musix.org.ar

¿Quieres montar todos los discos duros y otros dispositivos de almacenamiento para poder copiar el archivo a otro lado?
(S/n) [enter]
"
read SN

if [ "$SN" = "s" ]
then
# Montamos todo lo que encontramos...
for   mpoint in $(ls /mnt); do

	if ! mount | grep "/mnt/$mpoint" 2>&1 >/dev/null ; then

		_Sn 'Montando /mnt/$mpoint...'
		mount  3>/dev/null 2>/dev/null 1>/dev/null "/mnt/$mpoint"
		if [ $? -gt 0 ]; then _ "no se pudo montar..."; else _ "OK"; fi
	else
		_S '/mnt/$mpoint ya esta montado.'
	fi
done

# Copiamos?

echo "
Ahora puedes copiar el archivo /tmp/pcinfo.txt a otro dispositivo, por ejemplo:

cp /tmp/pcinfo.txt /mnt/hda1

Con ese comando lo copiaríamos al directorio raíz del primer disco IDE en nuestro equipo.
"

else
echo "Suerte..."
ls /tmp/pcinfo.txt

fi


fi