1
0
mirror of https://github.com/Melon-Bread/RetroUFO synced 2025-07-04 12:54:37 -04:00

Compare commits

...

22 Commits

Author SHA1 Message Date
510e219161 Fixed some metadata 2019-12-11 01:16:08 -05:00
f020623389 Fixed GUI Command 2019-12-11 01:12:35 -05:00
1cd5199c69 Better wording 2019-12-11 01:08:35 -05:00
d75cca5382 Updated badges some 2019-12-11 01:04:02 -05:00
bdd5986bb0 Have to bump the version to fix PyPi info 2019-12-11 00:52:47 -05:00
5f3ad0ccc4 I had one job, and I goofed 2019-12-11 00:50:40 -05:00
9314750c49 Don't need useless comments 2019-12-11 00:45:35 -05:00
03784e2dba Don't assume pip is in the $PATH 2019-12-11 00:37:00 -05:00
d21e4b93dc Python 2 is EOL 2019-12-11 00:36:01 -05:00
d1bd33b80a Restructured for PyPi 2019-12-11 00:33:48 -05:00
14a06dcac6 Cleaned up 2019-12-11 00:32:52 -05:00
df131bb6f3 Initial Commit 2019-12-10 22:49:59 -05:00
90fc6b69ff Added VSCode 2019-12-10 21:24:54 -05:00
c60c6be12f Cleanup actually checks if the 'cores' dir exists now 2019-05-17 01:39:50 -04:00
7c5dfc4c11 Added icon support 2019-05-17 01:38:52 -04:00
bd7df18495 Initial Commit 2019-05-17 01:38:18 -04:00
9b76d6b264 Added PyInstaller 2019-05-17 01:30:13 -04:00
0cb18c56ce Initial Commit 2019-05-17 00:36:41 -04:00
13435a0aa4 Update RetroUFO_GUI.py 2019-05-17 00:31:23 -04:00
4ab73eb6b8 Forgot to finish refactoring 2019-05-06 19:15:10 -04:00
ddb4af9772 Merge pull request #2 from Melon-Bread/gui
Added msg in log when update finishes
2019-04-04 23:47:13 -04:00
3bd1159381 Merge pull request #1 from Melon-Bread/gui
Gui
2019-03-06 09:14:39 -05:00
8 changed files with 93 additions and 39 deletions

3
.gitignore vendored
View File

@ -108,3 +108,6 @@ venv.bak/
# folders from script
cores/
# VSCode
.vscode/

View File

@ -1,35 +1,47 @@
# RetroUFO
[![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macos%20%7C%20windows-yellow.svg)](https://www.youtube.com/watch?v=NLGoKxh8Aq4)
[![Python Version](https://img.shields.io/pypi/pyversions/Django.svg)](https://www.python.org/downloads/) [![License.](https://img.shields.io/github/license/mashape/apistatus.svg)](https://opensource.org/licenses/MIT)
[![Python Version](https://img.shields.io/pypi/pyversions/Django.svg)](https://www.python.org/downloads/) [![PyPI license](https://img.shields.io/pypi/l/ansicolortags.svg)](https://opensource.org/licenses/MIT) [![PyPI version](https://badge.fury.io/py/RetroUFO.svg)](https://pypi.org/project/RetroUFO/)
A ~~messy~~ Python script that grabs the latest version of every libretro core from the [build bot](https://buildbot.libretro.com/).
***
### Usage-CLI
Just run the script with _Python 3_:
### Installation
The package can be installed via pip:
```bash
python3 ./RetroUFO.py
python -m pip install --user RetroUFO
```
### Usage-CLI
Just run the script from the terminal:
```bash
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
_(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:
```bash
python3 ./RetroUFO.py --help
RetroUFO --help
```
### 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 if you plan to run the script manually:
```bash
pip3 install --user PySide2
python -m pip install --user PySide2
```
After that you can just run the script like so:
```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.
@ -57,3 +69,4 @@ If you have your core directory set somewhere special you can override where the
- ~~Make GUI~~
- Real error handling
- Support for ARM detection
- ~~Make a PyPi package~~

View File

@ -4,7 +4,7 @@ Grabs the latest version of every libretro core from the build bot.
"""
__author__ = "Melon Bread"
__version__ = "0.9.0"
__version__ = "0.9.5"
__license__ = "MIT"
import argparse
@ -25,15 +25,31 @@ CORE_LOCATION = {
}
def main(_args):
def main():
""" Where the magic happens """
# If a platform and/or architecture is not supplied it is grabbed automatically
target_platform = _args.platform if _args.platform else get_platform()
architecture = _args.architecture if _args.architecture else get_architecture()
location = _args.location if _args.location else CORE_LOCATION[platform]
parser = argparse.ArgumentParser()
download_cores(platform, architecture)
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
target_platform = args.platform if args.platform else get_platform()
architecture = args.architecture if args.architecture else get_architecture()
location = args.location if args.location else CORE_LOCATION[target_platform]
download_cores(target_platform, architecture)
extract_cores(location)
if not args.keep:
@ -112,25 +128,9 @@ def extract_cores(_location):
def clean_up():
""" Removes all the downloaded files """
if os.listdir('cores'):
if os.path.isdir('cores'):
rmtree('cores/')
if __name__ == "__main__":
""" This is executed when run from the command line """
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)
main()

View File

@ -4,7 +4,7 @@ Grabs the latest version of every libretro core from the build bot.
"""
__author__ = "Melon Bread"
__version__ = "0.9.0"
__version__ = "0.9.5"
__license__ = "MIT"
import os
@ -15,7 +15,7 @@ from shutil import rmtree
from urllib.request import urlretrieve
from PySide2.QtCore import QThread, Signal
from PySide2.QtGui import QTextCursor
from PySide2.QtGui import QTextCursor, QIcon
from PySide2.QtWidgets import (QApplication, QCheckBox, QComboBox, QDialog,
QFileDialog, QLineEdit, QPushButton, QTextEdit,
QVBoxLayout, QMessageBox)
@ -257,16 +257,19 @@ class Form(QDialog):
def clean_up(self):
""" Removes all the downloaded files """
if os.listdir('cores'):
if os.path.isdir('cores'):
rmtree('cores/')
if __name__ == '__main__':
def main():
# Create the Qt Application
app = QApplication(sys.argv)
# Create and show the form
form = Form()
form.setFixedWidth(438) # So all text on the log UI stays on one line
form.setWindowIcon(QIcon('icon.png'))
form.show()
# Run the main Qt loop
sys.exit(app.exec_())
if __name__ == '__main__':
main()

0
RetroUFO/__init__.py Normal file
View File

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

2
requirements.txt Normal file
View File

@ -0,0 +1,2 @@
PySide2>=5.12.3

33
setup.py Normal file
View File

@ -0,0 +1,33 @@
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="RetroUFO",
version="0.9.5-1",
author="Melon Bread",
author_email="rain@melonbread.dev",
description="Easily upgrade all libreto cores from the build bot",
long_description=long_description,
long_description_content_type="text/markdown",
license="MIT",
keywords=["libretro", "retroarch", "core"],
url="https://github.com/Melon-Bread/RetroUFO",
packages=["RetroUFO"],
install_requires=[
'PySide2',
],
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.6',
entry_points={
'console_scripts': [
"RetroUFO=RetroUFO.RetroUFO:main",
"RetroUFO-GUI=RetroUFO.RetroUFO_GUI:main"
]
},
)