Beispiel #1
0
 def clean(self):
     if util.USE_SYMLINKS:
         util.delete_dir(self.get_private_path())
         util.rm_symlink_dir(self.prefix)
         util.rm_empty_dirs(self.prefix)
     else:
         for p in self.list():
             self.remove(p)
         util.delete_dir(self.get_private_path())
Beispiel #2
0
 def configure(self, src_dir=None, build_dir=None, options=None):
     if self.need_reconfig(build_dir, options):
         delete_dir(build_dir)
     if not os.path.isdir(build_dir):
         os.mkdir(build_dir)
     args = [self.cmake, '-DCMAKE_INSTALL_PREFIX=' + self.install_root]
     for o, v in options.items():
         if o == 'define':
             args += ['-D' + d + '=' + dv for d, dv in v.items()]
         elif o == 'generator':
             args += ['-G', v]
     args.append(src_dir)
     cmd(args, cwd=build_dir)
Beispiel #3
0
 def unlink(self, pkg, delete=False):
     pkg = self.parse_pkg_src(pkg)
     pkg_dir = self.get_package_directory(pkg.to_fname())
     unlink_dir = self.get_unlink_directory(pkg.to_fname())
     self.log("Unlink:", pkg_dir)
     if os.path.exists(pkg_dir):
         if util.MERGE_INSTALLS:
             if util.USE_SYMLINKS:
                 util.rm_symlink_from(os.path.join(pkg_dir, 'install'), self.prefix)
             else:
                 util.rm_dup_dir(os.path.join(pkg_dir, 'install'), self.prefix, remove_both=False)
             util.rm_empty_dirs(self.prefix)
         if delete: util.delete_dir(pkg_dir)
         else:
             util.mkdir(self.get_unlink_directory())
             os.rename(pkg_dir, unlink_dir)
Beispiel #4
0
    def fetch(self):
        fn = os.path.join(self.config.arch_root(), self.archive)
        if os.path.isfile(fn):
            click.echo('Using cached archive {0} '.format(fn))
        else:
            try:
                click.echo('Fetching file {0} ...'.format(self.url))
                urlretrieve(self.url, fn)
                click.echo('Ok.')
            except ConnectionError as e:
                click.echo(str(e))
                sys.exit(2)
        temp_dir = os.path.abspath('temp')

        re_extract = False
        exists = os.path.isdir(temp_dir)
        if not exists or re_extract:
            click.echo("Extracting archive {0} ...".format(fn))
            if exists:
                util.delete_dir(temp_dir)
            os.mkdir(temp_dir)
            util.extract_ar(archive=fn, dst=temp_dir)
        else:
            click.echo("Extracting skipped: using temporary")

        dirs = [
            o for o in os.listdir(temp_dir)
            if os.path.isdir(os.path.join(temp_dir, o))
        ]
        if len(dirs) != 1:
            raise Exception('Wrong dir count')
        temp_src_dir = os.path.join(temp_dir, dirs[0])
        self.choose_builder(temp_src_dir)
        src_dir = self.src_dir()
        util.delete_dir(src_dir)
        os.rename(temp_src_dir, src_dir)
        util.delete_dir(temp_dir)
        self.stage = FETCHED
        self.save()
        click.echo("Sources placed to {0}".format(src_dir))
Beispiel #5
0
 def fetch(self,
           url,
           fname,
           hash=None,
           copy=False,
           insecure=False,
           pkg=None):
     self.prefix.log("fetch:", url)
     if insecure: url = url.replace('https', 'http')
     if pkg is not None:
         f = os.path.join(self.arch_dir, pkg['archive'])
     if not os.path.isfile(f):
         f = util.retrieve_url(url,
                               self.arch_dir,
                               copy=copy,
                               insecure=insecure,
                               hash=hash)
     if os.path.isfile(f):
         click.echo("Extracting archive {0} ...".format(f))
         temp_dir = os.path.abspath('temp')
         util.delete_dir(temp_dir)
         os.mkdir(temp_dir)
         util.extract_ar(archive=f, dst=temp_dir)
         dirs = [
             o for o in os.listdir(temp_dir)
             if os.path.isdir(os.path.join(temp_dir, o))
         ]
         if len(dirs) != 1:
             raise Exception('wrong count')
         util.delete_dir(os.path.join(self.src_dir, fname))
         os.rename(os.path.join(temp_dir, dirs[0]),
                   os.path.join(self.src_dir, fname))
         util.delete_dir(temp_dir)
         return os.path.join(self.src_dir, fname)
     return next(util.get_dirs(
         self.top_dir))  # list of dirs dirs, found in top_dir
Beispiel #6
0
 def clean(self):
     util.delete_dir(self.get_private_path())
     util.rm_symlink_dir(self.prefix)
     util.rm_empty_dirs(self.prefix)
Beispiel #7
0
 def clean(self):
     click.echo('Removing build and source directories')
     util.delete_dir(self.build_dir())
     util.delete_dir(self.src_dir())
     self.stage = CLEAN
Beispiel #8
0
 def clean(self):
     util.delete_dir(self.get_private_path())
     util.rm_symlink_dir(self.prefix)
     util.rm_empty_dirs(self.prefix)