- s = os.path.join(s, "builds")
- if not os.path.exists(s):
- os.makedirs(s)
- for i in os.listdir(s):
- if i in charm_list:
- s_charm = os.path.join(s, i)
- # d_charm = os.path.join(package_folder, item, i)
- d_temp = os.path.join(d, i)
- # if os.path.exists(d_charm):
- # shutil.rmtree(d_charm)
- shutil.copytree(s_charm, d_temp, symlinks = True, ignore = ignore)
- # shutil.copytree(s_charm, d_charm, symlinks = True, ignore = ignore)
+ os.makedirs(d, exist_ok=True)
+ s_builds = os.path.join(s, "builds")
+ for charm in charm_list:
+ self._logger.debug("Copying charm {}".format(charm))
+ if charm in os.listdir(s):
+ s_charm = os.path.join(s, charm)
+ elif charm in os.listdir(s_builds):
+ s_charm = os.path.join(s_builds, charm)
+ else:
+ raise ClientException('The charm {} referenced in the descriptor file '
+ 'could not be found in {}/charms or in {}/charms/builds'.
+ format(charm, package_folder, package_folder))
+ d_temp = os.path.join(d, charm)
+ self._logger.debug("Copying tree: {} -> {}".format(s_charm, d_temp))
+ shutil.copytree(s_charm, d_temp, symlinks=True, ignore=ignore)
+ self._logger.debug("DONE")