Add baseurl option to make_repo and actually set package urls

Also actually use said URL when calling 'install' operator
This commit is contained in:
Ellwood Zwovic
2017-07-14 00:56:34 -07:00
parent bbaa928c2b
commit fe7d38252d
2 changed files with 11 additions and 4 deletions

View File

@@ -408,7 +408,8 @@ class USERPREF_PT_packages(bpy.types.Panel):
lr1.label(text=pkg['bl_info'].get('name', "MISSING NAME"))
lr2.label(text=pkg['bl_info'].get('description', "MISSING DESCRIPTION"))
right.operator(BPKG_OT_install.bl_idname).package_url=""
right.operator(BPKG_OT_install.bl_idname,
text="Install").package_url=pkg.get('url', "")
for pkg in repo['packages']:
if filter_package(pkg):
@@ -434,7 +435,6 @@ class PackageManagerPreferences(bpy.types.AddonPreferences):
temp_box.label(text="Temporary stuff while we're developing")
temp_box.prop(self, 'repository_url')
temp_box.operator(BPKG_OT_refresh.bl_idname)
temp_box.operator(BPKG_OT_hang.bl_idname)
def register():

View File

@@ -163,7 +163,7 @@ class Repository:
log.info("repo.json written to %s" % path)
def make_repo(path: Path, name: str) -> Repository:
def make_repo(path: Path, name: str, baseurl: str) -> Repository:
"""Make repo.json for files in directory 'path'"""
repo = Repository(name)
@@ -181,6 +181,7 @@ def make_repo(path: Path, name: str) -> Repository:
)
package = Package(addon, bl_info)
package.url = baseurl + package.path.name
repo.add_package(package)
log.info("Repository generation successful")
@@ -194,6 +195,9 @@ def main():
help="Increase verbosity (can be used multiple times)",
action="count",
default=0)
parser.add_argument('-u', '--baseurl',
#TODO: support relative URLs
help="Component of URL leading up to the package filename.")
parser.add_argument('-n', '--name',
help="Name of repo (defaults to basename of 'path')")
parser.add_argument('-o', '--output',
@@ -212,9 +216,12 @@ def main():
if args.name is None:
args.name = args.path.name
if args.baseurl is None:
log.warning("No baseurl given, package URLs will just be filenames")
args.baseurl = ""
log.debug("Repository name: '%s'" % args.name)
repo = make_repo(args.path, args.name)
repo = make_repo(args.path, args.name, args.baseurl)
repo.dump(args.output)
if __name__ == '__main__':