예제 #1
0
 def handle_vol(self, vol):
     n = len(self.opts)
     if n == 0:
         print "Usage: unpack <out_path>"
         return 1
     else:
         out_path = self.opts[0]
         img = Imager()
         img.unpack(vol, out_path)
         if self.args.verbose:
             print "Unpacked %d bytes" % (img.get_total_bytes())
         return 0
예제 #2
0
 def handle_vol(self, vol):
   n = len(self.opts)
   if n == 0:
     print("Usage: unpack <out_path>")
     return 1
   else:
     out_path = self.opts[0]
     img = Imager()
     img.unpack(vol, out_path)
     if self.args.verbose:
       print("Unpacked %d bytes" % (img.get_total_bytes()))
     return 0
예제 #3
0
 def handle_vol(self, vol):
     n = len(self.opts)
     if n == 0:
         print("Usage: unpack <out_path> [fsuae]")
         return 1
     else:
         meta_mode = Imager.META_MODE_DB
         if 'fsuae' in self.opts:
             meta_mode = Imager.META_MODE_FSUAE
         out_path = self.opts[0]
         img = Imager(meta_mode=meta_mode)
         img.unpack(vol, out_path)
         if self.args.verbose:
             print("Unpacked %d bytes" % (img.get_total_bytes()))
         return 0
예제 #4
0
class PackCmd(Command):
    def __init__(self, args, opts):
        Command.__init__(self, args, opts, edit=True)
        self.imager = Imager()
        n = len(self.opts)
        if n == 0:
            print "Usage: pack <in_path> [dos_type] [out_size]"
            self.exit_code = 1
        else:
            self.in_path = self.opts[0]
            blkdev_opts = None
            dos_type = None
            if n > 1:
                # is a dostype given?
                dos_str = opts[1]
                dos_type = DosType.parse_dos_type_str(dos_str)
                if dos_type is not None:
                    begin = 2
                else:
                    begin = 1
                # take remainder as blkdev opts
                blkdev_opts = KeyValue.parse_key_value_strings(opts[begin:])
            self.blkdev_opts = blkdev_opts
            self.dos_type = dos_type
            self.imager.pack_begin(self.in_path)

    def init_blkdev(self, image_file):
        return self.imager.pack_create_blkdev(self.in_path,
                                              image_file,
                                              force=self.args.force,
                                              options=self.blkdev_opts)

    def init_vol(self, blkdev):
        return self.imager.pack_create_volume(self.in_path,
                                              blkdev,
                                              dos_type=self.dos_type)

    def handle_vol(self, volume):
        self.imager.pack_root(self.in_path, volume)
        self.imager.pack_end(self.in_path, volume)
        if self.args.verbose:
            print "Packed %d bytes" % (self.imager.get_total_bytes())
        return 0
예제 #5
0
class PackCmd(Command):
  def __init__(self, args, opts):
    Command.__init__(self, args, opts, edit=True)
    self.imager = Imager()
    n = len(self.opts)
    if n == 0:
      print("Usage: pack <in_path> [dos_type] [out_size]")
      self.exit_code = 1
    else:
      self.in_path = self.opts[0]
      blkdev_opts = None
      dos_type = None
      if n > 1:
        # is a dostype given?
        dos_str = opts[1]
        dos_type = DosType.parse_dos_type_str(dos_str)
        if dos_type is not None:
          begin = 2
        else:
          begin = 1
        # take remainder as blkdev opts
        blkdev_opts = KeyValue.parse_key_value_strings(opts[begin:])
      self.blkdev_opts = blkdev_opts
      self.dos_type = dos_type
      self.imager.pack_begin(self.in_path)

  def init_blkdev(self, image_file):
    return self.imager.pack_create_blkdev(self.in_path, image_file, force=self.args.force, options=self.blkdev_opts)

  def init_vol(self, blkdev):
    return self.imager.pack_create_volume(self.in_path, blkdev, dos_type=self.dos_type)

  def handle_vol(self, volume):
    self.imager.pack_root(self.in_path, volume)
    self.imager.pack_end(self.in_path, volume)
    if self.args.verbose:
      print("Packed %d bytes" % (self.imager.get_total_bytes()))
    return 0