Skip to content

Commit

Permalink
Added option to list installed add-ons
Browse files Browse the repository at this point in the history
  • Loading branch information
AcidWeb committed Mar 9, 2019
1 parent 542acb8 commit 115963c
Showing 1 changed file with 19 additions and 12 deletions.
31 changes: 19 additions & 12 deletions CurseBreaker.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import os
import sys
import argparse
from colorama import init, Fore, Style
from colorama import init, Fore
from terminaltables import SingleTable
from CurseBreaker import __version__
from CurseBreaker.Core import Core
Expand All @@ -16,12 +16,13 @@ def __init__(self):
parser.add_argument('-a', '--add', help='Install add-ons', metavar='URL')
parser.add_argument('-r', '--remove', help='Remove add-ons', metavar='URL')
parser.add_argument('-u', '--update', help='Update add-ons', metavar='URL')
parser.add_argument('-l', '--list', help='Show installed add-ons', action='store_true')

self.args = parser.parse_args()
self.core = Core()
self.table = [['Status', 'Name', 'Version']]
self.gui = SingleTable(self.table)
self.gui.title = f'{Fore.LIGHTGREEN_EX}CurseBreaker {Fore.LIGHTBLACK_EX}v{__version__}{Style.RESET_ALL}'
self.gui.title = f'{Fore.LIGHTGREEN_EX}CurseBreaker {Fore.LIGHTBLACK_EX}v{__version__}{Fore.RESET}'
self.gui.justify_columns[0] = 'center'

init()
Expand All @@ -32,28 +33,34 @@ def __init__(self):
def start(self):
if not os.path.exists('Wow.exe') or not os.path.exists('Interface\\AddOns'):
print(f'{Fore.LIGHTBLACK_EX}~~~ {Fore.LIGHTGREEN_EX}CurseBreaker '
f'{Fore.LIGHTBLACK_EX}v{__version__} ~~~{Style.RESET_ALL}\n'
f'{Fore.RED}This executable should be placed in WoW directory!{Style.RESET_ALL}')
f'{Fore.LIGHTBLACK_EX}v{__version__} ~~~{Fore.RESET}\n'
f'{Fore.RED}This executable should be placed in WoW directory!{Fore.RESET}')
exit(1)

if self.args.add:
addons = self.args.add.split(',')
for addon in addons:
name, version = self.core.add_addon(addon)
if version:
self.table.append([f'{Fore.GREEN}Installed{Style.RESET_ALL}', name, version])
self.table.append([f'{Fore.GREEN}Installed{Fore.RESET}', name, version])
else:
self.table.append([f'{Fore.LIGHTBLACK_EX}Already installed{Style.RESET_ALL}', name, ''])
self.table.append([f'{Fore.LIGHTBLACK_EX}Already installed{Fore.RESET}', name, ''])
os.system('cls')
print(self.gui.table)
elif self.args.remove:
addons = self.args.remove.split(',')
for addon in addons:
name, version = self.core.del_addon(addon)
if name:
self.table.append([f'{Fore.RED}Uninstalled{Style.RESET_ALL}', name, version])
self.table.append([f'{Fore.RED}Uninstalled{Fore.RESET}', name, version])
else:
self.table.append([f'{Fore.LIGHTBLACK_EX}Not installed{Style.RESET_ALL}', addon, ''])
self.table.append([f'{Fore.LIGHTBLACK_EX}Not installed{Fore.RESET}', addon, ''])
os.system('cls')
print(self.gui.table)
elif self.args.list:
addons = sorted(self.core.config['Addons'], key=lambda k: k['Name'].lower())
for addon in addons:
self.table.append([f'{Fore.GREEN}Up-to-date{Fore.RESET}', addon['Name'], addon['InstalledVersion']])
os.system('cls')
print(self.gui.table)
else:
Expand All @@ -65,12 +72,12 @@ def start(self):
name, versionnew, versionold = self.core.update_addon(addon if isinstance(addon, str) else addon['URL'])
if versionold:
if versionold == versionnew:
self.table.append([f'{Fore.GREEN}Up-to-date{Style.RESET_ALL}', name, versionold])
self.table.append([f'{Fore.GREEN}Up-to-date{Fore.RESET}', name, versionold])
else:
self.table.append([f'{Fore.YELLOW}Updated{Style.RESET_ALL}', name,
f'{versionold} {Fore.LIGHTBLACK_EX}>>>{Style.RESET_ALL} {versionnew}'])
self.table.append([f'{Fore.YELLOW}Updated{Fore.RESET}', name,
f'{versionold} {Fore.LIGHTBLACK_EX}>>>{Fore.RESET} {versionnew}'])
else:
self.table.append([f'{Fore.LIGHTBLACK_EX}Not installed{Style.RESET_ALL}', addon, ''])
self.table.append([f'{Fore.LIGHTBLACK_EX}Not installed{Fore.RESET}', addon, ''])
os.system('cls')
print(self.gui.table)

Expand Down

0 comments on commit 115963c

Please sign in to comment.