コード例 #1
0
 def upgrade(self):
     """
     Upgrade packages
     """
     for pkg in self.upgrade_all:
         check_md5(pkg_checksum(pkg, "slack_patches"),
                   self.patch_path + pkg)
         pkg_ver = "{0}-{1}".format(
             split_package(pkg)[0],
             split_package(pkg)[1])
         if find_package(
                 split_package(pkg)[0] + self.meta.sp, self.meta.pkg_path):
             print("[ {0}upgrading{1} ] --> {2}".format(
                 self.meta.color["YELLOW"], self.meta.color["ENDC"],
                 pkg[:-4]))
             PackageManager(
                 (self.patch_path + pkg).split()).upgrade("--install-new")
             self.upgraded.append(pkg_ver)
         else:
             print("[ {0}installing{1} ] --> {2}".format(
                 self.meta.color["GREEN"], self.meta.color["ENDC"],
                 pkg[:-4]))
             PackageManager(
                 (self.patch_path + pkg).split()).upgrade("--install-new")
             self.installed.append(pkg_ver)
コード例 #2
0
ファイル: build.py プロジェクト: ninetyfivenorth/slpkg
 def build(self):
     """
     Build package from source and create log
     file in path /var/log/slpkg/sbo/build_logs/.
     Also check md5sum calculates.
     """
     try:
         self._delete_dir()
         try:
             tar = tarfile.open(self.script)
         except Exception as err:
             print err
             raise SystemExit()
         tar.extractall()
         tar.close()
         self._makeflags()
         self._delete_sbo_tar_gz()
         self._create_md5_dict()
         if not self.auto:
             os.chdir(self._SOURCES)
         for src in self.sources:
             if not os.path.isfile(src):
                 continue
             # fix build sources with spaces
             src = src.replace("%20", " ")
             check_md5(self.sbo_md5[src], src)
             # copy source and fix passing char '+' from file name
             shutil.copy2(src.replace("%2B", "+"), self.path + self.prgnam)
         os.chdir(self.path + self.prgnam)
         # change permissions
         subprocess.call("chmod +x {0}.SlackBuild".format(self.prgnam),
                         shell=True)
         pass_var = self._pass_variable()
         if self.meta.sbo_build_log in ["on", "ON"]:
             if os.path.isfile(self.build_logs + self.log_file):
                 os.remove(self.build_logs + self.log_file)
             # start log write
             log_head(self.build_logs, self.log_file, self.start_log_time)
             subprocess.Popen("{0} ./{1}.SlackBuild 2>&1 | tee -a "
                              "{2}{3}".format(" ".join(pass_var),
                                              self.prgnam, self.build_logs,
                                              self.log_file),
                              shell=True,
                              stdout=sys.stdout).communicate()
             sum_time = build_time(self.start_time)
             # write end in log file
             log_end(self.build_logs, self.log_file, sum_time)
             print("Total build time for package {0} : {1}\n".format(
                 self.prgnam, sum_time))
         else:
             subprocess.call("{0} ./{1}.SlackBuild".format(
                 " ".join(pass_var), self.prgnam),
                             shell=True)
         os.chdir(self.path)
     except KeyboardInterrupt:  # (OSError, IOError):
         self.msg.pkg_not_found("\n", self.prgnam, "Wrong file", "\n")
コード例 #3
0
ファイル: slpkg_update.py プロジェクト: ninetyfivenorth/slpkg
def it_self_update():
    """Check from GitHub slpkg repository if new version is available
    download and update itself
    """
    __new_version__ = ""
    repository = "github"
    branch = "master"
    ver_link = ("https://raw.{0}usercontent.com/{1}/{2}/"
                "{3}/{4}/__metadata__.py".format(repository, _meta_.__author__,
                                                 _meta_.__all__, branch,
                                                 _meta_.__all__))
    version_data = URL(ver_link).reading()
    for line in version_data.splitlines():
        line = line.strip()
        if line.startswith("__version_info__"):
            __new_version__ = ".".join(re.findall(r"\d+", line))
    if __new_version__ > _meta_.__version__:
        if _meta_.default_answer in ["y", "Y"]:
            answer = _meta_.default_answer
        else:
            print("\nNew version '{0}-{1}' is available !\n".format(
                _meta_.__all__, __new_version__))
            try:
                answer = raw_input("Would you like to upgrade [y/N]? ")
            except EOFError:
                print("")
                raise SystemExit()
        if answer in ["y", "Y"]:
            print("")  # new line after answer
        else:
            raise SystemExit()
        dwn_link = [
            "https://{0}.com/{1}/{2}/archive/"
            "v{3}.tar.gz".format(repository, _meta_.__author__, _meta_.__all__,
                                 __new_version__)
        ]
        if not os.path.exists(_meta_.build_path):
            os.makedirs(_meta_.build_path)
        Download(_meta_.build_path, dwn_link, repo="").start()
        os.chdir(_meta_.build_path)
        slpkg_tar_file = "v" + __new_version__ + ".tar.gz"
        tar = tarfile.open(slpkg_tar_file)
        tar.extractall()
        tar.close()
        file_name = "{0}-{1}".format(_meta_.__all__, __new_version__)
        os.chdir(file_name)
        check_md5(
            pkg_checksum(_meta_.__all__ + "-" + slpkg_tar_file[1:],
                         _meta_.__all__), _meta_.build_path + slpkg_tar_file)
        subprocess.call("chmod +x {0}".format("install.sh"), shell=True)
        subprocess.call("sh install.sh", shell=True)
    else:
        print("\n{0}: There is no new version, already used the last !"
              "\n".format(_meta_.__all__))
    raise SystemExit()
