in tools/upgrade/commands/fix_configuration.py [0:0]
def _remove_bad_targets(self) -> None:
configuration = self._configuration
if not configuration:
return
targets = configuration.targets
if not targets:
return
buildable_targets = []
for target in targets:
build_command = ["buck", "query", target]
try:
subprocess.check_output(build_command, timeout=30)
except subprocess.TimeoutExpired:
buildable_targets.append(target)
except subprocess.CalledProcessError:
LOG.info(f"Removing bad target: {target}")
pass
else:
buildable_targets.append(target)
if len(buildable_targets) == 0 and not configuration.source_directories:
LOG.info(f"Removing empty configuration at: {configuration.get_path()}")
self._repository.remove_paths([configuration.get_path()])
self._configuration = None
else:
configuration.targets = buildable_targets
configuration.write()