You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.0 KiB
70 lines
2.0 KiB
// gdisk.cc
|
|
// Program modelled after Linux fdisk, but it manipulates GPT partitions
|
|
// rather than MBR partitions.
|
|
//
|
|
// by Rod Smith, project began February 2009
|
|
|
|
/* This program is copyright (c) 2009-2013 by Roderick W. Smith. It is distributed
|
|
under the terms of the GNU GPL version 2, as detailed in the COPYING file. */
|
|
|
|
#include <string.h>
|
|
#include <iostream>
|
|
#include "gpttext.h"
|
|
|
|
int main(int argc, char* argv[]) {
|
|
GPTDataTextUI theGPT;
|
|
string device = "";
|
|
UnicodeString uString;
|
|
int isError = 0;
|
|
|
|
#ifndef EFI
|
|
cout << "GPT fdisk (gdisk) version " << GPTFDISK_VERSION << "\n\n";
|
|
#endif /*EFI*/
|
|
|
|
if (!SizesOK())
|
|
exit(1);
|
|
|
|
switch (argc) {
|
|
case 1:
|
|
cout << "Type device filename, or press <Enter> to exit: ";
|
|
device = ReadString();
|
|
if (device.length() == 0)
|
|
exit(0);
|
|
else if (theGPT.LoadPartitions(device)) {
|
|
if (theGPT.GetState() != use_gpt)
|
|
WinWarning();
|
|
theGPT.MainMenu(device);
|
|
} // if/elseif
|
|
break;
|
|
case 2: // basic usage
|
|
if (theGPT.LoadPartitions(argv[1])) {
|
|
if (theGPT.GetState() != use_gpt)
|
|
WinWarning();
|
|
theGPT.MainMenu(argv[1]);
|
|
} // if
|
|
break;
|
|
case 3: // usage with "-l" option
|
|
if (strcmp(argv[1], "-l") == 0) {
|
|
device = (string) argv[2];
|
|
} else if (strcmp(argv[2], "-l") == 0) {
|
|
device = (string) argv[1];
|
|
} else { // 3 arguments, but none is "-l"
|
|
cerr << "Usage: " << argv[0] << " [-l] device_file\n";
|
|
isError = 1;
|
|
} // if/elseif/else
|
|
if (device != "") {
|
|
theGPT.JustLooking();
|
|
if (theGPT.LoadPartitions(device))
|
|
theGPT.DisplayGPTData();
|
|
else
|
|
isError = 1;
|
|
} // if
|
|
break;
|
|
default:
|
|
cerr << "Usage: " << argv[0] << " [-l] device_file\n";
|
|
isError = 1;
|
|
break;
|
|
} // switch
|
|
return (isError);
|
|
} // main
|