From 34a400d02262a3616410810e1268abffbd7dd874 Mon Sep 17 00:00:00 2001 From: Will Toohey Date: Fri, 5 Jan 2018 02:14:17 +1000 Subject: [PATCH] pip installable and globally runnable --- .gitignore | 3 +++ README.md | 4 ++-- ifs/__init__.py | 1 - ifstools/__init__.py | 2 ++ {ifs => ifstools}/handlers/AfpFolder.py | 0 {ifs => ifstools}/handlers/GenericFile.py | 0 {ifs => ifstools}/handlers/GenericFolder.py | 0 {ifs => ifstools}/handlers/ImageFile.py | 0 {ifs => ifstools}/handlers/MD5Folder.py | 0 {ifs => ifstools}/handlers/Node.py | 0 {ifs => ifstools}/handlers/TexFolder.py | 0 {ifs => ifstools}/handlers/__init__.py | 0 {ifs => ifstools}/handlers/lz77.py | 0 {ifs => ifstools}/ifs.py | 0 ifstools.py => ifstools/ifstools.py | 8 +++++-- {ifs => ifstools}/utils.py | 0 setup.py | 24 +++++++++++++++++++++ 17 files changed, 37 insertions(+), 5 deletions(-) delete mode 100644 ifs/__init__.py create mode 100644 ifstools/__init__.py rename {ifs => ifstools}/handlers/AfpFolder.py (100%) rename {ifs => ifstools}/handlers/GenericFile.py (100%) rename {ifs => ifstools}/handlers/GenericFolder.py (100%) rename {ifs => ifstools}/handlers/ImageFile.py (100%) rename {ifs => ifstools}/handlers/MD5Folder.py (100%) rename {ifs => ifstools}/handlers/Node.py (100%) rename {ifs => ifstools}/handlers/TexFolder.py (100%) rename {ifs => ifstools}/handlers/__init__.py (100%) rename {ifs => ifstools}/handlers/lz77.py (100%) rename {ifs => ifstools}/ifs.py (100%) rename ifstools.py => ifstools/ifstools.py (97%) rename {ifs => ifstools}/utils.py (100%) create mode 100644 setup.py diff --git a/.gitignore b/.gitignore index bb1e37f..3db853b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ __pycache__/ *.ifs *_ifs *.pyc +build/ +dist/ +ifstools.egg-info/ diff --git a/README.md b/README.md index d70246b..373d766 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ Extractor for Konmai IFS files. - Dumps the ifs manifest so you can explore the format ## Install -`pip install -r requirements.txt` +`pip install git+https://github.com/mon/kbinxml/ git+https://github.com/mon/ifstools/` ## Usage ``` -usage: ifstools.py [-h] [-y] [-o OUT_DIR] [--tex-only] [--nocache] [-s] [-r] +usage: ifstools [-h] [-y] [-o OUT_DIR] [--tex-only] [--nocache] [-s] [-r] file.ifs|folder_ifs [file.ifs|folder_ifs ...] Unpack/pack IFS files and textures diff --git a/ifs/__init__.py b/ifs/__init__.py deleted file mode 100644 index 39b0bfa..0000000 --- a/ifs/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .ifs import IFS diff --git a/ifstools/__init__.py b/ifstools/__init__.py new file mode 100644 index 0000000..8239750 --- /dev/null +++ b/ifstools/__init__.py @@ -0,0 +1,2 @@ +from .ifstools import main +from .ifs import IFS diff --git a/ifs/handlers/AfpFolder.py b/ifstools/handlers/AfpFolder.py similarity index 100% rename from ifs/handlers/AfpFolder.py rename to ifstools/handlers/AfpFolder.py diff --git a/ifs/handlers/GenericFile.py b/ifstools/handlers/GenericFile.py similarity index 100% rename from ifs/handlers/GenericFile.py rename to ifstools/handlers/GenericFile.py diff --git a/ifs/handlers/GenericFolder.py b/ifstools/handlers/GenericFolder.py similarity index 100% rename from ifs/handlers/GenericFolder.py rename to ifstools/handlers/GenericFolder.py diff --git a/ifs/handlers/ImageFile.py b/ifstools/handlers/ImageFile.py similarity index 100% rename from ifs/handlers/ImageFile.py rename to ifstools/handlers/ImageFile.py diff --git a/ifs/handlers/MD5Folder.py b/ifstools/handlers/MD5Folder.py similarity index 100% rename from ifs/handlers/MD5Folder.py rename to ifstools/handlers/MD5Folder.py diff --git a/ifs/handlers/Node.py b/ifstools/handlers/Node.py similarity index 100% rename from ifs/handlers/Node.py rename to ifstools/handlers/Node.py diff --git a/ifs/handlers/TexFolder.py b/ifstools/handlers/TexFolder.py similarity index 100% rename from ifs/handlers/TexFolder.py rename to ifstools/handlers/TexFolder.py diff --git a/ifs/handlers/__init__.py b/ifstools/handlers/__init__.py similarity index 100% rename from ifs/handlers/__init__.py rename to ifstools/handlers/__init__.py diff --git a/ifs/handlers/lz77.py b/ifstools/handlers/lz77.py similarity index 100% rename from ifs/handlers/lz77.py rename to ifstools/handlers/lz77.py diff --git a/ifs/ifs.py b/ifstools/ifs.py similarity index 100% rename from ifs/ifs.py rename to ifstools/ifs.py diff --git a/ifstools.py b/ifstools/ifstools.py similarity index 97% rename from ifstools.py rename to ifstools/ifstools.py index 90ab6e6..f07b8be 100644 --- a/ifstools.py +++ b/ifstools/ifstools.py @@ -7,7 +7,7 @@ except NameError: # py 3 pass -from ifs import IFS +from .ifs import IFS def get_choice(prompt): while True: @@ -21,7 +21,7 @@ def get_choice(prompt): else: print('Please answer y/n') -if __name__ == '__main__': +def main(): parser = argparse.ArgumentParser(description='Unpack/pack IFS files and textures') parser.add_argument('files', metavar='file.ifs|folder_ifs', type=str, nargs='+', help='files/folders to process. Files will be unpacked, folders will be repacked') @@ -55,3 +55,7 @@ if __name__ == '__main__': i.extract(args.progress, args.use_cache, args.recurse, args.tex_only, path) else: i.repack(args.progress, args.use_cache, path) + + +if __name__ == '__main__': + main() diff --git a/ifs/utils.py b/ifstools/utils.py similarity index 100% rename from ifs/utils.py rename to ifstools/utils.py diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..ff32046 --- /dev/null +++ b/setup.py @@ -0,0 +1,24 @@ +from setuptools import setup +import sys + + +requires = [ + 'lxml', + 'tqdm', + 'pillow', +] +if sys.version_info < (3,0): + requires.append('future') + +setup( + name='ifstools', + version='1.0', + entry_points = { + 'console_scripts': ['ifstools=ifstools:main'], + }, + packages=['ifstools', 'ifstools.handlers'], + url='https://github.com/mon/ifstools/', + author='mon', + author_email='me@mon.im', + install_requires=requires, +)