Ayuda con script de linux

Aquí solo proyectos que incluyan el código fuente

Moderador: Fundadores

Reglas del Foro
Si no se incluyen los fuentes, se debe usar el foro de proyectos de software generales
Avatar de Usuario
Querubin
Demonio tercer orden
Demonio tercer orden
Mensajes: 635
Registrado: 15 Ene 2016, 00:01
Ubicación: Totana

Re: Ayuda con script de linux

Mensaje por Querubin »

Si, con front end me refiero a la aplicación iecata. Antes al pulsar "s" se supone que se salía de la aplicación pero no reconocía el comando. Se lo comenté a arananet, lo corrigió y subió de nuevo a su blog.

Pues si me explicas como implementar los cambios al nuevo unix.c de arananet lo intento y lo guardo como la versión más avanzada.

Claro, si no tienes el cacharro igual tampoco te merece la pena meterte en más lio. Por eso decía que tu ponias los límites. Si en algún momento te animas con el cacharrito y a hacer algo mas allá cuenta conmigo para lo que quieras. Aunque te bastas tu solito desde luego. Yo te estoy muy agradecido por el tiempo que has dedicado a esto que solo yo por ahora voy a disfrutar.
poco a poco
Avatar de Usuario
overCLK !CPC 4
Demonio segundo orden
Demonio segundo orden
Mensajes: 1709
Registrado: 14 Ago 2015, 09:28
Ubicación: Vedra
Has thanked: 3 times
Been thanked: 4 times

Re: Ayuda con script de linux

Mensaje por overCLK »

querubin escribió:Si, con front end me refiero a la aplicación iecata. Antes al pulsar "s" se supone que se salía de la aplicación pero no reconocía el comando. Se lo comenté a arananet, lo corrigió y subió de nuevo a su blog.

Pues si me explicas como implementar los cambios al nuevo unix.c de arananet lo intento y lo guardo como la versión más avanzada.

Claro, si no tienes el cacharro igual tampoco te merece la pena meterte en más lio. Por eso decía que tu ponias los límites. Si en algún momento te animas con el cacharrito y a hacer algo mas allá cuenta conmigo para lo que quieras. Aunque te bastas tu solito desde luego. Yo te estoy muy agradecido por el tiempo que has dedicado a esto que solo yo por ahora voy a disfrutar.

Aaah, vale. Es que en la versión original, el comando para salir es 'q'. :)

Sobre como implementar los cambios, te paso un diff:
--- unix.c.orig	2016-07-06 17:33:02.014590673 +0200
+++ unix.c	2016-07-06 17:59:10.718630839 +0200
@@ -53,6 +53,12 @@
 #include <stdlib.h>
 #include <ctype.h>
 #include <string.h>
+#include <sys/stat.h>
+#include <linux/fs.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <unistd.h>
 
 /* protos *****************************************************************/
 
@@ -66,9 +72,36 @@
 
 /* functions **************************************************************/
 
+static block_t getDeviceSize(const char *path) {
+  struct stat data;
+  block_t size = 0;
+  if (stat(path, &data) == 0) {
+    if (data.st_rdev) {
+      long long bytes = 0;
+      int fd = open(path, O_RDONLY);
+      if (fd > -1) {
+        if (ioctl(fd, BLKGETSIZE64, &bytes) == 0) {
+          size = bytes / 512;
+        } else {
+          perror("Error getting device size");
+        }
+        close(fd);
+      } else {
+        perror("Opening device");
+      }
+    } else {
+      size = data.st_size / 512;
+    }
+  } else {
+    perror("Unable to stat file");
+  }
+  printf("Device size: %d\n", size);
+  return size;
+}
+
 int main (int argc, char *argv[]) {
   if (argc == 2) {
-
+    totalDiskSize = getDeviceSize(argv[1]);
     /* open file to the entire hard drive */
     if ((fp = fopen (argv[1], "r+b"))) {
Copia y pega eso a un fichero, llámalo por ejemplo unix.patch.
Luego vas al directorio del software original y haces
patch -p0 < unix.patch
Eso debería darte unos mensajes y decirte si has parcheado bien los fuentes.

Ya me cuentas.
Imagen
Avatar de Usuario
Querubin
Demonio tercer orden
Demonio tercer orden
Mensajes: 635
Registrado: 15 Ene 2016, 00:01
Ubicación: Totana

Re: Ayuda con script de linux

Mensaje por Querubin »

No se porqué pero se comporta como si no se parcheara. Es decir, no aparece el tamaño del disco y formatea solo los 50 MB.
Al final lo que he hecho ha sido coger tu unix.c cambiar la q por la s y a correr.

Al formatear esta vez "No puedo encontrar el bloque" lo he dejado y es posible que sea error del propio disco porque tras varios mensajes ha seguido formateando y ha terminado con "Disco formateado correctamente!."

Una cosilla que me está fastidiando es que no copia los directorios alfabéticamente por lo que, con los nombrecitos que les he puesto a las carpetas al listarlo en el C64 salen desordenados y es un engorro.
Sería complicado hacer algo?
poco a poco
Avatar de Usuario
overCLK !CPC 4
Demonio segundo orden
Demonio segundo orden
Mensajes: 1709
Registrado: 14 Ago 2015, 09:28
Ubicación: Vedra
Has thanked: 3 times
Been thanked: 4 times

Re: Ayuda con script de linux

Mensaje por overCLK »

querubin escribió:No se porqué pero se comporta como si no se parcheara. Es decir, no aparece el tamaño del disco y formatea solo los 50 MB.
Al final lo que he hecho ha sido coger tu unix.c cambiar la q por la s y a correr.

Al formatear esta vez "No puedo encontrar el bloque" lo he dejado y es posible que sea error del propio disco porque tras varios mensajes ha seguido formateando y ha terminado con "Disco formateado correctamente!."

Una cosilla que me está fastidiando es que no copia los directorios alfabéticamente por lo que, con los nombrecitos que les he puesto a las carpetas al listarlo en el C64 salen desordenados y es un engorro.
Sería complicado hacer algo?

Supongo que después de parchear habrás vuelto a compilar el ejecutable, ¿no? Ejecutar 'make' de nuevo. ¿Qué mensaje te saca el comando patch?

Sobre eso del ordenado, sospecho que es cosa de la implementación de los comandos aunque la implementación creo que es común para el iecata y para el frontend y yo diría que a mi en el frontend me salen ordenados. ¿Cómo te salen en el frontend a ti en el disco que has creado?
Imagen
Avatar de Usuario
Querubin
Demonio tercer orden
Demonio tercer orden
Mensajes: 635
Registrado: 15 Ene 2016, 00:01
Ubicación: Totana

Re: Ayuda con script de linux

Mensaje por Querubin »

Perdón, tenía que parchear y luego make. Todo correcto.

Y al cambiar el unix.c antes nada.
poco a poco
Avatar de Usuario
Querubin
Demonio tercer orden
Demonio tercer orden
Mensajes: 635
Registrado: 15 Ene 2016, 00:01
Ubicación: Totana

Re: Ayuda con script de linux

Mensaje por Querubin »

En la aplicación me salen desordenados también.
poco a poco
Responder

Volver a “Proyectos de software abiertos”