Changeset 75 in MondoRescue
- Timestamp:
- Oct 20, 2005, 2:35:15 PM (20 years ago)
- Location:
- trunk/mondo/mondo/common
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mondo/mondo/common/libmondo-archive.c
r68 r75 1217 1217 paranoid_free(data_disks_file); 1218 1218 1219 asprintf(&command, "rm -f %s/%s -[1-9]*.iso", bkpinfo->prefix,1220 bkpinfo->isodir);1219 asprintf(&command, "rm -f %s/%s/%s-[1-9]*.iso", bkpinfo->isodir, 1220 bkpinfo->nfs_remote_dir, bkpinfo->prefix); 1221 1221 paranoid_system(command); 1222 1222 paranoid_free(command); -
trunk/mondo/mondo/common/libmondo-devices.c
r59 r75 260 260 extern struct s_bkpinfo *g_bkpinfo_DONTUSETHIS; 261 261 extern char *g_erase_tmpdir_and_scratchdir; 262 extern char *g_selfmounted_isodir; 262 263 263 264 static char g_cdrw_drive_is_here[MAX_STR_LEN / 4] = ""; … … 1820 1821 char *command; 1821 1822 char *comment; 1823 char *prompt; 1822 1824 int i; 1823 1825 FILE *fin; … … 1827 1829 malloc_string(command); 1828 1830 malloc_string(comment); 1831 malloc_string(prompt); 1829 1832 assert(bkpinfo != NULL); 1830 1833 sz_size[0] = '\0'; … … 2099 2102 } 2100 2103 } 2101 sprintf(command, "mount | grep %s | cut -d' ' -f3", 2102 bkpinfo->nfs_mount); 2104 // check whether already mounted - we better remove 2105 // surrounding spaces and trailing '/' for this 2106 strip_spaces (bkpinfo->nfs_mount); 2107 if (bkpinfo->nfs_mount[strlen(bkpinfo->nfs_mount) - 1] == '/') 2108 bkpinfo->nfs_mount[strlen(bkpinfo->nfs_mount) - 1] = '\0'; 2109 sprintf(command, "mount | grep \"%s \" | cut -d' ' -f3", 2110 bkpinfo->nfs_mount); 2103 2111 strcpy(bkpinfo->isodir, 2104 2112 call_program_and_get_last_line_of_output(command)); … … 2114 2122 } 2115 2123 if (!is_this_device_mounted(bkpinfo->nfs_mount)) { 2116 sprintf(bkpinfo->isodir, "/tmp/isodir"); 2117 run_program_and_log_output("mkdir -p /tmp/isodir", 5); 2118 sprintf(tmp, "mount %s -t nfs -o nolock /tmp/isodir", 2119 bkpinfo->nfs_mount); 2120 run_program_and_log_output(tmp, 5); 2124 sprintf(bkpinfo->isodir, "/tmp/isodir.mondo.%d", (int)(random()%32768)); 2125 sprintf(command, "mkdir -p %s", bkpinfo->isodir); 2126 run_program_and_log_output(command, 5); 2127 sprintf(tmp, "mount %s -t nfs %s", bkpinfo->nfs_mount, bkpinfo->isodir); 2128 run_program_and_log_output(tmp, 5); 2129 malloc_string(g_selfmounted_isodir); 2130 strcpy(g_selfmounted_isodir, bkpinfo->isodir); 2121 2131 } 2122 2132 if (!is_this_device_mounted(bkpinfo->nfs_mount)) { … … 2133 2143 } 2134 2144 strcpy(bkpinfo->nfs_remote_dir, tmp); 2145 // check whether writable - we better remove surrounding spaces for this 2146 strip_spaces (bkpinfo->nfs_remote_dir); 2147 sprintf (command, "echo hi > %s/%s/.dummy.txt", bkpinfo->isodir, 2148 bkpinfo->nfs_remote_dir); 2149 while (run_program_and_log_output (command, FALSE)) { 2150 strcpy(tmp, bkpinfo->nfs_remote_dir); 2151 asprintf (&prompt, 2152 "Directory '%s' under mountpoint '%s' does not exist or is not writable. You can fix this or change the directory and retry or cancel the backup.", 2153 bkpinfo->nfs_remote_dir, bkpinfo->isodir); 2154 if(!popup_and_get_string ("Directory", prompt, tmp, MAX_STR_LEN)) { 2155 log_to_screen("User has chosen not to backup the PC"); 2156 finish(1); 2157 } 2158 strcpy(bkpinfo->nfs_remote_dir, tmp); 2159 // check whether writable - we better remove surrounding spaces for this */ 2160 strip_spaces (bkpinfo->nfs_remote_dir); 2161 asprintf (&command, "echo hi > %s/%s/.dummy.txt", bkpinfo->isodir, 2162 bkpinfo->nfs_remote_dir); 2163 } 2135 2164 for (i = 0; i <= MAX_NOOF_MEDIA; i++) { 2136 2165 bkpinfo->media_size[i] = 650; … … 2347 2376 paranoid_free(command); 2348 2377 paranoid_free(comment); 2378 paranoid_free(prompt); 2349 2379 return (0); 2350 2380 } -
trunk/mondo/mondo/common/libmondo-tools.c
r72 r75 712 712 } 713 713 } 714 store_nfs_config (bkpinfo); 714 715 } 715 716 -
trunk/mondo/mondo/common/newt-specific.c
r59 r75 95 95 bool g_called_by_xmondo = FALSE; ///< @bug Unneeded w/current XMondo. 96 96 char *g_erase_tmpdir_and_scratchdir; ///< The command to run to erase the tmpdir and scratchdir at the end of Mondo. 97 char *g_selfmounted_isodir; ///< Holds the NFS mountpoint if mounted via mondoarchive. 97 98 98 99 /* @} - end of globalGroup */ … … 257 258 "-------FATAL ERROR---------"; 258 259 char *tmp; 260 char *command; 259 261 static bool already_exiting = FALSE; 260 262 int i; … … 262 264 /*@ end vars **************************************************** */ 263 265 266 malloc_string(command); 264 267 set_signals(FALSE); // link to external func 265 268 g_exiting = TRUE; … … 304 307 if (g_erase_tmpdir_and_scratchdir[0]) { 305 308 run_program_and_log_output(g_erase_tmpdir_and_scratchdir, 5); 309 } 310 311 if (g_selfmounted_isodir) { 312 asprintf(&command, "umount %s", g_selfmounted_isodir); 313 run_program_and_log_output(command, 5); 314 asprintf(&command, "rmdir %s", g_selfmounted_isodir); 315 run_program_and_log_output(command, 5); 306 316 } 307 317 … … 359 369 void 360 370 finish(int signal) { 361 362 /* if (signal==0) { popup_and_OK("Please press <enter> to quit."); } */ 371 char *command; 372 malloc_string(command); 373 374 /* if (signal==0) { popup_and_OK("Please press <enter> to quit."); } */ 363 375 364 376 /* newtPopHelpLine(); */ … … 371 383 if (g_erase_tmpdir_and_scratchdir) { 372 384 run_program_and_log_output(g_erase_tmpdir_and_scratchdir, 1); 385 } 386 if (g_selfmounted_isodir) { 387 asprintf(&command, "umount %s", g_selfmounted_isodir); 388 run_program_and_log_output(command, 1); 389 asprintf(&command, "rmdir %s", g_selfmounted_isodir); 390 run_program_and_log_output(command, 1); 373 391 } 374 392 // iamhere("foo");
Note:
See TracChangeset
for help on using the changeset viewer.