예제 #1
0
    def pack(self, output_dir, devel=True, force=False, keep_temp=False,
             split=True, package_prefix=''):
        try:
            dist_files = self.files_list(PackageType.RUNTIME, force)
        except EmptyPackageError:
            m.warning(_("The runtime package is empty"))
            dist_files = []

        if devel:
            try:
                devel_files = self.files_list(PackageType.DEVEL, force)
            except EmptyPackageError:
                m.warning(_("The development package is empty"))
                devel_files = []
        else:
            devel_files = []

        if not split:
            dist_files += devel_files

        if not dist_files and not devel_files:
            raise EmptyPackageError(self.package.name)

        filenames = []
        if dist_files:
            runtime = self._create_tarball(output_dir, PackageType.RUNTIME,
                                           dist_files, force, package_prefix)
            filenames.append(runtime)

        if split and devel and len(devel_files) != 0:
            devel = self._create_tarball(output_dir, PackageType.DEVEL,
                                         devel_files, force, package_prefix)
            filenames.append(devel)
        return filenames
예제 #2
0
 def files_list(self, package_type, force):
     if package_type == PackageType.DEVEL:
         files = self.package.devel_files_list()
     else:
         files = self.package.files_list()
     real_files = []
     for f in files:
         if os.path.exists(os.path.join(self.config.prefix, f)):
             real_files.append(f)
     diff = list(set(files) - set(real_files))
     if len(diff) != 0:
         if force:
             m.warning(
                 _("Some files required by this package are missing "
                   "in the prefix:\n%s" % '\n'.join(diff)))
         else:
             raise MissingPackageFilesError(diff)
     if len(real_files) == 0:
         raise EmptyPackageError(self.package.name)
     return real_files