Compare commits

...

2 Commits

Author SHA1 Message Date
Ryan Fox 0995cbe960
Add a command to open package websites 2023-07-06 18:21:22 -07:00
Ryan Fox b498049703
Make outdated check more verbose 2023-07-06 18:20:42 -07:00
3 changed files with 50 additions and 1 deletions

View File

@ -3,12 +3,14 @@ from pkgcrap.list_update import main as update
from pkgcrap.list_update import maintlist as maintlist
from pkgcrap.outdated_check import main as outdated
from pkgcrap.forge_scan import main as forgescan
from pkgcrap.website import main as website
options = {
'update': update,
'outdated': outdated,
'maintlist': maintlist,
'forgescan': forgescan,
'site': website,
}
def main():

View File

@ -119,7 +119,9 @@ def repo_get_latest_pypi(uri, pkg, verbose):
if verbose:
print(pkg.full_name+':', 'Invalid PyPI package!', uri)
return None
return list(json.load(r)['releases'].keys())[-1]
versions = list(json.load(r)['releases'].keys())
latest = sorted(versions, key=cmp_to_key(version_compare))[-1]
return latest
def repo_get_latest(repo, pkg, verbose):
if repo[0] == 'git':
@ -142,6 +144,8 @@ def outdated_check(pkg, verbose=False):
return
current = pkg.version_latest()
for repo in repos:
if verbose:
print(pkg.full_name+':', 'Checking '+repo[0]+' repo ('+repo[1]+')')
latest = repo_get_latest(repo, pkg, verbose)
if latest != None:
break

43
pkgcrap/website.py Normal file
View File

@ -0,0 +1,43 @@
import webbrowser
import pkgcrap.parse as parse
def repo2site(repo):
return repo[:-4] if repo.endswith('.git') else repo
def stripslash(url):
return url[:-1] if url.endswith('/') else url
def main(args):
pkg = parse.package.from_path('.')
pkg.load()
sites = list()
if len(pkg.ebuilds) > 0:
if 'HOMEPAGE' in pkg.ebuilds[0].vars:
sites.append(stripslash(pkg.ebuilds[0].vars['HOMEPAGE']))
if 'EGIT_REPO_URI' in pkg.ebuilds[0].vars:
sites.append(repo2site(pkg.ebuilds[0].vars['EGIT_REPO_URI']))
for remote in pkg.metadata.remotes:
if remote[0] == 'github':
sites.append('https://github.com/'+remote[1])
if remote[0] == 'gitlab':
sites.append('https://gitlab.com/'+remote[1])
if remote[0] == 'pypi':
sites.append('https://pypi.org/project/'+remote[1]+'/')
sites = sorted(list(set(sites)))
match len(sites):
case 0:
print('No sites found :-(')
exit(1)
case 1:
print('Opening '+sites[0])
webbrowser.open(sites[0])
case _:
print('Sites:')
for i in range(len(sites)):
print(str(i+1)+') '+sites[i])
pick = input('Pick one: ')
pick = sites[int(pick)-1]
print('Opening '+pick)
webbrowser.open(pick)