Ejemplo n.º 1
0
def do_format(cmd, mcname, opts, args, opterr):
    if len(args) != 0:
        opterr("Incorrect number of arguments.")
    pages_per_card = ps2mc.PS2MC_STANDARD_PAGES_PER_CARD
    if opts.clusters != None:
        pages_per_cluster = (ps2mc.PS2MC_CLUSTER_SIZE /
                             ps2mc.PS2MC_STANDARD_PAGE_SIZE)
        pages_per_card = opts.clusters * pages_per_cluster
    params = (True, ps2mc.PS2MC_STANDARD_PAGE_SIZE,
              ps2mc.PS2MC_STANDARD_PAGES_PER_ERASE_BLOCK, pages_per_card)

    if not opts.overwrite_existing:
        exists = True
        try:
            file(mcname, "rb").close()
        except EnvironmentError:
            exists = False
        if exists:
            raise io_error, (EEXIST, "file exists", mcname)

    f = file(mcname, "w+b")
    try:
        ps2mc.ps2mc(f, True, params).close()
    finally:
        f.close()
Ejemplo n.º 2
0
def do_format(cmd, mcname, opts, args, opterr):
	if len(args) != 0:
		opterr("Incorrect number of arguments.")
	pages_per_card = ps2mc.PS2MC_STANDARD_PAGES_PER_CARD
	if opts.clusters != None:
		pages_per_cluster = (ps2mc.PS2MC_CLUSTER_SIZE
				     / ps2mc.PS2MC_STANDARD_PAGE_SIZE)
		pages_per_card = opts.clusters * pages_per_cluster
	params = (not opts.no_ecc,
		  ps2mc.PS2MC_STANDARD_PAGE_SIZE,
		  ps2mc.PS2MC_STANDARD_PAGES_PER_ERASE_BLOCK,
		  pages_per_card)

	if not opts.overwrite_existing:
		exists = True
		try:
			file(mcname, "rb").close()
		except EnvironmentError:
			exists = False
		if exists:
			raise io_error, (EEXIST, "file exists", mcname)

	f = file(mcname, "w+b")
	try:
		ps2mc.ps2mc(f, True, params).close()
	finally:
		f.close()
Ejemplo n.º 3
0
    def open_mc(self, filename):
        self._close_mc()
        self.statusbar.SetStatusText("", 1)
        if self.icon_win != None:
            self.icon_win.load_icon(None, None)

        f = None
        try:
            f = file(filename, "r+b")
            mc = ps2mc.ps2mc(f)
        except EnvironmentError, value:
            if f != None:
                f.close()
            self.mc_error(value, filename)
            self.SetTitle(self.title)
            self.refresh()
            return
Ejemplo n.º 4
0
	def open_mc(self, filename):
		self._close_mc()
		self.statusbar.SetStatusText("", 1)
		if self.icon_win != None:
			self.icon_win.load_icon(None, None)
		
		f = None
		try:
			f = file(filename, "r+b")
			mc = ps2mc.ps2mc(f)
		except EnvironmentError, value:
			if f != None:
				f.close()
			self.mc_error(value, filename)
			self.SetTitle(self.title)
			self.refresh()
			return
