1
0
mirror of https://github.com/Melon-Bread/RetroUFO synced 2024-11-24 16:28:30 -05:00

Restructured for PyPi

This commit is contained in:
Rain Clark 2019-12-11 00:33:48 -05:00
parent 14a06dcac6
commit d1bd33b80a
5 changed files with 52 additions and 28 deletions

View File

@ -5,31 +5,43 @@
A ~~messy~~ Python script that grabs the latest version of every libretro core from the [build bot](https://buildbot.libretro.com/). A ~~messy~~ Python script that grabs the latest version of every libretro core from the [build bot](https://buildbot.libretro.com/).
*** ***
### Installation
The package can be installed via pip:
```bash
pip install --user RetroUFO
```
### Usage-CLI ### Usage-CLI
Just run the script with _Python 3_: Just run the script with _Python 3_:
```bash ```bash
python3 ./RetroUFO.py RetroUFO
``` ```
It will then download and extract all the latest versions of each core to their default location based on `retroarch.default.cfg` for each platform It will then download and extract all the latest versions of each core to their default location based on `retroarch.default.cfg` for each platform
_(Which is only Linux & Windows for right now)_ _(Which is only Linux, macOS, & Windows for right now)_
If you are more of a advance user, and want to do things a bit more manually, you can view all the scripts arguments by: If you are more of a advance user, and want to do things a bit more manually, you can view all the scripts arguments by:
```bash ```bash
python3 ./RetroUFO.py --help RetroUFO --help
``` ```
### Usage-GUI ### Usage-GUI
The GUI script uses [Qt for Python](https://wiki.qt.io/Qt_for_Python) ([PySide2](https://pypi.org/project/PySide2/)). So you can make sure you have that package installed by running: The GUI script uses [Qt for Python](https://wiki.qt.io/Qt_for_Python) ([PySide2](https://pypi.org/project/PySide2/)). So you can make sure you have that package installed by running if you plan to run the script manually:
```bash ```bash
pip3 install --user PySide2 pip3 install --user PySide2
``` ```
After that you can just run the script like so: After that you can just run the script like so:
```bash ```bash
python3 ./RetroUFO_GUI.py RetroUFO_GUI
``` ```
You can then just click the `Grab Cores` button at the bottom and then you should be all set. You can then just click the `Grab Cores` button at the bottom and then you should be all set.
@ -57,3 +69,4 @@ If you have your core directory set somewhere special you can override where the
- ~~Make GUI~~ - ~~Make GUI~~
- Real error handling - Real error handling
- Support for ARM detection - Support for ARM detection
- ~~Make a PyPi package~~

View File

@ -25,13 +25,29 @@ CORE_LOCATION = {
} }
def main(_args): def main():
""" Where the magic happens """ """ Where the magic happens """
parser = argparse.ArgumentParser()
parser.add_argument('-p', '--platform', metavar='STRING', required=False,
help='Platform you desire to download for')
parser.add_argument('-a', '--architecture', metavar='STRING', required=False,
help='Architecture for the platform you desire to download for')
parser.add_argument('-l', '--location', metavar='STRING', required=False,
help='Location you wish the cores to extract to')
parser.add_argument('-k', '--keep', action='store_true',
help='Keeps downloaded core archives')
args = parser.parse_args()
# If a platform and/or architecture is not supplied it is grabbed automatically # If a platform and/or architecture is not supplied it is grabbed automatically
target_platform = _args.platform if _args.platform else get_platform() target_platform = args.platform if args.platform else get_platform()
architecture = _args.architecture if _args.architecture else get_architecture() architecture = args.architecture if args.architecture else get_architecture()
location = _args.location if _args.location else CORE_LOCATION[target_platform] location = args.location if args.location else CORE_LOCATION[target_platform]
download_cores(target_platform, architecture) download_cores(target_platform, architecture)
extract_cores(location) extract_cores(location)
@ -117,20 +133,4 @@ def clean_up():
if __name__ == "__main__": if __name__ == "__main__":
""" This is executed when run from the command line """ main()
parser = argparse.ArgumentParser()
parser.add_argument('-p', '--platform', metavar='STRING', required=False,
help='Platform you desire to download for')
parser.add_argument('-a', '--architecture', metavar='STRING', required=False,
help='Architecture for tha platform you desire to download for')
parser.add_argument('-l', '--location', metavar='STRING', required=False,
help='Location you wish the cores to extract to')
parser.add_argument('-k', '--keep', action='store_true',
help='Keeps downloaded core archives')
args = parser.parse_args()
main(args)

View File

@ -260,8 +260,7 @@ class Form(QDialog):
if os.path.isdir('cores'): if os.path.isdir('cores'):
rmtree('cores/') rmtree('cores/')
def main():
if __name__ == '__main__':
# Create the Qt Application # Create the Qt Application
app = QApplication(sys.argv) app = QApplication(sys.argv)
# Create and show the form # Create and show the form
@ -271,3 +270,6 @@ if __name__ == '__main__':
form.show() form.show()
# Run the main Qt loop # Run the main Qt loop
sys.exit(app.exec_()) sys.exit(app.exec_())
if __name__ == '__main__':
main()

0
RetroUFO/__init__.py Normal file
View File

View File

@ -15,10 +15,19 @@ setuptools.setup(
keywords=["libretro", "retroarch", "core"], keywords=["libretro", "retroarch", "core"],
url="https://github.com/pypa/sampleproject", url="https://github.com/pypa/sampleproject",
packages=["RetroUFO"], packages=["RetroUFO"],
install_requires=[
'PySide2',
],
classifiers=[ classifiers=[
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License", "License :: OSI Approved :: MIT License",
"Operating System :: OS Independent", "Operating System :: OS Independent",
], ],
python_requires='>=3.6', python_requires='>=3.6',
entry_points={
'console_scripts': [
"RetroUFO=RetroUFO.RetroUFO:main",
"RetroUFO-GUI=RetroUFO.RetroUFO_GUI:main"
]
},
) )