コード例 #4
0
ファイル: slpkg_update.py プロジェクト: websafe/slpkg
def it_self_update():
    """
    Check from GitHub slpkg repository if new version is available
    download and update itself
    """
    __new_version__ = ""
    repository = "github"
    branch = "master"
    ver_link = ("https://raw.{0}usercontent.com/{1}/{2}/"
                "{3}/{4}/__metadata__.py".format(repository, _meta_.__author__,
                                                 _meta_.__all__, branch,
                                                 _meta_.__all__))
    version_data = URL(ver_link).reading()
    for line in version_data.splitlines():
        line = line.strip()
        if line.startswith("__version_info__"):
            __new_version__ = ".".join(re.findall(r"\d+", line))
    if __new_version__ > _meta_.__version__:
        if _meta_.default_answer in ["y", "Y"]:
            answer = _meta_.default_answer
        else:
            print("\nNew version '{0}-{1}' is available !\n".format(
                _meta_.__all__, __new_version__))
            try:
                answer = raw_input("Would you like to upgrade [y/N]? ")
            except EOFError:
                print("")
                raise SystemExit()
        if answer in ["y", "Y"]:
            print("")   # new line after answer
        else:
            raise SystemExit()
        dwn_link = ["https://{0}.com/{1}/{2}/archive/"
                    "v{3}.tar.gz".format(repository, _meta_.__author__,
                                         _meta_.__all__,
                                         __new_version__)]
        if not os.path.exists(_meta_.build_path):
            os.makedirs(_meta_.build_path)
        Download(_meta_.build_path, dwn_link, repo="").start()
        os.chdir(_meta_.build_path)
        slpkg_tar_file = "v" + __new_version__ + ".tar.gz"
        tar = tarfile.open(slpkg_tar_file)
        tar.extractall()
        tar.close()
        file_name = "{0}-{1}".format(_meta_.__all__, __new_version__)
        os.chdir(file_name)
        check_md5(pkg_checksum(_meta_.__all__ + "-" + slpkg_tar_file[1:],
                               _meta_.__all__),
                  _meta_.build_path + slpkg_tar_file)
        subprocess.call("chmod +x {0}".format("install.sh"), shell=True)
        subprocess.call("sh install.sh", shell=True)
    else:
        print("\n{0}: There is no new version, already used the last !"
              "\n".format(_meta_.__all__))
    raise SystemExit()
コード例 #5
0
ファイル: build.py プロジェクト: dslackw/slpkg
 def build(self):
     """
     Build package from source and create log
     file in path /var/log/slpkg/sbo/build_logs/.
     Also check md5sum calculates.
     """
     try:
         self._delete_dir()
         try:
             tar = tarfile.open(self.script)
         except Exception as err:
             print err
             raise SystemExit()
         tar.extractall()
         tar.close()
         self._makeflags()
         self._delete_sbo_tar_gz()
         self._create_md5_dict()
         if not self.auto:
             os.chdir(self._SOURCES)
         for src in self.sources:
             if not os.path.isfile(src):
                 continue
             # fix build sources with spaces
             src = src.replace("%20", " ")
             check_md5(self.sbo_md5[src], src)
             # copy source and fix passing char '+' from file name
             shutil.copy2(src.replace("%2B", "+"), self.path + self.prgnam)
         os.chdir(self.path + self.prgnam)
         # change permissions
         subprocess.call("chmod +x {0}.SlackBuild".format(self.prgnam),
                         shell=True)
         pass_var = self._pass_variable()
         if self.meta.sbo_build_log in ["on", "ON"]:
             if os.path.isfile(self.build_logs + self.log_file):
                 os.remove(self.build_logs + self.log_file)
             # start log write
             log_head(self.build_logs, self.log_file, self.start_log_time)
             subprocess.Popen("{0} ./{1}.SlackBuild 2>&1 | tee -a "
                              "{2}{3}".format(" ".join(pass_var),
                                              self.prgnam, self.build_logs,
                                              self.log_file), shell=True,
                              stdout=sys.stdout).communicate()
             sum_time = build_time(self.start_time)
             # write end in log file
             log_end(self.build_logs, self.log_file, sum_time)
             print("Total build time for the package {0} : {1}\n".format(
                 self.prgnam, sum_time))
         else:
             subprocess.call("{0} ./{1}.SlackBuild".format(
                 " ".join(pass_var), self.prgnam), shell=True)
         os.chdir(self.path)
     except KeyboardInterrupt:   # (OSError, IOError):
         self.msg.pkg_not_found("\n", self.prgnam, "Wrong file", "\n")