Ejemplo n.º 5
0
def main():
    prog = sys.argv[0].decode(sys.getdefaultencoding(), "replace")
    usage = "usage: %prog [-ih] memcard.ps2 command [...]"
    description = ("Manipulate PS2 memory card images.\n\n"
                   "Supported commands: ")
    for cmd in sorted(cmd_table.keys()):
        description += "\n   " + cmd + ": " + cmd_table[cmd][3]

    version = ("mymc " + verbuild.MYMC_VERSION_MAJOR + "." +
               verbuild.MYMC_VERSION_BUILD + "   (" + _SCCS_ID + ")")

    optparser = optparse.OptionParser(prog=prog,
                                      usage=usage,
                                      description=description,
                                      version=version,
                                      formatter=my_help_formatter())
    optparser.add_option("-D",
                         dest="debug",
                         action="store_true",
                         default=False,
                         help=optparse.SUPPRESS_HELP)
    optparser.add_option("-i",
                         "--ignore-ecc",
                         action="store_true",
                         help="Ignore ECC errors while reading.")

    optparser.disable_interspersed_args()
    (opts, args) = optparser.parse_args()

    if len(args) == 0:
        try:
            import gui
        except ImportError:
            gui = None
        if gui != None:
            gui.run()
            sys.exit(0)

    if len(args) < 2:
        optparser.error("Incorrect number of arguments.")

    if opts.debug:
        cmd_table.update(debug_cmd_table)
    cmd = args[1]
    if cmd not in cmd_table:
        optparser.error('Command "%s" not recognized.' % cmd)
    (fn, mode, usage_args, description, optlist) = cmd_table[cmd]

    usage = "%prog"
    if len(optlist) > 0:
        usage += " [options]"
    if usage_args != None:
        usage += " " + usage_args
    subprog = prog + " memcard.ps2 " + cmd
    subopt_parser = suboption_parser(prog=subprog,
                                     usage=usage,
                                     description=description,
                                     option_list=optlist)
    subopt_parser.disable_interspersed_args()

    f = None
    mc = None
    ret = 0
    mcname = args[0]

    try:
        (subopts, subargs) = subopt_parser.parse_args(args[2:])
        try:
            if mode == None:
                ret = fn(cmd, mcname, subopts, subargs, subopt_parser.error)
            else:
                f = file(mcname, mode)
                mc = ps2mc.ps2mc(f, opts.ignore_ecc)
                ret = fn(cmd, mc, subopts, subargs, subopt_parser.error)
        finally:
            if mc != None:
                mc.close()
            if f != None:
                # print "f.close()"
                f.close()

    except EnvironmentError, value:
        if getattr(value, "filename", None) != None:
            write_error(value.filename, value.strerror)
            ret = 1
        elif getattr(value, "strerror", None) != None:
            write_error(mcname, value.strerror)
            ret = 1
        else:
            # something weird
            raise
        if opts.debug:
            raise
Ejemplo n.º 6
0
def main():
	prog = sys.argv[0].decode(sys.getdefaultencoding(), "replace")
	usage = "usage: %prog [-ih] memcard.ps2 command [...]"
	description = ("Manipulate PS2 memory card images.\n\n"
		       "Supported commands: ")
	for cmd in sorted(cmd_table.keys()):
		description += "\n   " + cmd + ": " + cmd_table[cmd][3]
		
	version = ("mymc "
		   + verbuild.MYMC_VERSION_MAJOR
		   + "." + verbuild.MYMC_VERSION_BUILD
		   + "   (" + _SCCS_ID + ")")

	optparser = optparse.OptionParser(prog = prog, usage = usage,
					  description = description,
			 		  version = version,
					  formatter = my_help_formatter())
	optparser.add_option("-D", dest = "debug", action = "store_true",
			     default = False, help = optparse.SUPPRESS_HELP)
	optparser.add_option("-i", "--ignore-ecc", action = "store_true",
			     help = "Ignore ECC errors while reading.")
			     
	optparser.disable_interspersed_args()
	(opts, args) = optparser.parse_args()

	if len(args) == 0:
		try:
			import gui
		except ImportError:
			gui = None
		if gui != None:
			gui.run()
			sys.exit(0)

	if len(args) < 2:
		optparser.error("Incorrect number of arguments.")

	if opts.debug:
		cmd_table.update(debug_cmd_table)
	cmd = args[1]
	if cmd not in cmd_table:
		optparser.error('Command "%s" not recognized.' % cmd)
	(fn, mode, usage_args, description, optlist) = cmd_table[cmd]

	usage = "%prog"
	if len(optlist) > 0:
		usage += " [options]"
	if usage_args != None:
		usage += " " + usage_args
	subprog = prog + " memcard.ps2 " + cmd
	subopt_parser = suboption_parser(prog = subprog, usage = usage,
					 description = description,
					 option_list = optlist)
	subopt_parser.disable_interspersed_args()
	
	f = None
	mc = None
	ret = 0
	mcname = args[0]

	try:
		(subopts, subargs) = subopt_parser.parse_args(args[2:])
		try:
			if mode == None:
				ret = fn(cmd, mcname, subopts, subargs,
					 subopt_parser.error)
			else:
				f = file(mcname, mode)
				mc = ps2mc.ps2mc(f, opts.ignore_ecc)
				ret = fn(cmd, mc, subopts, subargs,
					 subopt_parser.error)
		finally:
			if mc != None:
				mc.close()
			if f != None:
				# print "f.close()"
				f.close()

	except EnvironmentError, value:
		if getattr(value, "filename", None) != None:
			write_error(value.filename, value.strerror)
			ret = 1
		elif getattr(value, "strerror", None) != None:
			write_error(mcname, value.strerror)
			ret = 1
		else:		
			# something weird
			raise
		if opts.debug:
			raise