class Copy(Task): def __init__(self, source, destination): super(Copy, self).__init__() if isinstance(source, str): source = [source] self.__source = Lazy(source) self.__destination = Lazy(destination) @property def name(self): if self.__source.type() == list: return "Copy {}...".format(self.__source()[0]) else: return "Copy {}".format(self.__source.peek()) def process(self, progress): if os.path.isabs(self.__destination()): full_destination = self.__destination() else: full_destination = os.path.join(self._context["build_path"], self.__destination()) for source in self.__source(): if not os.path.isabs(source): source = os.path.join(self._context["build_path"], source) if not os.path.exists(full_destination): os.makedirs(full_destination) shutil.copy(source, full_destination) return True
class Copy(Task): def __init__(self, source, destination): super(Copy, self).__init__() if isinstance(source, str): source = [source] self.__source = Lazy(source) self.__destination = Lazy(destination) @property def name(self): if self.__source.type() == list: src = self.__source()[0] else: src = self.__source.peek() return "Copy_{}_".format(os.path.basename(src)) def process(self, progress): if os.path.isabs(self.__destination()): full_destination = self.__destination() else: full_destination = os.path.join(self._context["build_path"], self.__destination()) for source in self.__source(): if not os.path.isabs(source): source = os.path.join(self._context["build_path"], source) if not os.path.exists(full_destination): os.makedirs(full_destination) if os.path.isfile(source): shutil.copy(source, full_destination) else: print "{} doesn't exist, Can't copy".format(source) return True