コード例 #6
0
ファイル: build.py プロジェクト: fatman2021/slpkg
 def build(self):
     """
     Build package from source and create log
     file in path /var/log/slpkg/sbo/build_logs/.
     Also check md5sum calculates.
     """
     try:
         tar = tarfile.open(self.script)
         tar.extractall()
         tar.close()
         self._makeflags()
         self._delete_sbo()
         sbo_md5_list = SBoGrep(self.prgnam).checksum()
         for src, sbo_md5 in zip(self.sources, sbo_md5_list):
             # fix build sources with spaces
             src = src.replace("%20", " ")
             check_md5(sbo_md5, src)
             shutil.copy2(src, self.prgnam)
         os.chdir(self.path + self.prgnam)
         # change permissions
         subprocess.call("chmod +x {0}.SlackBuild".format(self.prgnam),
                         shell=True)
         pass_var = self._pass_variable()
         if self.meta.sbo_build_log in ["on", "ON"]:
             if os.path.isfile(self.build_logs + self.log_file):
                 os.remove(self.build_logs + self.log_file)
             # start log write
             log_head(self.build_logs, self.log_file, self.start_log_time)
             subprocess.Popen("{0} ./{1}.SlackBuild 2>&1 | tee -a "
                              "{2}{3}".format(" ".join(pass_var),
                                              self.prgnam, self.build_logs,
                                              self.log_file), shell=True,
                              stdout=sys.stdout).communicate()
             sum_time = build_time(self.start_time)
             # write end in log file
             log_end(self.build_logs, self.log_file, sum_time)
             print("Total build time for package {0} : {1}\n".format(
                 self.prgnam, sum_time))
         else:
             subprocess.call("{0} ./{1}.SlackBuild".format(
                 " ".join(pass_var), self.prgnam, shell=True))
         os.chdir(self.path)
     except (OSError, IOError):
         Msg().pkg_not_found("\n", self.prgnam, "Wrong file", "\n")
     except KeyboardInterrupt:
         print("")   # new line at exit
         sys.exit(0)
コード例 #7
0
ファイル: patches.py プロジェクト: fatman2021/slpkg
 def upgrade(self):
     """
     Upgrade packages
     """
     for pkg in self.upgrade_all:
         check_md5(pkg_checksum(pkg, "slack_patches"), self.patch_path + pkg)
         pkg_ver = "{0}-{1}".format(split_package(pkg)[0],
                                    split_package(pkg)[1])
         if find_package(split_package(pkg)[0] + "-", self.meta.pkg_path):
             print("[ {0}upgrading{1} ] --> {2}".format(
                 self.meta.color["YELLOW"], self.meta.color["ENDC"],
                 pkg[:-4]))
             PackageManager((self.patch_path + pkg).split()).upgrade(
                 "--install-new")
             self.upgraded.append(pkg_ver)
         else:
             print("[ {0}installing{1} ] --> {2}".format(
                 self.meta.color["GREEN"], self.meta.color["ENDC"],
                 pkg[:-4]))
             PackageManager((self.patch_path + pkg).split()).upgrade(
                 "--install-new")
             self.installed.append(pkg_ver)
コード例 #8
0
ファイル: install.py プロジェクト: BrentonEarl/slpkg
 def checksums(self, install):
     """Checksums before install
     """
     check_md5(pkg_checksum(install, self.repo), self.tmp_path + install)
コード例 #9
0
ファイル: install.py プロジェクト: ninetyfivenorth/slpkg
 def checksums(self, install):
     """Checksums before install
     """
     check_md5(pkg_checksum(install, self.repo), self.tmp_path + install)