diff --git a/src/app/zap_cluster_list.json b/src/app/zap_cluster_list.json new file mode 100644 index 00000000000000..9d0a3dfc082ac7 --- /dev/null +++ b/src/app/zap_cluster_list.json @@ -0,0 +1,189 @@ +{ + "ServerDirectories": { + "ACCESS_CONTROL_CLUSTER": ["access-control-server"], + "ACCOUNT_LOGIN_CLUSTER": ["account-login-server"], + "ADMINISTRATOR_COMMISSIONING_CLUSTER": [ + "administrator-commissioning-server" + ], + "ALARM_CLUSTER": [], + "APPLICATION_BASIC_CLUSTER": ["application-basic-server"], + "APPLICATION_LAUNCHER_CLUSTER": ["application-launcher-server"], + "AUDIO_OUTPUT_CLUSTER": ["audio-output-server"], + "BALLAST_CONFIGURATION_CLUSTER": [], + "BARRIER_CONTROL_CLUSTER": ["barrier-control-server"], + "BASIC_INFORMATION_CLUSTER": ["basic-information"], + "BINARY_INPUT_BASIC_CLUSTER": [], + "BINDING_CLUSTER": ["bindings"], + "BOOLEAN_STATE_CLUSTER": [], + "ACTIONS_CLUSTER": [], + "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER": [ + "bridged-device-basic-information-server" + ], + "CHANNEL_CLUSTER": ["channel-server"], + "CLIENT_MONITORING_CLUSTER": ["client-monitoring-server"], + "COLOR_CONTROL_CLUSTER": ["color-control-server"], + "COMMISSIONING_CLUSTER": [], + "CONTENT_LAUNCHER_CLUSTER": ["content-launch-server"], + "DESCRIPTOR_CLUSTER": ["descriptor"], + "DEVICE_TEMP_CLUSTER": [], + "DIAGNOSTIC_LOGS_CLUSTER": ["diagnostic-logs-server"], + "DOOR_LOCK_CLUSTER": ["door-lock-server"], + "ELECTRICAL_MEASUREMENT_CLUSTER": [], + "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER": [ + "ethernet-network-diagnostics-server" + ], + "FAULT_INJECTION_CLUSTER": ["fault-injection-server"], + "FAN_CONTROL_CLUSTER": ["fan-control-server"], + "FIXED_LABEL_CLUSTER": ["fixed-label-server"], + "FLOW_MEASUREMENT_CLUSTER": [], + "GENERAL_COMMISSIONING_CLUSTER": ["general-commissioning-server"], + "GENERAL_DIAGNOSTICS_CLUSTER": ["general-diagnostics-server"], + "GROUP_KEY_MANAGEMENT_CLUSTER": ["group-key-mgmt-server"], + "GROUPS_CLUSTER": ["groups-server"], + "IAS_ZONE_CLUSTER": [], + "IDENTIFY_CLUSTER": ["identify-server"], + "ILLUMINANCE_MEASUREMENT_CLUSTER": [], + "KEYPAD_INPUT_CLUSTER": ["keypad-input-server"], + "LEVEL_CONTROL_CLUSTER": ["level-control"], + "LOCALIZATION_CONFIGURATION_CLUSTER": [ + "localization-configuration-server" + ], + "LOW_POWER_CLUSTER": ["low-power-server"], + "MEDIA_INPUT_CLUSTER": ["media-input-server"], + "MEDIA_PLAYBACK_CLUSTER": ["media-playback-server"], + "MODE_SELECT_CLUSTER": ["mode-select-server"], + "NETWORK_COMMISSIONING_CLUSTER": ["network-commissioning"], + "OCCUPANCY_SENSING_CLUSTER": ["occupancy-sensor-server"], + "ON_OFF_CLUSTER": ["on-off-server"], + "ON_OFF_SWITCH_CONFIGURATION_CLUSTER": [], + "OPERATIONAL_CREDENTIALS_CLUSTER": ["operational-credentials-server"], + "OTA_BOOTLOAD_CLUSTER": [], + "OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER": ["ota-provider"], + "OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER": ["ota-requestor"], + "POWER_SOURCE_CLUSTER": ["power-source-server"], + "POWER_SOURCE_CONFIGURATION_CLUSTER": [ + "power-source-configuration-server" + ], + "POLL_CONTROL_CLUSTER": [], + "POWER_CONFIG_CLUSTER": [], + "POWER_PROFILE_CLUSTER": [], + "PRESSURE_MEASUREMENT_CLUSTER": [], + "PROXY_CONFIGURATION_CLUSTER": [], + "PROXY_DISCOVERY_CLUSTER": [], + "PROXY_VALID_CLUSTER": [], + "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER": [ + "pump-configuration-and-control-server" + ], + "PWM_CLUSTER": [], + "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER": [], + "SCENES_CLUSTER": ["scenes"], + "SOFTWARE_DIAGNOSTICS_CLUSTER": ["software-diagnostics-server"], + "SWITCH_CLUSTER": ["switch-server"], + "TARGET_NAVIGATOR_CLUSTER": ["target-navigator-server"], + "TEMPERATURE_MEASUREMENT_CLUSTER": [], + "UNIT_TESTING_CLUSTER": ["test-cluster-server"], + "THERMOSTAT_CLUSTER": ["thermostat-server"], + "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER": [ + "thermostat-user-interface-configuration-server" + ], + "THREAD_NETWORK_DIAGNOSTICS_CLUSTER": [ + "thread-network-diagnostics-server" + ], + "TIME_CLUSTER": [], + "TIME_FORMAT_LOCALIZATION_CLUSTER": ["time-format-localization-server"], + "TIME_SYNCHRONIZATION_CLUSTER": [], + "UNIT_LOCALIZATION_CLUSTER": [], + "USER_LABEL_CLUSTER": ["user-label-server"], + "WAKE_ON_LAN_CLUSTER": ["wake-on-lan-server"], + "WIFI_NETWORK_DIAGNOSTICS_CLUSTER": ["wifi-network-diagnostics-server"], + "WINDOW_COVERING_CLUSTER": ["window-covering-server"], + "ZLL_COMMISSIONING_CLUSTER": [] + }, + "ClientDirectories": { + "ACCESS_CONTROL_CLUSTER": [], + "ACCOUNT_LOGIN_CLUSTER": [], + "ADMINISTRATOR_COMMISSIONING_CLUSTER": [], + "ALARM_CLUSTER": [], + "APPLICATION_BASIC_CLUSTER": [], + "APPLICATION_LAUNCHER_CLUSTER": [], + "AUDIO_OUTPUT_CLUSTER": [], + "BALLAST_CONFIGURATION_CLUSTER": [], + "BARRIER_CONTROL_CLUSTER": [], + "BASIC_INFORMATION_CLUSTER": [], + "BINARY_INPUT_BASIC_CLUSTER": [], + "BINDING_CLUSTER": [], + "BOOLEAN_STATE_CLUSTER": [], + "ACTIONS_CLUSTER": [], + "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER": [], + "CHANNEL_CLUSTER": [], + "CLIENT_MONITORING_CLUSTER": [], + "COLOR_CONTROL_CLUSTER": [], + "COMMISSIONING_CLUSTER": [], + "CONTENT_LAUNCHER_CLUSTER": [], + "DESCRIPTOR_CLUSTER": [], + "DEVICE_TEMP_CLUSTER": [], + "DIAGNOSTIC_LOGS_CLUSTER": [], + "DOOR_LOCK_CLUSTER": [], + "ELECTRICAL_MEASUREMENT_CLUSTER": [], + "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER": [], + "FAULT_INJECTION_CLUSTER": [], + "FAN_CONTROL_CLUSTER": [], + "FIXED_LABEL_CLUSTER": [], + "FLOW_MEASUREMENT_CLUSTER": [], + "GENERAL_COMMISSIONING_CLUSTER": [], + "GENERAL_DIAGNOSTICS_CLUSTER": [], + "GROUP_KEY_MANAGEMENT_CLUSTER": [], + "GROUPS_CLUSTER": [], + "IAS_ZONE_CLUSTER": [], + "IDENTIFY_CLUSTER": [], + "ILLUMINANCE_MEASUREMENT_CLUSTER": [], + "KEYPAD_INPUT_CLUSTER": [], + "LEVEL_CONTROL_CLUSTER": [], + "LOCALIZATION_CONFIGURATION_CLUSTER": [], + "LOW_POWER_CLUSTER": [], + "MEDIA_INPUT_CLUSTER": [], + "MEDIA_PLAYBACK_CLUSTER": [], + "MODE_SELECT_CLUSTER": [], + "NETWORK_COMMISSIONING_CLUSTER": [], + "OCCUPANCY_SENSING_CLUSTER": ["occupancy-sensor-server"], + "ON_OFF_CLUSTER": [], + "ON_OFF_SWITCH_CONFIGURATION_CLUSTER": [], + "OPERATIONAL_CREDENTIALS_CLUSTER": [], + "OTA_BOOTLOAD_CLUSTER": [], + "OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER": [], + "OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER": [], + "POLL_CONTROL_CLUSTER": [], + "POWER_CONFIG_CLUSTER": [], + "POWER_PROFILE_CLUSTER": [], + "POWER_SOURCE_CLUSTER": [], + "POWER_SOURCE_CONFIGURATION_CLUSTER": [], + "PRESSURE_MEASUREMENT_CLUSTER": [], + "PROXY_CONFIGURATION_CLUSTER": [], + "PROXY_DISCOVERY_CLUSTER": [], + "PROXY_VALID_CLUSTER": [], + "PUMP_CONFIGURATION_AND_CONTROL_CLUSTER": [ + "pump-configuration-and-control-client" + ], + "PWM_CLUSTER": [], + "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER": [], + "SCENES_CLUSTER": [], + "SOFTWARE_DIAGNOSTICS_CLUSTER": [], + "SWITCH_CLUSTER": [], + "TARGET_NAVIGATOR_CLUSTER": [], + "TEMPERATURE_MEASUREMENT_CLUSTER": [], + "UNIT_TESTING_CLUSTER": [], + "THERMOSTAT_CLUSTER": ["thermostat-client"], + "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER": [], + "THREAD_NETWORK_DIAGNOSTICS_CLUSTER": [], + "TIME_CLUSTER": [], + "TIME_FORMAT_LOCALIZATION_CLUSTER": [], + "TIME_SYNCHRONIZATION_CLUSTER": [], + "TRUSTED_ROOT_CERTIFICATES_CLUSTER": [], + "UNIT_LOCALIZATION_CLUSTER": [], + "USER_LABEL_CLUSTER": [], + "WAKE_ON_LAN_CLUSTER": [], + "WIFI_NETWORK_DIAGNOSTICS_CLUSTER": [], + "WINDOW_COVERING_CLUSTER": [], + "ZLL_COMMISSIONING_CLUSTER": [] + } +} diff --git a/src/app/zap_cluster_list.py b/src/app/zap_cluster_list.py index 0a21830a55dbfd..5cdd78216c8921 100755 --- a/src/app/zap_cluster_list.py +++ b/src/app/zap_cluster_list.py @@ -3,183 +3,11 @@ import argparse import json +import os import pathlib import sys import typing -# List of directories in src/app/clusters to build for server clusters. -SERVER_CLUSTERS: typing.Dict[str, typing.List[str]] = { - 'ACCESS_CONTROL_CLUSTER': ['access-control-server'], - 'ACCOUNT_LOGIN_CLUSTER': ['account-login-server'], - 'ADMINISTRATOR_COMMISSIONING_CLUSTER': ['administrator-commissioning-server'], - 'ALARM_CLUSTER': [], - 'APPLICATION_BASIC_CLUSTER': ['application-basic-server'], - 'APPLICATION_LAUNCHER_CLUSTER': ['application-launcher-server'], - 'AUDIO_OUTPUT_CLUSTER': ['audio-output-server'], - 'BALLAST_CONFIGURATION_CLUSTER': [], - 'BARRIER_CONTROL_CLUSTER': ['barrier-control-server'], - 'BASIC_INFORMATION_CLUSTER': ['basic-information'], - 'BINARY_INPUT_BASIC_CLUSTER': [], - 'BINDING_CLUSTER': ['bindings'], - 'BOOLEAN_STATE_CLUSTER': [], - 'ACTIONS_CLUSTER': [], - 'BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER': ['bridged-device-basic-information-server'], - 'CHANNEL_CLUSTER': ['channel-server'], - 'CLIENT_MONITORING_CLUSTER': ['client-monitoring-server'], - 'COLOR_CONTROL_CLUSTER': ['color-control-server'], - 'COMMISSIONING_CLUSTER': [], - 'CONTENT_LAUNCHER_CLUSTER': ['content-launch-server'], - 'DESCRIPTOR_CLUSTER': ['descriptor'], - 'DEVICE_TEMP_CLUSTER': [], - 'DIAGNOSTIC_LOGS_CLUSTER': ['diagnostic-logs-server'], - 'DOOR_LOCK_CLUSTER': ['door-lock-server'], - 'ELECTRICAL_MEASUREMENT_CLUSTER': [], - 'ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER': ['ethernet-network-diagnostics-server'], - 'FAULT_INJECTION_CLUSTER': ['fault-injection-server'], - 'FAN_CONTROL_CLUSTER': ['fan-control-server'], - 'FIXED_LABEL_CLUSTER': ['fixed-label-server'], - 'FLOW_MEASUREMENT_CLUSTER': [], - 'GENERAL_COMMISSIONING_CLUSTER': ['general-commissioning-server'], - 'GENERAL_DIAGNOSTICS_CLUSTER': ['general-diagnostics-server'], - 'GROUP_KEY_MANAGEMENT_CLUSTER': ['group-key-mgmt-server'], - 'GROUPS_CLUSTER': ['groups-server'], - 'IAS_ZONE_CLUSTER': [], - 'IDENTIFY_CLUSTER': ['identify-server'], - 'ILLUMINANCE_MEASUREMENT_CLUSTER': [], - 'KEYPAD_INPUT_CLUSTER': ['keypad-input-server'], - 'LEVEL_CONTROL_CLUSTER': ['level-control'], - 'LOCALIZATION_CONFIGURATION_CLUSTER': ['localization-configuration-server'], - 'LOW_POWER_CLUSTER': ['low-power-server'], - 'MEDIA_INPUT_CLUSTER': ['media-input-server'], - 'MEDIA_PLAYBACK_CLUSTER': ['media-playback-server'], - 'MODE_SELECT_CLUSTER': ['mode-select-server'], - 'NETWORK_COMMISSIONING_CLUSTER': ['network-commissioning'], - 'OCCUPANCY_SENSING_CLUSTER': ['occupancy-sensor-server'], - 'ON_OFF_CLUSTER': ['on-off-server'], - 'ON_OFF_SWITCH_CONFIGURATION_CLUSTER': [], - 'OPERATIONAL_CREDENTIALS_CLUSTER': ['operational-credentials-server'], - 'OTA_BOOTLOAD_CLUSTER': [], - 'OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER': ['ota-provider'], - 'OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER': ['ota-requestor'], - 'POWER_SOURCE_CLUSTER': ['power-source-server'], - 'POWER_SOURCE_CONFIGURATION_CLUSTER': ['power-source-configuration-server'], - 'POLL_CONTROL_CLUSTER': [], - 'POWER_CONFIG_CLUSTER': [], - 'POWER_PROFILE_CLUSTER': [], - 'PRESSURE_MEASUREMENT_CLUSTER': [], - 'PROXY_CONFIGURATION_CLUSTER': [], - 'PROXY_DISCOVERY_CLUSTER': [], - 'PROXY_VALID_CLUSTER': [], - 'PUMP_CONFIGURATION_AND_CONTROL_CLUSTER': ['pump-configuration-and-control-server'], - 'PWM_CLUSTER': [], - 'RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER': [], - 'SCENES_CLUSTER': ['scenes'], - 'SOFTWARE_DIAGNOSTICS_CLUSTER': ['software-diagnostics-server'], - 'SWITCH_CLUSTER': ['switch-server'], - 'TARGET_NAVIGATOR_CLUSTER': ['target-navigator-server'], - 'TEMPERATURE_MEASUREMENT_CLUSTER': [], - 'UNIT_TESTING_CLUSTER': ['test-cluster-server'], - 'THERMOSTAT_CLUSTER': ['thermostat-server'], - 'THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER': ['thermostat-user-interface-configuration-server'], - 'THREAD_NETWORK_DIAGNOSTICS_CLUSTER': ['thread-network-diagnostics-server'], - 'TIME_CLUSTER': [], - 'TIME_FORMAT_LOCALIZATION_CLUSTER': ['time-format-localization-server'], - 'TIME_SYNCHRONIZATION_CLUSTER': [], - 'UNIT_LOCALIZATION_CLUSTER': [], - 'USER_LABEL_CLUSTER': ['user-label-server'], - 'WAKE_ON_LAN_CLUSTER': ['wake-on-lan-server'], - 'WIFI_NETWORK_DIAGNOSTICS_CLUSTER': ['wifi-network-diagnostics-server'], - 'WINDOW_COVERING_CLUSTER': ['window-covering-server'], - 'ZLL_COMMISSIONING_CLUSTER': [] -} - -# List of directories in src/app/clusters to build for client clusters. -CLIENT_CLUSTERS: typing.Dict[str, typing.List[str]] = { - 'ACCESS_CONTROL_CLUSTER': [], - 'ACCOUNT_LOGIN_CLUSTER': [], - 'ADMINISTRATOR_COMMISSIONING_CLUSTER': [], - 'ALARM_CLUSTER': [], - 'APPLICATION_BASIC_CLUSTER': [], - 'APPLICATION_LAUNCHER_CLUSTER': [], - 'AUDIO_OUTPUT_CLUSTER': [], - 'BALLAST_CONFIGURATION_CLUSTER': [], - 'BARRIER_CONTROL_CLUSTER': [], - 'BASIC_INFORMATION_CLUSTER': [], - 'BINARY_INPUT_BASIC_CLUSTER': [], - 'BINDING_CLUSTER': [], - 'BOOLEAN_STATE_CLUSTER': [], - 'ACTIONS_CLUSTER': [], - 'BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER': [], - 'CHANNEL_CLUSTER': [], - 'CLIENT_MONITORING_CLUSTER': [], - 'COLOR_CONTROL_CLUSTER': [], - 'COMMISSIONING_CLUSTER': [], - 'CONTENT_LAUNCHER_CLUSTER': [], - 'DESCRIPTOR_CLUSTER': [], - 'DEVICE_TEMP_CLUSTER': [], - 'DIAGNOSTIC_LOGS_CLUSTER': [], - 'DOOR_LOCK_CLUSTER': [], - 'ELECTRICAL_MEASUREMENT_CLUSTER': [], - 'ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER': [], - 'FAULT_INJECTION_CLUSTER': [], - 'FAN_CONTROL_CLUSTER': [], - 'FIXED_LABEL_CLUSTER': [], - 'FLOW_MEASUREMENT_CLUSTER': [], - 'GENERAL_COMMISSIONING_CLUSTER': [], - 'GENERAL_DIAGNOSTICS_CLUSTER': [], - 'GROUP_KEY_MANAGEMENT_CLUSTER': [], - 'GROUPS_CLUSTER': [], - 'IAS_ZONE_CLUSTER': [], - 'IDENTIFY_CLUSTER': [], - 'ILLUMINANCE_MEASUREMENT_CLUSTER': [], - 'KEYPAD_INPUT_CLUSTER': [], - 'LEVEL_CONTROL_CLUSTER': [], - 'LOCALIZATION_CONFIGURATION_CLUSTER': [], - 'LOW_POWER_CLUSTER': [], - 'MEDIA_INPUT_CLUSTER': [], - 'MEDIA_PLAYBACK_CLUSTER': [], - 'MODE_SELECT_CLUSTER': [], - 'NETWORK_COMMISSIONING_CLUSTER': [], - 'OCCUPANCY_SENSING_CLUSTER': ['occupancy-sensor-server'], - 'ON_OFF_CLUSTER': [], - 'ON_OFF_SWITCH_CONFIGURATION_CLUSTER': [], - 'OPERATIONAL_CREDENTIALS_CLUSTER': [], - 'OTA_BOOTLOAD_CLUSTER': [], - 'OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER': [], - 'OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER': [], - 'POLL_CONTROL_CLUSTER': [], - 'POWER_CONFIG_CLUSTER': [], - 'POWER_PROFILE_CLUSTER': [], - 'POWER_SOURCE_CLUSTER': [], - 'POWER_SOURCE_CONFIGURATION_CLUSTER': [], - 'PRESSURE_MEASUREMENT_CLUSTER': [], - 'PROXY_CONFIGURATION_CLUSTER': [], - 'PROXY_DISCOVERY_CLUSTER': [], - 'PROXY_VALID_CLUSTER': [], - 'PUMP_CONFIGURATION_AND_CONTROL_CLUSTER': ['pump-configuration-and-control-client'], - 'PWM_CLUSTER': [], - 'RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER': [], - 'SCENES_CLUSTER': [], - 'SOFTWARE_DIAGNOSTICS_CLUSTER': [], - 'SWITCH_CLUSTER': [], - 'TARGET_NAVIGATOR_CLUSTER': [], - 'TEMPERATURE_MEASUREMENT_CLUSTER': [], - 'UNIT_TESTING_CLUSTER': [], - 'THERMOSTAT_CLUSTER': ['thermostat-client'], - 'THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER': [], - 'THREAD_NETWORK_DIAGNOSTICS_CLUSTER': [], - 'TIME_CLUSTER': [], - 'TIME_FORMAT_LOCALIZATION_CLUSTER': [], - 'TIME_SYNCHRONIZATION_CLUSTER': [], - 'TRUSTED_ROOT_CERTIFICATES_CLUSTER': [], - 'UNIT_LOCALIZATION_CLUSTER': [], - 'USER_LABEL_CLUSTER': [], - 'WAKE_ON_LAN_CLUSTER': [], - 'WIFI_NETWORK_DIAGNOSTICS_CLUSTER': [], - 'WINDOW_COVERING_CLUSTER': [], - 'ZLL_COMMISSIONING_CLUSTER': [] -} - def get_cluster_sources(clusters: typing.Set[str], source_map: typing.Dict[str, @@ -202,13 +30,24 @@ def get_cluster_sources(clusters: typing.Set[str], return cluster_sources -def dump_zapfile_clusters(zap_file_path: pathlib.Path): +def dump_zapfile_clusters(zap_file_path: pathlib.Path, implementation_data_path: pathlib.Path): """Prints all of the source directories to build for a given ZAP file. Arguments: zap_file_path - Path to the ZAP input file. """ + # List of directories in src/app/clusters to build for server clusters. + SERVER_CLUSTERS: typing.Dict[str, typing.List[str]] = {} + + # List of directories in src/app/clusters to build for client clusters. + CLIENT_CLUSTERS: typing.Dict[str, typing.List[str]] = {} + + with open(implementation_data_path, "r") as implementation_data_file: + implementation_data = json.load(implementation_data_file) + SERVER_CLUSTERS = implementation_data["ServerDirectories"] + CLIENT_CLUSTERS = implementation_data["ClientDirectories"] + client_clusters: typing.Set[str] = set() server_clusters: typing.Set[str] = set() @@ -246,10 +85,15 @@ def main(): help='Path to .zap file', required=True, type=pathlib.Path) + parser.add_argument('--cluster-implementation-data', + help='Path to .json file which lists the directories cluster implementations live in', + required=False, + type=pathlib.Path, + default=os.path.join(os.path.dirname(__file__), "zap_cluster_list.json")) args = parser.parse_args() - dump_zapfile_clusters(args.zap_file) + dump_zapfile_clusters(args.zap_file, args.cluster_implementation_data) sys.exit(0)