Skip to content

Commit 90a2341

Browse files
committed
Add an "--only" flag to quickly build just one kind of artifact
Most often I find that I want to check just one kind of artifact (e.g., mpy files) and this is a quicker syntax than excluding the other 3 types with 3 --ignores.
1 parent ea28feb commit 90a2341

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

circuitpython_build_tools/scripts/build_bundles.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,15 +235,17 @@ def _find_libraries(current_path, depth):
235235
subdirectories.extend(_find_libraries(path, depth - 1))
236236
return subdirectories
237237

238+
all_modules = ["py", "mpy", "example", "json"]
238239
@click.command()
239240
@click.option('--filename_prefix', required=True, help="Filename prefix for the output zip files.")
240241
@click.option('--output_directory', default="bundles", help="Output location for the zip files.")
241242
@click.option('--library_location', required=True, help="Location of libraries to bundle.")
242243
@click.option('--library_depth', default=0, help="Depth of library folders. This is useful when multiple libraries are bundled together but are initially in separate subfolders.")
243244
@click.option('--package_folder_prefix', default="adafruit_", help="Prefix string used to determine package folders to bundle.")
244245
@click.option('--remote_name', default="origin", help="Git remote name to use during building")
245-
@click.option('--ignore', "-i", multiple=True, type=click.Choice(["py", "mpy", "example", "json"]), help="Bundles to ignore building")
246-
def build_bundles(filename_prefix, output_directory, library_location, library_depth, package_folder_prefix, remote_name, ignore):
246+
@click.option('--ignore', "-i", multiple=True, type=click.Choice(all_modules), help="Bundles to ignore building")
247+
@click.option('--only', "-o", multiple=True, type=click.Choice(all_modules), help="Bundles to build building")
248+
def build_bundles(filename_prefix, output_directory, library_location, library_depth, package_folder_prefix, remote_name, ignore, only):
247249
os.makedirs(output_directory, exist_ok=True)
248250

249251
package_folder_prefix = package_folder_prefix.split(", ")
@@ -263,6 +265,11 @@ def build_bundles(filename_prefix, output_directory, library_location, library_d
263265
with open(build_tools_fn, "w") as f:
264266
f.write(build_tools_version)
265267

268+
if ignore and only:
269+
raise SystemExit("Only specify one of --ignore / --only")
270+
if only:
271+
ignore = set(all_modules) - set(only)
272+
266273
# Build raw source .py bundle
267274
if "py" not in ignore:
268275
zip_filename = os.path.join(output_directory,

0 commit comments

Comments
 (0)