forked from Mirror/pmbootstrap
pmb: Look for device/* files in device/*/... instead (!1879)
In the future, device ports will be located in a subdirectory below device/... (e.g. device/testing/device-...). Replace all occurrences of device/* with a glob that checks the subdirectories instead. Note: To ensure that this always works properly we should also add some checks that all devices are indeed located under one of the supported subdirectories (i.e. testing/community/main). Change the glob for pmaports to <aports>/**/APKBUILD. This allows using subdirectories for organization outside of device/ as well.
This commit is contained in:
parent
c399ff81a1
commit
fb8de5a553
20 changed files with 62 additions and 40 deletions
|
@ -5,6 +5,24 @@ import glob
|
|||
import pmb.parse
|
||||
|
||||
|
||||
def find_path(args, codename, file=''):
|
||||
"""
|
||||
Find path to device APKBUILD under `device/*/device-`.
|
||||
:param codename: device codename
|
||||
:param file: file to look for (e.g. APKBUILD or deviceinfo), may be empty
|
||||
:returns: path to APKBUILD
|
||||
"""
|
||||
g = glob.glob(args.aports + "/device/*/device-" + codename + '/' + file)
|
||||
if not g:
|
||||
return None
|
||||
|
||||
if len(g) != 1:
|
||||
raise RuntimeError(codename + " found multiple times in the device"
|
||||
" subdirectory of pmaports")
|
||||
|
||||
return g[0]
|
||||
|
||||
|
||||
def list_codenames(args, vendor=None):
|
||||
"""
|
||||
Get all devices, for which aports are available
|
||||
|
@ -12,7 +30,7 @@ def list_codenames(args, vendor=None):
|
|||
:returns: ["first-device", "second-device", ...]
|
||||
"""
|
||||
ret = []
|
||||
for path in glob.glob(args.aports + "/device/device-*"):
|
||||
for path in glob.glob(args.aports + "/device/*/device-*"):
|
||||
device = os.path.basename(path).split("-", 1)[1]
|
||||
if (vendor is None) or device.startswith(vendor + '-'):
|
||||
ret.append(device)
|
||||
|
@ -25,7 +43,7 @@ def list_vendors(args):
|
|||
:returns: {"vendor1", "vendor2", ...}
|
||||
"""
|
||||
ret = set()
|
||||
for path in glob.glob(args.aports + "/device/device-*"):
|
||||
for path in glob.glob(args.aports + "/device/*/device-*"):
|
||||
vendor = os.path.basename(path).split("-", 2)[1]
|
||||
ret.add(vendor)
|
||||
return ret
|
||||
|
@ -37,7 +55,7 @@ def list_apkbuilds(args):
|
|||
"""
|
||||
ret = {}
|
||||
for device in list_codenames(args):
|
||||
apkbuild_path = args.aports + "/device/device-" + device + "/APKBUILD"
|
||||
apkbuild_path = args.aports + "/device/*/device-" + device + "/APKBUILD"
|
||||
ret[device] = pmb.parse.apkbuild(args, apkbuild_path)
|
||||
return ret
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue