Skip to content

Commit 27bb822

Browse files
committed
Require version number
1 parent 4321867 commit 27bb822

File tree

2 files changed

+35
-39
lines changed

2 files changed

+35
-39
lines changed

ldnp/__main__.py

+33-34
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515

1616

1717
def make_packager(
18-
build_type: str, appdir: AppDir, package_name: str, filename_prefix: str, context_path: Path
18+
build_type: str, appdir: AppDir, package_name: str, version: str, filename_prefix: str, context_path: Path
1919
):
2020
context = Context(context_path)
2121

2222
if build_type == "rpm":
23-
packager = RpmPackager(appdir, package_name, filename_prefix, context)
23+
packager = RpmPackager(appdir, package_name, version, filename_prefix, context)
2424

2525
elif build_type == "deb":
26-
packager = DebPackager(appdir, package_name, filename_prefix, context)
26+
packager = DebPackager(appdir, package_name, version, filename_prefix, context)
2727

2828
else:
2929
raise KeyError(f"cannot create packager for unknown build type {build_type}")
@@ -75,39 +75,38 @@ def main(
7575

7676
appdir_instance = AppDir(appdir, "demo.AppDir")
7777

78+
if app_name and not package_name:
79+
logger.info(f"Using user-provided linuxdeploy output app name as package name: {app_name}")
80+
package_name = app_name
81+
elif package_name:
82+
logger.info(f"Using user-provided package name: {package_name}")
83+
else:
84+
package_name = appdir_instance.guess_package_name()
85+
86+
if not package_name:
87+
logger.critical("No package name provided and guessing failed")
88+
sys.exit(2)
89+
90+
logger.info(f"Guessed package name {package_name}")
91+
92+
if not filename_prefix:
93+
logger.info("Using package name as filename prefix")
94+
filename_prefix = package_name
95+
96+
if not package_version:
97+
try:
98+
package_version = appdir_instance.guess_package_version()
99+
except ValueError:
100+
logger.critical("Could not guess version and user did not specify one")
101+
sys.exit(2)
102+
103+
logger.info(f"Package version: {package_version}")
104+
78105
for build_type in build:
79106
with TemporaryDirectory(prefix="ldnp-") as td:
80-
if app_name and not package_name:
81-
logger.info(f"Using user-provided linuxdeploy output app name as package name: {app_name}")
82-
package_name = app_name
83-
elif package_name:
84-
logger.info(f"Using user-provided package name: {package_name}")
85-
else:
86-
package_name = appdir_instance.guess_package_name()
87-
88-
if not package_name:
89-
logger.critical("No package name provided and guessing failed")
90-
sys.exit(2)
91-
92-
logger.info(f"Guessed package name {package_name}")
93-
94-
if not filename_prefix:
95-
logger.info("Using package name as filename prefix")
96-
filename_prefix = package_name
97-
98-
packager = make_packager(build_type, appdir_instance, package_name, filename_prefix, Path(td))
99-
100-
if not package_version:
101-
try:
102-
package_version = appdir_instance.guess_package_version()
103-
except ValueError:
104-
pass
105-
106-
if not package_version:
107-
logger.warning("Could not guess package version")
108-
else:
109-
logger.info(f"Package version: {package_version}")
110-
packager.set_version(package_version)
107+
packager = make_packager(
108+
build_type, appdir_instance, package_name, package_version, filename_prefix, Path(td)
109+
)
111110

112111
if short_description and not description:
113112
logger.warning("No description provided, falling back to short description")

ldnp/packager.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313

1414
class Packager:
15-
def __init__(self, appdir: AppDir, package_name: str, filename_prefix: str, context: Context):
15+
def __init__(self, appdir: AppDir, package_name: str, version: str, filename_prefix: str, context: Context):
1616
self.appdir = appdir
1717
self.context: Context = context
1818

@@ -21,17 +21,14 @@ def __init__(self, appdir: AppDir, package_name: str, filename_prefix: str, cont
2121
# we require these values, so the CLI needs to either demand them from the user or set sane default values
2222
# TODO: validate these input values
2323
self.package_name = package_name
24+
self.version = version
2425
self.filename_prefix = filename_prefix
2526

2627
# optional values that _can_ but do not have to be set
2728
# for these values, we internally provide default values in the templates
28-
self.version = None
2929
self.description = None
3030
self.short_description = None
3131

32-
def set_version(self, version: str):
33-
self.version = version
34-
3532
def set_description(self, description: str):
3633
self.description = description
3734

0 commit comments

Comments
 (0)