Advertisement
Guest User

Untitled

a guest
May 30th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.70 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. if [ $UID -ne 0 ]
  4. then
  5.     zenity --error --text="No es administrador.\n\nSólo el administrador puede ejecutar este programa."
  6.     echo "No es administrador, sólo el administrador puede ejecutar este programa."
  7.     exit 0
  8. fi
  9.  
  10. LETRAS=abcdefghijklmnopqrstuvwxyz
  11. ISO_DESTINO="/home/antonio/Descargas/livecd.iso"
  12.  
  13.  
  14. SWAP=$(cat /etc/fstab | grep swap | head -n 1 | awk {'print $5'})
  15. if [ -z "$SWAP" ]
  16. then
  17.     SWAP=$(cat /proc/swaps | tail -n 1 | awk {'print $1'})
  18. fi
  19.  
  20. part=$(fdisk -l | grep ^/dev)
  21. indice=0
  22.  
  23. for item in $part
  24. do
  25.     temp=$(echo -n $item | grep /dev)
  26.     if [ -n "$temp" ]
  27.     then
  28.         PARTICIONES[$indice]=$temp
  29.         let "indice = $indice + 1"
  30.     fi
  31. done
  32. NUM_PARTICIONES=${#PARTICIONES[*]}
  33.  
  34. echo $NUM_PARTICIONES "particiones encontradas"
  35. echo "SWAP: "$SWAP
  36.  
  37. indice=0
  38. while [ "$indice" -lt "$NUM_PARTICIONES" ]
  39. do
  40.     actual=${PARTICIONES[$indice]}
  41.     mont=$(mount | grep $actual | awk {'print $3'})
  42.     if [ -z "$mont" ]
  43.     then
  44.         if [ "$actual" = "$SWAP" ]
  45.         then
  46.             MONTAJE[$indice]="swap"
  47.         else
  48.             MONTAJE[$indice]="No montado"
  49.         fi
  50.     else
  51.         MONTAJE[$indice]=$mont
  52.     fi
  53.     hdd=${actual:(-2):1}
  54.     let hdd="$(echo `expr index "$LETRAS" $hdd`) -1 "
  55.     part=${actual:(-1)}
  56.     echo -n ${PARTICIONES[$indice]}"("${MONTAJE[$indice]}")"
  57.     PARTICIONES[$indice]="(hd$hdd,$part)"
  58.     echo " ==> "${PARTICIONES[$indice]}
  59.     let "indice = $indice + 1"
  60. done
  61.  
  62. indice=0
  63. PARTICION_SELECCIONADA=$((
  64. while [ "$indice" -lt "$NUM_PARTICIONES" ]
  65. do
  66.     echo ${PARTICIONES[$indice]}
  67.     echo ${MONTAJE[$indice]}
  68.     let "indice = $indice + 1"
  69. done
  70. ) |
  71. zenity --list \
  72.     --title="Elija una de las particiones." \
  73.     --column="Partición" --column="Punto de montaje"
  74. )
  75.  
  76. echo "Se selecciona: "$PARTICION_SELECCIONADA
  77.  
  78. PARTICION_SELECCIONADA=$(zenity --entry --title="Editar partición seleccionada" --text="Edite la partción" --entry-text $PARTICION_SELECCIONADA)
  79.  
  80. if [ -z "$PARTICION_SELECCIONADA" ]
  81. then
  82.     echo "No se selecciona partición"
  83.     zenity --error --text="No se selecciona partición"
  84.     exit 0
  85. fi
  86.  
  87. echo "Se edita y queda como: "$PARTICION_SELECCIONADA
  88.  
  89. ARCHIVO_ISO=$(zenity --filename=$HOME --file-selection --title="Seleccione la imagen ISO...")
  90.  
  91. if [ -z "$ARCHIVO_ISO" ]
  92. then
  93.     echo "No se selecciona ninguna imagen ISO"
  94.     zenity --error --text="No se selecciona ninguna imagen ISO"
  95.     exit 0
  96. fi
  97.  
  98. echo "Se selecciona la imagen: "$ARCHIVO_ISO
  99.  
  100. ES_ISO=$(file $ARCHIVO_ISO | grep 9660)
  101.  
  102. if [ -z "$ES_ISO" ]
  103. then
  104.     zenity --error --text="El archivo seleccionado no es una imagen ISO"
  105.     echo "El archivo seleccionado no es una imagen ISO"
  106.     exit 0
  107. fi
  108.  
  109. ES_DE_INICIO=$(echo $ES_ISO | grep bootable)
  110. if [ -z "$ES_DE_INICIO" ]
  111. then
  112.     zenity --error --text="El archivo seleccionado no es una ISO de inicio"
  113.     echo "El archivo seleccionado no es una ISO de inicio"
  114.     exit 0
  115. fi
  116.  
  117. zenity --question --text="Ha seleccionado:\nPartición ==> $PARTICION_SELECCIONADA\nImagen ISO ==>$ARCHIVO_ISO\n\n¿Quiere continuar?"
  118. if [ "$?" != "0" ]
  119. then
  120.     echo "Se cancela."
  121.     exit 0
  122. fi
  123.  
  124. temp=$(file $ARCHIVO_ISO)
  125.  
  126. rm $ISO_DESTINO
  127. cp $ARCHIVO_ISO $ISO_DESTINO &
  128.  
  129. TAMANO_TOTAL=$(stat -c %s $ARCHIVO_ISO)
  130. BYTES_COPIADOS=0
  131. (
  132.     while [ "$BYTES_COPIADOS" -lt "$TAMANO_TOTAL" ]
  133.     do
  134.         sleep 1
  135.         CopiedBytes=$(stat -c %s $ISO_DESTINO)
  136.         let Porcentaje=$BYTES_COPIADOS*100/$TAMANO_TOTAL
  137.         echo $Porcentaje
  138.    done
  139. ) | zenity --progress --title="Copiando" --text="$ARCHIVO_ISO" --percentage=0 --auto-close
  140.  
  141. if [ "$?" != "0" ]
  142. then
  143.     killall cp
  144.     echo "Copia cancelada."
  145.     zenity --error --text="Copia cancelada."
  146.     exit 0
  147. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement