Index: bin/cros_image_to_target.py |
diff --git a/bin/cros_image_to_target.py b/bin/cros_image_to_target.py |
index dc6a0f1be5619fbeb7db3e0869c789df269c32e5..8455777892f6ae8df104eaf830514f284d367ca6 100755 |
--- a/bin/cros_image_to_target.py |
+++ b/bin/cros_image_to_target.py |
@@ -33,7 +33,7 @@ DEFAULT_IMAGE_NAME = 'chromiumos_image.bin' |
# The filenames we provide to clients to pull updates |
UPDATE_FILENAME = 'update.gz' |
-STATEFUL_FILENAME = 'stateful.image.gz' |
+STATEFUL_FILENAME = 'stateful.tgz' |
# How long do we wait for the server to start before launching client |
SERVER_STARTUP_WAIT = 1 |
@@ -192,23 +192,16 @@ class CrosEnv(object): |
return True |
- def BuildStateful(self, src, dst): |
+ def BuildStateful(self, src, dst_dir, dst_file): |
"""Create a stateful partition update image.""" |
- if self.GetCached(src, dst): |
- self.Info('Using cached stateful %s' % dst) |
+ if self.GetCached(src, dst_file): |
+ self.Info('Using cached stateful %s' % dst_file) |
return True |
- cgpt = self.ChrootPath('/usr/bin/cgpt') |
- offset = self.cmd.OutputOneLine(cgpt, 'show', '-b', '-i', '1', src) |
- size = self.cmd.OutputOneLine(cgpt, 'show', '-s', '-i', '1', src) |
- if None in (size, offset): |
- self.Error('Unable to use cgpt to get image geometry') |
- return False |
- |
- return self.cmd.RunPipe([['dd', 'if=%s' % src, 'bs=512', |
- 'skip=%s' % offset, 'count=%s' % size], |
- ['gzip', '-c']], outfile=dst) |
+ return self.cmd.Run(self.CrosUtilsPath( |
+ 'cros_generate_stateful_update_payload'), |
+ '--image=%s' % src, '--output=%s' % dst_dir) |
def GetSize(self, filename): |
return os.path.getsize(filename) |
@@ -614,7 +607,7 @@ def main(argv): |
stateful_file = os.path.join(image_directory, STATEFUL_FILENAME) |
if (not cros_env.GenerateUpdatePayload(image_file, update_file) or |
- not cros_env.BuildStateful(image_file, stateful_file)): |
+ not cros_env.BuildStateful(image_file, image_directory, stateful_file)): |
cros_env.Fatal() |
cros_env.CreateServer(options.port, update_file, stateful_file) |