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)