diff options
| author | 2011-04-27 22:37:07 +0200 | |
|---|---|---|
| committer | 2011-04-27 22:37:07 +0200 | |
| commit | 9f59aa35933f16e893ae31551c19a57744aa9d8a (patch) | |
| tree | 959d37418199b128b556578e52f4ec5c140e663e | |
| parent | 8dd59522c788332a54fa85bee2ae3d0d7fee01b0 (diff) | |
| download | libimobiledevice-9f59aa35933f16e893ae31551c19a57744aa9d8a.tar.gz libimobiledevice-9f59aa35933f16e893ae31551c19a57744aa9d8a.tar.bz2 | |
idevicebackup2: Implement UNBACK command to unpack a backup into filesystem
| -rw-r--r-- | tools/idevicebackup2.c | 15 | 
1 files changed, 14 insertions, 1 deletions
| diff --git a/tools/idevicebackup2.c b/tools/idevicebackup2.c index c443826..8ad8355 100644 --- a/tools/idevicebackup2.c +++ b/tools/idevicebackup2.c @@ -62,6 +62,7 @@ enum cmd_mode {  	CMD_RESTORE,  	CMD_INFO,  	CMD_LIST, +	CMD_UNBACK,  	CMD_LEAVE  }; @@ -1068,7 +1069,8 @@ static void print_usage(int argc, char **argv)  	printf("  backup\tcreate backup for the device\n");  	printf("  restore\trestore last backup to the device\n");  	printf("  info\t\tshow details about last completed backup of device\n"); -	printf("  list\t\tlist files of last completed backup in CSV format\n\n"); +	printf("  list\t\tlist files of last completed backup in CSV format\n"); +	printf("  unback\tUnpack a completed backup in DIRECTORY/_unback_/\n\n");  	printf("options:\n");  	printf("  -d, --debug\t\tenable communication debugging\n");  	printf("  -u, --uuid UUID\ttarget specific device by its 40-digit device UUID\n"); @@ -1130,6 +1132,9 @@ int main(int argc, char *argv[])  			cmd = CMD_LIST;  			verbose = 0;  		} +		else if (!strcmp(argv[i], "unback")) { +			cmd = CMD_UNBACK; +		}  		else if (backup_directory == NULL) {  			backup_directory = argv[i];  		} @@ -1395,6 +1400,14 @@ checkpoint:  				cmd = CMD_LEAVE;  			}  			break; +			case CMD_UNBACK: +			PRINT_VERBOSE(1, "Starting to unpack backup...\n"); +			err = mobilebackup2_send_request(mobilebackup2, "Unback", uuid, NULL, NULL); +			if (err != MOBILEBACKUP2_E_SUCCESS) { +				printf("Error requesting unback operation from device, error code %d\n", err); +				cmd = CMD_LEAVE; +			} +			break;  			default:  			break;  		} | 
