2 * adds devmode and devgid to usbfs in fstab
14 void eputs(const char *msg)
16 write(2, msg, strlen(msg));
21 char *name = "/etc/fstab";
22 char *backup_name = "/etc/fstab.bak";
23 char *add = ",devgid=78,devmode=0664";
30 eputs("Updating /etc/fstab...");
31 fd = open(name, O_RDONLY);
33 eputs("\nError: can't open file\n");
37 old = (char *) malloc(st.st_size);
39 eputs("\nError: malloc failure\n");
42 read(fd, old, st.st_size);
46 fd = open(backup_name, O_WRONLY|O_CREAT|O_TRUNC, 0600);
48 eputs("\nError: can't make backup\n");
51 write(fd, old, old_sz);
55 for (i = 0; i < old_sz; i++) {
56 if ( old[i] == 'u' && old[i+1] == 's' && old[i+2] == 'b'
57 && old[i+3] == 'f' && old[i+4] == 's')
61 for (;i < old_sz; i++) {
62 if ( old[i] == 'd' && old[i+1] == 'e' && old[i+2] == 'f' && old[i+3] == 'a' && old[i+4] == 'u' )
66 for (;i < old_sz; i++) {
67 if ( old[i] == ' ' || old[i] == '\t' )
71 eputs("\nError: can't find correct usbfs entry\n");
75 fd = open(name, O_WRONLY|O_CREAT|O_TRUNC, 0644);
77 eputs("\nError: can't open file for writing\n");
81 write(fd, add, strlen(add));
82 write(fd, old + i, old_sz - i);