Esempio n. 1
0
void
on_format_button_clicked(GtkWidget* w, gpointer user_data)
{
	FormatDialog* dialog = g_object_get_data( G_OBJECT(gtk_widget_get_toplevel(w)), "userdata" );
	FormatVolume* vol;
	gchar* fs = NULL;
	gboolean do_encrypt = FALSE;

	/* Figure out the device params */
	GtkTreeIter iter;
	if(!gtk_combo_box_get_active_iter(dialog->volume_combo, &iter))
		return;
	if( !(vol = get_cached_device_from_treeiter(dialog, &iter)) )
		return;
	fs = get_fs_from_menu(dialog);
	
	if(!fs) 	goto error_out;

	if(!warn_user_of_impending_doom(dialog, vol)) {
		g_debug("User cancelled format!");
		goto error_out;
	}

	/* TODO: Here's where we'll add the floppy support */

	gboolean create_table = !(vol->volume || libhal_drive_no_partitions_hint(vol->drive));
	start_operation(dialog, 2 + (create_table ? 1 : 0) + (do_encrypt ? 1 : 0));
	if(create_table) {
		do_next_operation(dialog, _("Creating partition table..."));

		/* TODO: Figure out what to do if any other partition is mounted on this drive */
		if(!(vol = write_partition_table(dialog, vol, fs)))
			goto error_out;
		if(!vol->volume)
			goto error_out;

	}

	if(do_encrypt) {
		/* TODO: Set up encryption here */
	}

	g_debug("Creating filesystem on %s...\n", vol->friendly_name);
	
	do_next_operation(dialog, _("Creating filesystem..."));
	do_mkfs(dialog, libhal_volume_get_device_file(vol->volume));

	do_next_operation(dialog, _("Syncing changes..."));
	g_spawn_command_line_sync("sync", NULL, NULL, NULL, NULL);

error_out:
	if(fs)
		g_free(fs);

	return;
}
Esempio n. 2
0
void CommandParser::executeCommand(int cmd){
	switch(cmd){
		case WRI  :  toAbsolute(first_arg);
					 do_wri(first_arg);     break;
		case LIST :  toAbsolute(first_arg);
					 do_list(first_arg);        break;
		case SHOW :  toAbsolute(first_arg);
					 do_show(first_arg);    break;
		case APP  :  toAbsolute(first_arg);
					 do_app(first_arg);        break;
		case CD   :  do_cd();               break;
		case HELP :  if (strlen(first_arg) == 0)
						do_helpd();
					 else
						do_help(first_arg);
					 break;
		case MKFS :  do_mkfs();             break;
		case REN  :  toAbsolute(first_arg);
					 do_ren(first_arg , second_arg);
					 break;
		case FINFO:  toAbsolute(first_arg);
					 do_info(first_arg);
					 break;
		case LINK :  toAbsolute(first_arg);
					 toAbsolute(second_arg);
					 do_link(first_arg , second_arg);
					 break;
		case QUIT :  do_quit();break;
		case CP   :  toAbsolute(first_arg);
					 toAbsolute(second_arg);
					 do_cp(first_arg , second_arg);
					 break;
		case LOAD :  do_load();
					 break;
		case ULOAD:     do_uload();
					 break;
		case RF   :  toAbsolute(first_arg);
					 do_rf(first_arg);
					 break;
		case RMD  :  toAbsolute(first_arg);
					 do_rmd(first_arg);
					 break;
		case MKD  :  toAbsolute(first_arg);
					 do_mkd(first_arg);
					 break;
		case CHOWN : toAbsolute(first_arg);
					 do_chown(first_arg,second_arg);
					 break ;
		case CHPERM : toAbsolute(first_arg);
					  do_chperm(first_arg,second_arg);
					  break;
		case ADDUSER :
					  do_adduser() ;
					  break;
		case CLS     :
					  clrscr();
					  break;
		case REBOOT  :
					 //
					  break;
		default:
					 if ( strlen(command) )
						 vd_puts("Invalid Command\n");
	}
}
Esempio n. 3
0
int
do_mkfs_b (const char *fstype, int blocksize, const char *device)
{
  optargs_bitmask = GUESTFS_MKFS_BLOCKSIZE_BITMASK;
  return do_mkfs (fstype, device, blocksize, 0, 0, 0, NULL);
}