summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Anderson <dvander@google.com>2018-11-09 01:26:17 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-11-09 01:26:17 +0000
commit14a93639fd124abc8c100fb6f6c7a017236b05b1 (patch)
treefd50dd8ba8db16c7246f5174fb6b7ea9b24a0c8b
parentef055adc781de9839ea57752887bb0916d1e6deb (diff)
parent47058fb731167a8c5aaf983df82675ace2b3482c (diff)
downloadextras-14a93639fd124abc8c100fb6f6c7a017236b05b1.tar.gz
Merge "lpmake: Allow writing split super images."
-rw-r--r--partition_tools/lpdump.cc6
-rw-r--r--partition_tools/lpmake.cc10
2 files changed, 10 insertions, 6 deletions
diff --git a/partition_tools/lpdump.cc b/partition_tools/lpdump.cc
index 689ffb13..e3689d23 100644
--- a/partition_tools/lpdump.cc
+++ b/partition_tools/lpdump.cc
@@ -84,10 +84,8 @@ int main(int argc, char* argv[]) {
}
const char* file = argv[optind++];
- std::unique_ptr<LpMetadata> pt;
- if (IsBlockDevice(file)) {
- pt = ReadMetadata(file, slot);
- } else {
+ auto pt = ReadMetadata(file, slot);
+ if (!pt && !IsBlockDevice(file)) {
pt = ReadFromImageFile(file);
}
if (!pt) {
diff --git a/partition_tools/lpmake.cc b/partition_tools/lpmake.cc
index 7a2ba518..1c11c4d2 100644
--- a/partition_tools/lpmake.cc
+++ b/partition_tools/lpmake.cc
@@ -352,8 +352,14 @@ int main(int argc, char* argv[]) {
std::unique_ptr<LpMetadata> metadata = builder->Export();
if (output_sparse) {
- if (!WriteToSparseFile(output_path.c_str(), *metadata.get(), block_size, images)) {
- return EX_CANTCREAT;
+ if (block_devices.size() == 1) {
+ if (!WriteToSparseFile(output_path.c_str(), *metadata.get(), block_size, images)) {
+ return EX_CANTCREAT;
+ }
+ } else {
+ if (!WriteSplitSparseFiles(output_path, *metadata.get(), block_size, images)) {
+ return EX_CANTCREAT;
+ }
}
} else if (!WriteToImageFile(output_path.c_str(), *metadata.get())) {
return EX_CANTCREAT;