summaryrefslogtreecommitdiff
path: root/unrpyc/unrpyc.py
diff options
context:
space:
mode:
Diffstat (limited to 'unrpyc/unrpyc.py')
-rw-r--r--unrpyc/unrpyc.py97
1 files changed, 0 insertions, 97 deletions
diff --git a/unrpyc/unrpyc.py b/unrpyc/unrpyc.py
deleted file mode 100644
index 54ca818..0000000
--- a/unrpyc/unrpyc.py
+++ /dev/null
@@ -1,97 +0,0 @@
-import optparse
-import os.path
-import sys
-import pickle as pickle
-import codecs
-import glob
-import itertools
-import zlib
-
-class Dummy:
- def record_pycode(self,*args,**kwargs):
- return
- all_pycode = []
-
-def import_renpy(basedir=None):
- #import renpy from another location.
- if basedir:
- sys.path.append(basedir)
- global renpy
- global decompiler
-
- # Needed for pickle to read the AST
- try:
- import renpy
- except ImportError:
- print("\nFailed at importing renpy. Are you sure that the renpy directory can be found in sys.path or the current working directory?\n")
- raise
- # try to import as much renpy modules as possible, but some modules might not exist
- # in older ren'py versions.
- try: import renpy.object
- except: pass
- try:
- import renpy.game
- renpy.game.script = Dummy()
- except: pass
- try: import renpy.ast
- except: pass
- try: import renpy.atl
- except: pass
-
- import decompiler
- if basedir:
- sys.path.remove(basedir)
-
-
-def read_ast_from_file(in_file):
- raw_contents = zlib.decompress(in_file.read())
- data, stmts = pickle.loads(raw_contents)
- return stmts
-
-def decompile_rpyc(input_filename, out_filename, overwrite=False, ignore_python=False):
- # Output filename is input filename but with .rpy extension
- path, ext = os.path.splitext(input_filename)
-
- print(("Decompiling %s to %s..." % (input_filename, out_filename)))
-
- if not overwrite and os.path.exists(out_filename):
- print("Output file already exists. Pass --clobber to overwrite.")
- return False # Don't stop decompiling if one file already exists
-
- with open(input_filename, 'rb') as in_file:
- ast = read_ast_from_file(in_file)
-
- with codecs.open(out_filename, 'w', encoding='utf-8') as out_file:
- decompiler.pretty_print_ast(out_file, ast, ignore_python)
- return True
-
-if __name__ == "__main__":
- parser = optparse.OptionParser(
- usage="usage: %prog [options] input output",
- version="%prog 0.1")
-
- parser.add_option('-c', '--clobber', action='store_true', dest='clobber',
- default=False, help="overwrites existing output files")
-
- parser.add_option('-b', '--basedir', action='store', dest='basedir',
- help="specify the game base directory in which the 'renpy' directory is located")
-
- parser.add_option('-p', '--ignore-python', action='store_true', dest='ignore_python',
- default=False, help="ignore python blocks")
-
- options, args = parser.parse_args()
-
-
- if options.basedir:
- import_renpy(options.basedir)
- else:
- import_renpy()
-
- if len(args) != 2:
- parser.print_help();
- parser.error("Incorrect number of arguments: expected 2, got %d." % (len(args)))
-
- decompile_rpyc(args[0], args[1], options.clobber, options.ignore_python)
-else:
- import_renpy()
-