diff --git a/CHANGELOG b/CHANGELOG
index d34cbb36..13c10d23 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,8 @@
+Version 1.9.8
+07-10-2014
+
+[Updated] - Source code update.
+
Version 1.9.7
06-10-2014
diff --git a/PKG-INFO b/PKG-INFO
index 5f70eee8..fb12e646 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: slpkg
-Version: 1.9.7
+Version: 1.9.8
Author: dslackw
Author-email: d zlatanidis at gmail com
Maintainer: dslackw
diff --git a/README.rst b/README.rst
index 883259bc..5310a718 100644
--- a/README.rst
+++ b/README.rst
@@ -7,9 +7,9 @@
Latest Release:
-- Version: 1.9.7
+- Version: 1.9.8
- `Package `_
-- `Source `_
+- `Source `_
- `CHANGELOG `_
.. image:: https://raw.githubusercontent.com/dslackw/images/master/slpkg/logo.png
@@ -96,8 +96,8 @@ Untar the archive and run install.sh script:
.. code-block:: bash
- $ tar xvf slpkg-1.9.7.tar.gz
- $ cd slpkg-1.9.7
+ $ tar xvf slpkg-1.9.8.tar.gz
+ $ cd slpkg-1.9.8
$ ./install.sh
Using `pip `_ :
diff --git a/install.sh b/install.sh
index 4f9e6666..693ef870 100755
--- a/install.sh
+++ b/install.sh
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=slpkg
-VERSION=${VERSION:-1.9.7}
+VERSION=${VERSION:-1.9.8}
TAG=${TAG:-_dsw}
cd ..
diff --git a/slackbuild/slpkg.SlackBuild b/slackbuild/slpkg.SlackBuild
index 955421a0..20c94114 100755
--- a/slackbuild/slpkg.SlackBuild
+++ b/slackbuild/slpkg.SlackBuild
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=slpkg
-VERSION=${VERSION:-1.9.7}
+VERSION=${VERSION:-1.9.8}
BUILD=${BUILD:-1}
TAG=${TAG:-_dsw}
diff --git a/slackbuild/slpkg.info b/slackbuild/slpkg.info
index 8110b8cb..b4bb6fc6 100644
--- a/slackbuild/slpkg.info
+++ b/slackbuild/slpkg.info
@@ -1,7 +1,7 @@
PRGNAM="slpkg"
-VERSION="1.9.7"
+VERSION="1.9.8"
HOMEPAGE="https://github.com/dslackw/slpkg"
-DOWNLOAD="https://github.com/dslackw/slpkg/archive/v1.9.7.tar.gz"
+DOWNLOAD="https://github.com/dslackw/slpkg/archive/v1.9.8.tar.gz"
MD5SUM=""
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/slpkg/__metadata__.py b/slpkg/__metadata__.py
index 447fbdae..74e47c9e 100644
--- a/slpkg/__metadata__.py
+++ b/slpkg/__metadata__.py
@@ -26,7 +26,7 @@ import subprocess
__all__ = "slpkg"
__author__ = "dslackw"
-__version_info__ = (1, 9, 7)
+__version_info__ = (1, 9, 8)
__version__ = "{0}.{1}.{2}".format(*__version_info__)
__license__ = "GNU General Public License v3 (GPLv3)"
__email__ = "d.zlatanidis@gmail.com"
diff --git a/slpkg/blacklist.py b/slpkg/blacklist.py
index 66e6eb8f..7e6a881a 100755
--- a/slpkg/blacklist.py
+++ b/slpkg/blacklist.py
@@ -24,6 +24,7 @@
import os
from __metadata__ import bls_path
+
class BlackList(object):
'''
Blacklist class to add, remove or listed packages
@@ -115,7 +116,7 @@ class BlackList(object):
print(pkg)
black_conf.write(pkg + "\n")
exit = 1
- black_conf.close()
+ black_conf.close()
if exit == 1:
print # new line at exit
diff --git a/slpkg/downloader.py b/slpkg/downloader.py
index 405f166e..3409804b 100755
--- a/slpkg/downloader.py
+++ b/slpkg/downloader.py
@@ -22,14 +22,29 @@
# along with this program. If not, see .
import os
+import sys
import subprocess
from colors import *
-def download(path, url):
- '''
- Download files usign wget.
- Check if file exist or file is broken.
- '''
- print("\n{0}[ Download ] -->{1} {2}\n".format(GREEN, ENDC, url.split("/")[-1]))
- subprocess.call("wget -N --directory-prefix={0} {1}".format(path, url), shell=True)
+
+class Download(object):
+
+ def __init__(self, path, url):
+ self.path = path
+ self.url = url
+ self.file_name = self.url.split("/")[-1]
+
+ def start(self):
+ '''
+ Download files usign wget.
+ Check if file already download the skip or continue
+ download if before stoped.
+ '''
+ print("\n{0}[ Download ] -->{1} {2}\n".format(GREEN, ENDC, self.file_name))
+ try:
+ subprocess.call("wget -c -N --directory-prefix={0} {1}".format(
+ self.path, self.url), shell=True)
+ except KeyboardInterrupt:
+ print # new line at cancel
+ sys.exit()
diff --git a/slpkg/file_size.py b/slpkg/file_size.py
index bc90fb40..1e9fb5da 100755
--- a/slpkg/file_size.py
+++ b/slpkg/file_size.py
@@ -25,23 +25,29 @@ import os
import sys
import urllib2
-def server_file_size(url):
- '''
- Returns the size of remote files
- '''
- try:
- tar = urllib2.urlopen(url)
- meta = tar.info()
- return int(meta.getheaders("Content-Length")[0])
- except (urllib2.URLError, IndexError):
- print("\nError: connection refused\n")
- sys.exit()
- except KeyboardInterrupt:
- print # new line at exit
- sys.exit()
-def local_file_size(registry):
- '''
- Returns the size of local files
- '''
- return os.path.getsize(registry)
+class FileSize(object):
+
+ def __init__(self, registry):
+ self.registry = registry
+
+ def server(self):
+ '''
+ Returns the size of remote files
+ '''
+ try:
+ tar = urllib2.urlopen(self.registry)
+ meta = tar.info()
+ return int(meta.getheaders("Content-Length")[0])
+ except (urllib2.URLError, IndexError):
+ print("\nError: connection refused\n")
+ sys.exit()
+ except KeyboardInterrupt:
+ print # new line at exit
+ sys.exit()
+
+ def local(self):
+ '''
+ Returns the size of local files
+ '''
+ return os.path.getsize(self.registry)
diff --git a/slpkg/init.py b/slpkg/init.py
index 0148e759..5f055d2e 100755
--- a/slpkg/init.py
+++ b/slpkg/init.py
@@ -25,13 +25,14 @@ import os
import sys
import getpass
+from file_size import *
from messages import s_user
from url_read import url_read
from __metadata__ import log_path, lib_path
-from file_size import server_file_size, local_file_size
from slack.slack_version import slack_ver
+
def initialization():
'''
Slpkg initialization, creating directories and SLACKBUILDS.TXT in
@@ -76,8 +77,8 @@ def initialization():
log.close()
print("File ChangeLog.txt created in {0}".format(sbo_log))
# We take the size of ChangeLog.txt from the server and locally
- server = server_file_size(sbo_url + "ChangeLog.txt")
- local = local_file_size(sbo_log + "ChangeLog.txt")
+ server = FileSize(sbo_url + "ChangeLog.txt").server()
+ local = FileSize(sbo_log + "ChangeLog.txt").local()
# If the two files differ in size delete and replaced with new
if server != local:
os.remove("{0}{1}".format(sbo_lib, "SLACKBUILDS.TXT"))
diff --git a/slpkg/main.py b/slpkg/main.py
index bf7ed86f..59758897 100755
--- a/slpkg/main.py
+++ b/slpkg/main.py
@@ -21,21 +21,22 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+import sys
import getpass
from colors import *
from messages import s_user
+from blacklist import BlackList
from version import prog_version
from __metadata__ import path, __version__
-from blacklist import BlackList
-from pkg.manager import *
from pkg.build import build_package
+from pkg.manager import PackageManager
from sbo.check import sbo_check
from sbo.views import sbo_network
+from sbo.tracking import track_dep
from sbo.slackbuild import sbo_build
-from sbo.dependency import pkg_tracking
from slack.patches import patches
from slack.install import install
@@ -92,7 +93,7 @@ def main():
elif len(args) == 2 and args[0] == "-l":
sbo_list = ["all", "sbo", "slack", "noarch"]
if args[1] in sbo_list:
- pkg_list(args[1])
+ PackageManager(None).list(args[1])
else:
for opt in usage: print(opt)
elif len(args) == 3 and args[0] == "-c":
@@ -122,7 +123,7 @@ def main():
else:
for opt in usage: print(opt)
elif len(args) == 2 and args[0] == "-t":
- pkg_tracking(args[1])
+ track_dep(args[1])
elif len(args) == 2 and args[0] == "-n":
sbo_network(args[1])
elif len(args) == 2 and args[0] == "-b" and args[1] == "--list":
@@ -132,17 +133,17 @@ def main():
elif len(args) > 2 and args[0] == "-b" and args[-1] == "--remove":
BlackList().remove(args[1:-1])
elif len(args) > 1 and args[0] == "-i":
- pkg_install(args[1:])
+ PackageManager(args[1:]).install()
elif len(args) > 1 and args[0] == "-u":
- pkg_upgrade(args[1:])
+ PackageManager(args[1:]).upgrade()
elif len(args) > 1 and args[0] == "-o":
- pkg_reinstall(args[1:])
+ PackageManager(args[1:]).reinstall()
elif len(args) > 1 and args[0] == "-r":
- pkg_remove(args[1:])
+ PackageManager(args[1:]).remove()
elif len(args) > 1 and args[0] == "-f":
- pkg_find(args[1:])
+ PackageManager(args[1:]).find()
elif len(args) > 1 and args[0] == "-d":
- pkg_display(args[1:])
+ PackageManager(args[1:]).display()
else:
for opt in usage: print(opt)
diff --git a/slpkg/messages.py b/slpkg/messages.py
index ddcbc879..7f3149f5 100755
--- a/slpkg/messages.py
+++ b/slpkg/messages.py
@@ -25,6 +25,7 @@ import sys
from colors import *
from __metadata__ import __all__
+
def pkg_not_found(bol, pkg, message, eol):
'''
Print message when package not found
@@ -63,7 +64,7 @@ def build_FAILED(sbo_url, prgnam):
def template(max):
'''
- Print view template
+ Print template
'''
print("+" + "=" * max)
diff --git a/slpkg/pkg/build.py b/slpkg/pkg/build.py
index c5e47e28..bdc54241 100755
--- a/slpkg/pkg/build.py
+++ b/slpkg/pkg/build.py
@@ -34,7 +34,8 @@ from slpkg.checksum import md5sum
from slpkg.__metadata__ import log_path
from slpkg.messages import pkg_not_found, template
-from slpkg.sbo.greps import sbo_checksum_pkg
+from slpkg.sbo.greps import SBoGrep
+
def build_package(script, sources, path):
'''
@@ -65,7 +66,7 @@ def build_package(script, sources, path):
for src in sources:
# fix build sources with spaces
src = src.replace("%20", " ")
- sbo_md5 = sbo_checksum_pkg(prgnam)
+ sbo_md5 = SBoGrep(prgnam).checksum()
md5 = md5sum(src)
if sbo_md5 != md5:
template(78)
diff --git a/slpkg/pkg/find.py b/slpkg/pkg/find.py
index 8ae23aad..e32ef258 100755
--- a/slpkg/pkg/find.py
+++ b/slpkg/pkg/find.py
@@ -27,6 +27,7 @@ from slpkg.blacklist import BlackList
from slpkg.slack.splitting import split_package
+
def find_package(find_pkg, directory):
'''
Find packages
diff --git a/slpkg/pkg/manager.py b/slpkg/pkg/manager.py
index 59ea515a..dd6975d4 100755
--- a/slpkg/pkg/manager.py
+++ b/slpkg/pkg/manager.py
@@ -32,212 +32,232 @@ from slpkg.__metadata__ import pkg_path, sp, log_path
from find import find_package
-def pkg_install(binary):
- '''
- Install Slackware binary packages
- '''
- for pkg in binary:
- try:
- print(subprocess.check_output("installpkg {0}".format(pkg), shell=True))
- print("Completed!\n")
- except subprocess.CalledProcessError:
- message = "Can't install"
- if len(binary) > 1:
- bol = eol = str()
- else:
- bol = eol = "\n"
- pkg_not_found(bol, pkg, message, eol)
-def pkg_upgrade(binary):
+class PackageManager(object):
'''
- Upgrade Slackware binary packages
- '''
- for pkg in binary:
- try:
- print(subprocess.check_output("upgradepkg --install-new {0}".format(pkg),
- shell=True))
- print("Completed!\n")
- except subprocess.CalledProcessError:
- message = "Can't upgrade"
- if len(binary) > 1:
- bol = eol = str()
- else:
- bol = eol = "\n"
- pkg_not_found(bol, pkg, message, eol)
-
-def pkg_reinstall(binary):
- '''
- Reinstall Slackware binary packages
- '''
- for pkg in binary:
- try:
- print(subprocess.check_output("upgradepkg --reinstall {0}".format(pkg),
- shell=True))
- print("Completed!\n")
- except subprocess.CalledProcessError:
- message = "Can't reinstall"
- if len(binary) > 1:
- bol = eol = str()
- else:
- bol = eol = "\n"
- pkg_not_found(bol, pkg, message, eol)
+ Package manager class for install, upgrade,
+ reinstall, remove, find and display packages.
+ '''
+ def __init__(self, binary):
+ self.binary = binary
-def pkg_remove(binary):
- '''
- Remove Slackware binary packages
- '''
- dep_path = log_path + "dep/"
- removed, dependencies, \
- rmv_list, rmv_dependencies = ([] for i in range(4))
- print("\nPackages with name matching [ {0}{1}{2} ]\n".format(
- CYAN, ", ".join(binary), ENDC))
- for pkg in binary:
- pkgs = find_package(pkg + sp, pkg_path)
- if pkgs:
- print(RED + "[ delete ] --> " + ENDC + "\n ".join(pkgs))
- removed.append(pkg)
+ def install(self):
+ '''
+ Install Slackware binary packages
+ '''
+ for pkg in self.binary:
+ try:
+ print(subprocess.check_output("installpkg {0}".format(
+ pkg), shell=True))
+ print("Completed!\n")
+ except subprocess.CalledProcessError:
+ message = "Can't install"
+ if len(self.binary) > 1:
+ bol = eol = str()
+ else:
+ bol = eol = "\n"
+ pkg_not_found(bol, pkg, message, eol)
+
+ def upgrade(self):
+ '''
+ Upgrade Slackware binary packages
+ '''
+ for pkg in self.binary:
+ try:
+ print(subprocess.check_output("upgradepkg --install-new {0}".format(
+ pkg), shell=True))
+ print("Completed!\n")
+ except subprocess.CalledProcessError:
+ message = "Can't upgrade"
+ if len(self.binary) > 1:
+ bol = eol = str()
+ else:
+ bol = eol = "\n"
+ pkg_not_found(bol, pkg, message, eol)
+
+ def reinstall(self):
+ '''
+ Reinstall Slackware binary packages
+ '''
+ for pkg in self.binary:
+ try:
+ print(subprocess.check_output("upgradepkg --reinstall {0}".format(
+ pkg), shell=True))
+ print("Completed!\n")
+ except subprocess.CalledProcessError:
+ message = "Can't reinstall"
+ if len(self.binary) > 1:
+ bol = eol = str()
+ else:
+ bol = eol = "\n"
+ pkg_not_found(bol, pkg, message, eol)
+
+ def remove(self):
+ '''
+ Remove Slackware binary packages
+ '''
+ dep_path = log_path + "dep/"
+ [
+ removed,
+ dependencies,
+ rmv_list,
+ rmv_dependencies
+ ] = ([] for i in range(4))
+ print("\nPackages with name matching [ {0}{1}{2} ]\n".format(
+ CYAN, ", ".join(self.binary), ENDC))
+ for pkg in self.binary:
+ pkgs = find_package(pkg + sp, pkg_path)
+ if pkgs:
+ print(RED + "[ delete ] --> " + ENDC + "\n ".join(pkgs))
+ removed.append(pkg)
+ else:
+ message = "Can't remove"
+ pkg_not_found("", pkg, message, "")
+ if removed == []:
+ print # new line at end
else:
- message = "Can't remove"
- pkg_not_found("", pkg, message, "")
- if removed == []:
- print # new line at end
- else:
- msg = "package"
- if len(removed) > 1:
- msg = msg + "s"
+ msg = "package"
+ if len(removed) > 1:
+ msg = msg + "s"
+ try:
+ remove_pkg = raw_input("\nAre you sure to remove {0} {1} [Y/n]? ".format(
+ str(len(removed)), msg))
+ except KeyboardInterrupt:
+ print # new line at exit
+ sys.exit()
+ if remove_pkg == "y" or remove_pkg == "Y":
+ for rmv in removed:
+ # If package build and install with 'slpkg -s sbo '
+ # then look log file for dependencies in /var/log/slpkg/dep,
+ # read and remove all else remove only the package.
+ if os.path.isfile(dep_path + rmv):
+ with open(dep_path + rmv, "r") as f:
+ dependencies = f.read().split()
+ f.close()
+ print # new line at start
+ template(78)
+ print("| Found dependencies for package {0}:".format(rmv))
+ template(78)
+ # Prints dependecies before removed except master package
+ # because referred as master package
+ for dep in dependencies[:-1]:
+ print("| {0}{1}{2}".format(RED, dep, ENDC))
+ template(78)
+ try:
+ remove_dep = raw_input(
+ "\nRemove dependencies (maybe used by other packages) [Y/n]? ")
+ except KeyboardInterrupt:
+ print # new line at exit
+ sys.exit()
+ if remove_dep == "y" or remove_dep == "Y":
+ for dep in dependencies:
+ if find_package(dep + sp, pkg_path):
+ print(subprocess.check_output("removepkg {0}".format(
+ dep), shell=True))
+ rmv_list.append(dep)
+ os.remove(dep_path + rmv)
+ rmv_dependencies += dependencies[:-1]
+ else:
+ if find_package(rmv + sp, pkg_path):
+ print(subprocess.check_output("removepkg {0}".format(
+ rmv), shell=True))
+ rmv_list.append(rmv)
+ f.close()
+ os.remove(dep_path + rmv)
+ else:
+ if find_package(rmv + sp, pkg_path):
+ print(subprocess.check_output("removepkg {0}".format(
+ rmv), shell=True))
+ rmv_list.append(rmv)
+ # Prints all removed packages
+ if len(rmv_list) > 1:
+ template(78)
+ print("| Total {0} packages removed".format(len(rmv_list)))
+ template(78)
+ for pkg in rmv_list:
+ if find_package(pkg + sp, pkg_path) == []:
+ print("| Package {0} removed".format(pkg))
+ else:
+ print("| Package {0} not found".format(pkg))
+ template(78)
+ print # new line at end
+
+ def find(self):
+ '''
+ Find installed Slackware packages
+ '''
+ self.binary = "".join(self.binary)
+ matching = size = int()
+ print("\nInstalled packages with name begin matching [ {0}{1}{2} ]\n".format(
+ CYAN, self.binary, ENDC))
+ for match in find_package(self.binary, pkg_path):
+ if self.binary in match:
+ matching += 1
+ print("[ {0}installed{1} ] - {2}".format(
+ GREEN, ENDC, match))
+ with open(pkg_path + match, "r") as f:
+ data = f.read()
+ f.close()
+ for line in data.splitlines():
+ if line.startswith("UNCOMPRESSED PACKAGE SIZE:"):
+ if "M" in line[26:]:
+ size += float(line[26:-1]) * 1024
+ else:
+ size += float(line[26:-1])
+ break
+ if matching == 0:
+ message = "Can't find"
+ pkg_not_found("", self.binary, message, "\n")
+ else:
+ print("\n{0}Total found {1} matching packages.{2}".format(
+ GREY, matching, ENDC))
+ unit = "Kb"
+ if size > 1024:
+ unit = "Mb"
+ size = (size / 1024)
+ print("{0}Size of installed packages {1} {2}.{3}\n".format(
+ GREY, round(size, 2), unit, ENDC))
+
+ def display(self):
+ '''
+ Print the Slackware packages contents
+ '''
+ for pkg in self.binary:
+ if find_package(pkg + sp, pkg_path):
+ print(subprocess.check_output("cat {0}{1}".format(pkg_path,
+ " /var/log/packages/".join(find_package(
+ pkg + sp, pkg_path))), shell=True))
+ else:
+ message = "Can't dislpay"
+ if len(self.binary) > 1:
+ bol = eol = str()
+ else:
+ bol = eol = "\n"
+ pkg_not_found(bol, pkg, message, eol)
+
+ def list(self, pattern):
+ '''
+ List with the installed packages
+ '''
try:
- remove_pkg = raw_input("\nAre you sure to remove {0} {1} [Y/n]? ".format(
- str(len(removed)), msg))
+ if "sbo" in pattern:
+ search = "_SBo"
+ elif "slack" in pattern:
+ search = "_slack"
+ elif "noarch" in pattern:
+ search = "-noarch-"
+ elif "all" in pattern:
+ search = ""
+ index, page = 0, 50
+ for pkg in find_package("", pkg_path):
+ if search in pkg:
+ index += 1
+ print("{0}{1}:{2} {3}".format(GREY, index, ENDC, pkg))
+ if index == page:
+ key = raw_input("\nPress [ {0}Enter{1} ] >> Next page ".format(
+ CYAN, ENDC))
+ page += 50
+ print # new line at end
except KeyboardInterrupt:
print # new line at exit
sys.exit()
- if remove_pkg == "y" or remove_pkg == "Y":
- for rmv in removed:
- # If package build and install with 'slpkg -s sbo '
- # then look log file for dependencies in /var/log/slpkg/dep,
- # read and remove all else remove only the package.
- if os.path.isfile(dep_path + rmv):
- with open(dep_path + rmv, "r") as f:
- dependencies = f.read().split()
- f.close()
- print # new line at start
- template(78)
- print("| Found dependencies for package {0}:".format(rmv))
- template(78)
- # Prints dependecies before removed except master package
- # because referred as master package
- for dep in dependencies[:-1]:
- print("| {0}{1}{2}".format(RED, dep, ENDC))
- template(78)
- try:
- remove_dep = raw_input(
- "\nRemove dependencies (maybe used by other packages) [Y/n]? ")
- except KeyboardInterrupt:
- print # new line at exit
- sys.exit()
- if remove_dep == "y" or remove_dep == "Y":
- for dep in dependencies:
- if find_package(dep + sp, pkg_path):
- print(subprocess.check_output("removepkg {0}".format(dep), shell=True))
- rmv_list.append(dep)
- os.remove(dep_path + rmv)
- rmv_dependencies += dependencies[:-1]
- else:
- if find_package(rmv + sp, pkg_path):
- print(subprocess.check_output("removepkg {0}".format(rmv), shell=True))
- rmv_list.append(rmv)
- f.close()
- os.remove(dep_path + rmv)
- else:
- if find_package(rmv + sp, pkg_path):
- print(subprocess.check_output("removepkg {0}".format(rmv), shell=True))
- rmv_list.append(rmv)
- # Prints all removed packages
- if len(rmv_list) > 1:
- template(78)
- print("| Total {0} packages removed".format(len(rmv_list)))
- template(78)
- for pkg in rmv_list:
- if find_package(pkg + sp, pkg_path) == []:
- print("| Package {0} removed".format(pkg))
- else:
- print("| Package {0} not found".format(pkg))
- template(78)
- print # new line at end
-
-def pkg_find(binary):
- '''
- Find installed Slackware packages
- '''
- binary = "".join(binary)
- matching = size = int()
- print("\nInstalled packages with name begin matching [ {0}{1}{2} ]\n".format(
- CYAN, binary, ENDC))
- for match in find_package(binary, pkg_path):
- if binary in match:
- matching += 1
- print("[ {0}installed{1} ] - {2}".format(
- GREEN, ENDC, match))
- with open(pkg_path + match, "r") as f:
- data = f.read()
- f.close()
- for line in data.splitlines():
- if line.startswith("UNCOMPRESSED PACKAGE SIZE:"):
- if "M" in line[26:]:
- size += float(line[26:-1]) * 1024
- else:
- size += float(line[26:-1])
- break
- if matching == 0:
- print("No package was found to match\n")
- else:
- print("\n{0}Total found {1} matching packages.{2}".format(GREY, matching, ENDC))
- unit = "Kb"
- if size > 1024:
- unit = "Mb"
- size = (size / 1024)
- print("{0}Size of installed packages {1} {2}.{3}\n".format(
- GREY, round(size, 2), unit, ENDC))
-
-def pkg_display(binary):
- '''
- Print the Slackware packages contents
- '''
- for pkg in binary:
- if find_package(pkg + sp, pkg_path):
- print(subprocess.check_output("cat {0}{1}".format(pkg_path,
- " /var/log/packages/".join(find_package(pkg +sp, pkg_path))), shell=True))
- else:
- message = "Can't dislpay"
- if len(binary) > 1:
- bol = eol = str()
- else:
- bol = eol = "\n"
- pkg_not_found(bol, pkg, message, eol)
-
-def pkg_list(pattern):
- '''
- List with the installed packages
- '''
- try:
- if "sbo" in pattern:
- search = "_SBo"
- elif "slack" in pattern:
- search = "_slack"
- elif "noarch" in pattern:
- search = "-noarch-"
- elif "all" in pattern:
- search = ""
- index, page = 0, 50
- for pkg in find_package("", pkg_path):
- if search in pkg:
- index += 1
- print("{0}{1}:{2} {3}".format(GREY, index, ENDC, pkg))
- if index == page:
- key = raw_input("\nPress [ {0}Enter{1} ] >> Next page ".format(
- CYAN, ENDC))
- page += 50
- print # new line at end
- except KeyboardInterrupt:
- print # new line at exit
- sys.exit()
diff --git a/slpkg/sbo/check.py b/slpkg/sbo/check.py
index a3471bd5..f7dafa2d 100755
--- a/slpkg/sbo/check.py
+++ b/slpkg/sbo/check.py
@@ -26,18 +26,19 @@ import sys
from slpkg.pkg.find import find_package
from slpkg.pkg.build import build_package
-from slpkg.pkg.manager import pkg_upgrade
+from slpkg.pkg.manager import PackageManager
from slpkg.colors import *
from slpkg.init import initialization
-from slpkg.downloader import download
+from slpkg.downloader import Download
from slpkg.messages import template, build_FAILED
from slpkg.__metadata__ import tmp, pkg_path, build_path, sp
+from greps import SBoGrep
from search import sbo_search_pkg
from download import sbo_slackbuild_dwn
from dependency import sbo_dependencies_pkg
-from greps import sbo_source_dwn, sbo_version_pkg
+
def sbo_check():
'''
@@ -48,17 +49,27 @@ def sbo_check():
but install the package with maximum build tag if find the
some version in /tmp directory.
'''
- try:
- done = "{0}Done{1}\n".format(GREY, ENDC)
- reading_lists = "{0}Reading package lists ...{1}".format(GREY, ENDC)
- sys.stdout.write(reading_lists)
- sys.stdout.flush()
- init = initialization()
- arches = ["-x86_64-", "-i486-", "-arm-", "-noarch-"]
- index, toolbar_width = int(), 3
- dependencies, dependencies_list, \
- requires, upgrade, installed, sbo_list, \
- upg_name, pkg_for_upg, upg_ver, upg_arch = ([] for i in range(10))
+
+ done = "{0}Done{1}\n".format(GREY, ENDC)
+ reading_lists = "{0}Reading package lists ...{1}".format(GREY, ENDC)
+ sys.stdout.write(reading_lists)
+ sys.stdout.flush()
+ init = initialization()
+ arches = ["-x86_64-", "-i486-", "-arm-", "-noarch-"]
+ index, toolbar_width = int(), 3
+ [
+ dependencies,
+ dependencies_list,
+ requires,
+ upgrade,
+ installed,
+ sbo_list,
+ upg_name,
+ pkg_for_upg,
+ upg_ver,
+ upg_arch
+ ] = ([] for i in range(10))
+ try:
for pkg in os.listdir(pkg_path):
if pkg.endswith("_SBo"):
sbo_list.append(pkg)
@@ -83,7 +94,7 @@ def sbo_check():
# search packages if exists in the repository
# and it gets to avoidable modified packages
# from the user with the tag _SBo
- sbo_package = ("{0}-{1}".format(name, sbo_version_pkg(name)))
+ sbo_package = ("{0}-{1}".format(name, SBoGrep(name).version()))
if sbo_package > package:
upg_name.append(name)
sys.stdout.write(done)
@@ -119,7 +130,7 @@ def sbo_check():
# In the end lest a check of the packages that are on the list
# are already installed.
for pkg in dependencies_list:
- ver = sbo_version_pkg(pkg)
+ ver = SBoGrep(pkg).version()
prgnam = ("{0}-{1}".format(pkg, ver))
pkg_version = ver # if package not installed
# take version from repository
@@ -179,12 +190,12 @@ def sbo_check():
prgnam = ("{0}-{1}".format(name, version))
sbo_url = sbo_search_pkg(name)
sbo_dwn = sbo_slackbuild_dwn(sbo_url)
- src_dwn = sbo_source_dwn(name).split()
+ src_dwn = SBoGrep(name).source().split()
script = sbo_dwn.split("/")[-1] # keep file from script link
- download(build_path, sbo_dwn)
+ Download(build_path, sbo_dwn).start()
sources = []
for src in src_dwn:
- download(build_path, src)
+ Download(build_path, src).start()
sources.append(src.split("/")[-1]) # keep file from source link
build_package(script, sources, build_path)
# Searches the package name and version in /tmp to install.
@@ -206,7 +217,7 @@ def sbo_check():
# Use this list to pick out what
# packages will be installed
installed.append(name)
- pkg_upgrade(binary)
+ PackageManager(binary).upgrade()
if len(pkg_for_upg) > 1:
template(78)
print("| Total {0} {1} upgraded and {2} {3} installed".format(
diff --git a/slpkg/sbo/dependency.py b/slpkg/sbo/dependency.py
index f88bac89..d99ce1bc 100755
--- a/slpkg/sbo/dependency.py
+++ b/slpkg/sbo/dependency.py
@@ -24,15 +24,11 @@
import sys
from slpkg.colors import *
-from slpkg.init import initialization
from slpkg.blacklist import BlackList
-from slpkg.__metadata__ import pkg_path, sp
-from slpkg.messages import pkg_not_found, template
-
-from slpkg.pkg.find import find_package
+from greps import SBoGrep
from search import sbo_search_pkg
-from greps import sbo_requires_pkg
+
dep_results = []
@@ -45,7 +41,7 @@ def sbo_dependencies_pkg(name):
blacklist = BlackList().packages()
sbo_url = sbo_search_pkg(name)
if sbo_url:
- requires = sbo_requires_pkg(name)
+ requires = SBoGrep(name).requires()
for req in requires:
# avoid to add %README% as dependency and
# if require in blacklist
@@ -62,51 +58,3 @@ def sbo_dependencies_pkg(name):
except KeyboardInterrupt:
print # new line at exit
sys.exit()
-
-def pkg_tracking(name):
- '''
- View tree of dependencies and also
- highlight packages with color green
- if allready installed and color red
- if not installed.
- '''
- done = "{0}Done{1}\n".format(GREY, ENDC)
- reading_lists = "{0}Reading package lists ...{1}".format(GREY, ENDC)
- sys.stdout.write(reading_lists)
- sys.stdout.flush()
- init = initialization()
- dependencies_list = sbo_dependencies_pkg(name)
- if dependencies_list is not None:
- sys.stdout.write(done)
- print # new line at start
- requires, dependencies = [], []
- # Create one list for all packages
- for pkg in dependencies_list:
- requires += pkg
- requires.reverse()
- # Remove double dependencies
- for duplicate in requires:
- if duplicate not in dependencies:
- dependencies.append(duplicate)
- if dependencies == []:
- dependencies = ["No dependencies"]
- pkg_len = len(name) + 24
- template(pkg_len)
- print("| Package {0}{1}{2} dependencies :".format(CYAN, name, ENDC))
- template(pkg_len)
- print("\\")
- print(" +---{0}[ Tree of dependencies ]{1}".format(YELLOW, ENDC))
- index = int()
- for pkg in dependencies:
- index += 1
- if find_package(pkg + sp, pkg_path):
- print(" |")
- print(" {0}{1}: {2}{3}{4}".format("+--", index, GREEN, pkg, ENDC))
- else:
- print(" |")
- print(" {0}{1}: {2}{3}{4}".format("+--", index, RED, pkg, ENDC))
- print # new line at end
- else:
- sys.stdout.write(done)
- message = "From slackbuilds.org"
- pkg_not_found("\n", name, message, "\n")
diff --git a/slpkg/sbo/download.py b/slpkg/sbo/download.py
index 91517900..aa3e00ad 100755
--- a/slpkg/sbo/download.py
+++ b/slpkg/sbo/download.py
@@ -21,6 +21,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+
def sbo_slackbuild_dwn(sbo_url):
'''
Create download slackbuild tar.gz archive
diff --git a/slpkg/sbo/greps.py b/slpkg/sbo/greps.py
index bb8a49d9..78fa99d8 100755
--- a/slpkg/sbo/greps.py
+++ b/slpkg/sbo/greps.py
@@ -28,102 +28,105 @@ from slpkg.__metadata__ import arch, lib_path
from search import sbo_search_pkg
-def sbo_source_dwn(name):
+
+class SBoGrep(object):
'''
- Grab sources downloads links
+ Class data grab
'''
- if arch == "x86_64":
- with open(lib_path + "sbo_repo/SLACKBUILDS.TXT", "r") as SLACKBUILDS_TXT:
- for line in SLACKBUILDS_TXT:
- if arch == "x86_64":
- if line.startswith("SLACKBUILD NAME: "):
+ def __init__(self, name):
+ self.name = name
+ arch64 = "x86_64"
+ self.line_name = "SLACKBUILD NAME: "
+ self.line_down = "SLACKBUILD DOWNLOAD: "
+ self.line_down_64 = "SLACKBUILD DOWNLOAD_{0}: ".format(arch64)
+ self.line_req = "SLACKBUILD REQUIRES: "
+ self.line_ver = "SLACKBUILD VERSION: "
+ self.line_md5 = "SLACKBUILD MD5SUM: "
+ self.line_md5_64 = "SLACKBUILD MD5SUM_{0}: ".format(arch64)
+ self.line_des = "SLACKBUILD SHORT DESCRIPTION: "
+ self.sbo_txt = lib_path + "sbo_repo/SLACKBUILDS.TXT"
+
+ def source(self):
+ '''
+ Grab sources downloads links
+ '''
+ if arch == "x86_64":
+ with open(self.sbo_txt, "r") as SLACKBUILDS_TXT:
+ for line in SLACKBUILDS_TXT:
+ if line.startswith(self.line_name):
sbo_name = line[17:].strip()
- if line.startswith("SLACKBUILD DOWNLOAD_x86_64: "):
- if sbo_name == name:
+ if line.startswith(self.line_down_64):
+ if sbo_name == self.name:
if line[28:].strip():
SLACKBUILDS_TXT.close()
return line[28:].strip()
- with open(lib_path + "sbo_repo/SLACKBUILDS.TXT", "r") as SLACKBUILDS_TXT:
- for line in SLACKBUILDS_TXT:
- if line.startswith("SLACKBUILD NAME: "):
- sbo_name = line[17:].strip()
- if line.startswith("SLACKBUILD DOWNLOAD: "):
- if sbo_name == name:
- SLACKBUILDS_TXT.close()
- return line[21:].strip()
-
-def sbo_requires_pkg(name):
- '''
- Grab package requirements
- '''
- with open(lib_path + "sbo_repo/SLACKBUILDS.TXT", "r") as SLACKBUILDS_TXT:
- for line in SLACKBUILDS_TXT:
- if line.startswith("SLACKBUILD NAME: "):
- sbo_name = line[17:].strip()
- if line.startswith("SLACKBUILD REQUIRES: "):
- if sbo_name == name:
- SLACKBUILDS_TXT.close()
- return line[21:].strip().split()
-
-def sbo_build_tag(sbo_url, name):
- # This feature is not yet used
- # because the program is doing heavy on search.
- # Looking for the best option to be able to use
- # the BUILD tag
- '''
- Grab .SlackBuild BUILD tag
- '''
- read_info = url_read(sbo_url + name + ".SlackBuild")
- for line in read_info.splitlines():
- if line.startswith("BUILD=${BUILD:"):
- return line[15:-1].strip().split()
-
-def sbo_version_pkg(name):
- '''
- Grab package verion
- '''
- with open(lib_path + "sbo_repo/SLACKBUILDS.TXT", "r") as SLACKBUILDS_TXT:
- for line in SLACKBUILDS_TXT:
- if line.startswith("SLACKBUILD NAME: "):
- sbo_name = line[17:].strip()
- if line.startswith("SLACKBUILD VERSION: "):
- if sbo_name == name:
- SLACKBUILDS_TXT.close()
- return line[20:].strip()
-
-def sbo_checksum_pkg(name):
- '''
- Grab checksum string
- '''
- if arch == "x86_64":
- with open(lib_path + "sbo_repo/SLACKBUILDS.TXT", "r") as SLACKBUILDS_TXT:
+ with open(self.sbo_txt, "r") as SLACKBUILDS_TXT:
for line in SLACKBUILDS_TXT:
- if arch == "x86_64":
- if line.startswith("SLACKBUILD NAME: "):
+ if line.startswith(self.line_name):
+ sbo_name = line[17:].strip()
+ if line.startswith(self.line_down):
+ if sbo_name == self.name:
+ SLACKBUILDS_TXT.close()
+ return line[21:].strip()
+
+ def requires(self):
+ '''
+ Grab package requirements
+ '''
+ with open(self.sbo_txt, "r") as SLACKBUILDS_TXT:
+ for line in SLACKBUILDS_TXT:
+ if line.startswith(self.line_name):
+ sbo_name = line[17:].strip()
+ if line.startswith(self.line_req):
+ if sbo_name == self.name:
+ SLACKBUILDS_TXT.close()
+ return line[21:].strip().split()
+
+ def version(self):
+ '''
+ Grab package version
+ '''
+ with open(self.sbo_txt, "r") as SLACKBUILDS_TXT:
+ for line in SLACKBUILDS_TXT:
+ if line.startswith(self.line_name):
+ sbo_name = line[17:].strip()
+ if line.startswith(self.line_ver):
+ if sbo_name == self.name:
+ SLACKBUILDS_TXT.close()
+ return line[20:].strip()
+
+ def checksum(self):
+ '''
+ Grab checksum string
+ '''
+ if arch == "x86_64":
+ with open(self.sbo_txt, "r") as SLACKBUILDS_TXT:
+ for line in SLACKBUILDS_TXT:
+ if line.startswith(self.line_name):
sbo_name = line[17:].strip()
- if line.startswith("SLACKBUILD MD5SUM_x86_64: "):
- if sbo_name == name:
+ if line.startswith(self.line_md5_64):
+ if sbo_name == self.name:
if line[26:].strip():
SLACKBUILDS_TXT.close()
return line[26:].strip()
- with open(lib_path + "sbo_repo/SLACKBUILDS.TXT", "r") as SLACKBUILDS_TXT:
- for line in SLACKBUILDS_TXT:
- if line.startswith("SLACKBUILD NAME: "):
- sbo_name = line[17:].strip()
- if line.startswith("SLACKBUILD MD5SUM: "):
- if sbo_name == name:
- SLACKBUILDS_TXT.close()
- return line[19:].strip()
-
-def sbo_description_pkg(name):
- '''
- Grab package verion
- '''
- with open(lib_path + "sbo_repo/SLACKBUILDS.TXT", "r") as SLACKBUILDS_TXT:
- for line in SLACKBUILDS_TXT:
- if line.startswith("SLACKBUILD NAME: "):
- sbo_name = line[17:].strip()
- if line.startswith("SLACKBUILD SHORT DESCRIPTION: "):
- if sbo_name == name:
- SLACKBUILDS_TXT.close()
- return line[31:].strip()
+ with open(self.sbo_txt, "r") as SLACKBUILDS_TXT:
+ for line in SLACKBUILDS_TXT:
+ if line.startswith(self.line_name):
+ sbo_name = line[17:].strip()
+ if line.startswith(self.line_md5):
+ if sbo_name == self.name:
+ SLACKBUILDS_TXT.close()
+ return line[19:].strip()
+
+ def description(self):
+ '''
+ Grab package verion
+ '''
+ with open(self.sbo_txt, "r") as SLACKBUILDS_TXT:
+ for line in SLACKBUILDS_TXT:
+ if line.startswith(self.line_name):
+ sbo_name = line[17:].strip()
+ if line.startswith(self.line_des):
+ if sbo_name == self.name:
+ SLACKBUILDS_TXT.close()
+ return line[31:].strip()
diff --git a/slpkg/sbo/read.py b/slpkg/sbo/read.py
index 8ed27de2..ea1fa4a2 100755
--- a/slpkg/sbo/read.py
+++ b/slpkg/sbo/read.py
@@ -25,6 +25,7 @@ import os
from slpkg.url_read import url_read
+
def read_readme(sbo_url, sbo_readme):
'''
Read SlackBuild README file
diff --git a/slpkg/sbo/search.py b/slpkg/sbo/search.py
index da3c18ca..d828200e 100755
--- a/slpkg/sbo/search.py
+++ b/slpkg/sbo/search.py
@@ -30,6 +30,7 @@ from slpkg.blacklist import BlackList
from slpkg.slack.slack_version import slack_ver
+
def sbo_search_pkg(name):
'''
Search for package path from SLACKBUILDS.TXT file
diff --git a/slpkg/sbo/slackbuild.py b/slpkg/sbo/slackbuild.py
index d1c226de..6e83d711 100755
--- a/slpkg/sbo/slackbuild.py
+++ b/slpkg/sbo/slackbuild.py
@@ -26,20 +26,21 @@ import sys
from slpkg.colors import *
from slpkg.init import initialization
-from slpkg.downloader import download
+from slpkg.downloader import Download
from slpkg.__metadata__ import (tmp, pkg_path, build_path,
- log_path, lib_path, sp)
-from slpkg.messages import (pkg_not_found, pkg_found, template,
- build_FAILED, sbo_packages_view)
+ log_path, lib_path, sp)
+from slpkg.messages import (pkg_found, template, build_FAILED,
+ pkg_not_found, sbo_packages_view)
from slpkg.pkg.find import find_package
from slpkg.pkg.build import build_package
-from slpkg.pkg.manager import pkg_upgrade
+from slpkg.pkg.manager import PackageManager
+from greps import SBoGrep
from search import sbo_search_pkg
from download import sbo_slackbuild_dwn
from dependency import sbo_dependencies_pkg
-from greps import sbo_source_dwn, sbo_version_pkg
+
def sbo_build(name):
'''
@@ -47,14 +48,21 @@ def sbo_build(name):
with all dependencies if version is greater than
that established.
'''
- sbo_ver, pkg_arch, installs, upgraded, \
- versions, requires, dependencies = ([] for i in range(7))
- PKG_COLOR = DEP_COLOR = ARCH_COLOR = str()
done = "{0}Done{1}\n".format(GREY, ENDC)
reading_lists = "{0}Reading package lists ...{1}".format(GREY, ENDC)
sys.stdout.write(reading_lists)
sys.stdout.flush()
init = initialization()
+ [
+ sbo_ver,
+ pkg_arch,
+ installs,
+ upgraded,
+ versions,
+ requires,
+ dependencies
+ ] = ([] for i in range(7))
+ PKG_COLOR = DEP_COLOR = ARCH_COLOR = str()
dependencies_list = sbo_dependencies_pkg(name)
try:
if dependencies_list is not None or sbo_search_pkg(name) is not None:
@@ -73,9 +81,9 @@ def sbo_build(name):
# Create two lists one for package version and one
# for package arch.
for pkg in dependencies:
- version = sbo_version_pkg(pkg)
+ version = SBoGrep(pkg).version()
sbo_ver.append(version)
- src = sbo_source_dwn(pkg)
+ src = SBoGrep(pkg).source()
pkg_arch.append(select_arch(src))
sbo_pkg = ("{0}-{1}".format(pkg, version))
if find_package(sbo_pkg, pkg_path):
@@ -138,7 +146,7 @@ def sbo_build(name):
# before proceed to install
UNST = ["UNSUPPORTED", "UNTESTED"]
if src in UNST:
- print("\n{0}The package {1}{2}\n".format(RED, src, ENDC))
+ print("{0}The package {1}{2}\n".format(RED, src, ENDC))
read = ""
# exit if all packages already installed
elif pkg_sum == len(dependencies):
@@ -160,13 +168,13 @@ def sbo_build(name):
else:
sbo_url = sbo_search_pkg(pkg)
sbo_link = sbo_slackbuild_dwn(sbo_url)
- src_link = sbo_source_dwn(pkg).split()
+ src_link = SBoGrep(pkg).source().split()
script = sbo_link.split("/")[-1] # get file from script
- download(build_path, sbo_link)
+ Download(build_path, sbo_link).start()
sources = []
for src in src_link:
sources.append(src.split("/")[-1]) # get file from source
- download(build_path, src)
+ Download(build_path, src).start()
build_package(script, sources, build_path)
# Searches the package name and version in /tmp to install.
# If find two or more packages e.g. to build tag
@@ -187,7 +195,7 @@ def sbo_build(name):
else:
print("{0}[ Installing ] --> {1}{2}".format(
GREEN, ENDC, pkg))
- pkg_upgrade(binary)
+ PackageManager(binary).upgrade()
installs.append(pkg)
versions.append(ver)
# Reference list with packages installed
@@ -235,8 +243,8 @@ def sbo_build(name):
sys.stdout.flush()
toolbar_width += 6
sbo_matching.append(sbo_name)
- sbo_ver.append(sbo_version_pkg(sbo_name))
- src = sbo_source_dwn(sbo_name)
+ sbo_ver.append(SBoGrep(sbo_name).version())
+ src = SBoGrep(sbo_name).source()
pkg_arch.append(select_arch(src))
SLACKBUILDS_TXT.close()
sys.stdout.write(done)
@@ -270,7 +278,8 @@ def sbo_build(name):
print("{0} installed {1} and {2} uninstalled {3}.{4}\n".format(
ins, ins_msg, uns, uns_msg, ENDC))
else:
- print("\nNo package was found to match\n")
+ message = "No matching"
+ pkg_not_found("\n", name, message, "\n")
except KeyboardInterrupt:
print # new line at exit
sys.exit()
diff --git a/slpkg/sbo/tracking.py b/slpkg/sbo/tracking.py
new file mode 100755
index 00000000..dea15fc5
--- /dev/null
+++ b/slpkg/sbo/tracking.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# tracking.py file is part of slpkg.
+
+# Copyright 2014 Dimitris Zlatanidis
+# All rights reserved.
+
+# Utility for easy management packages in Slackware
+
+# https://github.com/dslackw/slpkg
+
+# Slpkg is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+import sys
+
+from slpkg.colors import *
+from slpkg.messages import template
+from slpkg.init import initialization
+from slpkg.__metadata__ import pkg_path, sp
+
+from dependency import sbo_dependencies_pkg
+
+from slpkg.pkg.find import find_package
+
+
+def track_dep(name):
+ '''
+ View tree of dependencies and also
+ highlight packages with color green
+ if allready installed and color red
+ if not installed.
+ '''
+ done = "{0}Done{1}\n".format(GREY, ENDC)
+ reading_lists = "{0}Reading package lists ...{1}".format(GREY, ENDC)
+ sys.stdout.write(reading_lists)
+ sys.stdout.flush()
+ init = initialization()
+ dependencies_list = sbo_dependencies_pkg(name)
+ if dependencies_list is not None:
+ sys.stdout.write(done)
+ requires, dependencies = [], []
+ # Create one list for all packages
+ for pkg in dependencies_list:
+ requires += pkg
+ requires.reverse()
+ # Remove double dependencies
+ for duplicate in requires:
+ if duplicate not in dependencies:
+ dependencies.append(duplicate)
+ if dependencies == []:
+ dependencies = ["No dependencies"]
+ pkg_len = len(name) + 24
+ print # new line at start
+ template(pkg_len)
+ print("| Package {0}{1}{2} dependencies :".format(CYAN, name, ENDC))
+ template(pkg_len)
+ print("\\")
+ print(" +---{0}[ Tree of dependencies ]{1}".format(YELLOW, ENDC))
+ index = int()
+ for pkg in dependencies:
+ index += 1
+ if find_package(pkg + sp, pkg_path):
+ print(" |")
+ print(" {0}{1}: {2}{3}{4}".format("+--", index, GREEN, pkg, ENDC))
+ else:
+ print(" |")
+ print(" {0}{1}: {2}{3}{4}".format("+--", index, RED, pkg, ENDC))
+ print # new line at end
+ else:
+ sys.stdout.write(done)
+ print("\nNo package was found to match\n")
diff --git a/slpkg/sbo/views.py b/slpkg/sbo/views.py
index 9113f1d6..e09e2e90 100755
--- a/slpkg/sbo/views.py
+++ b/slpkg/sbo/views.py
@@ -27,20 +27,21 @@ import pydoc
from slpkg.colors import *
from slpkg.init import initialization
-from slpkg.downloader import download
+from slpkg.downloader import Download
from slpkg.__metadata__ import tmp, build_path, pkg_path, sp
-from slpkg.messages import (pkg_not_found, pkg_found, view_sbo,
+from slpkg.messages import (pkg_found, view_sbo, pkg_not_found,
template, build_FAILED)
from slpkg.pkg.build import build_package
from slpkg.pkg.find import find_package
-from slpkg.pkg.manager import pkg_upgrade
+from slpkg.pkg.manager import PackageManager
from read import *
-from greps import *
+from greps import SBoGrep
from search import sbo_search_pkg
from download import sbo_slackbuild_dwn
+
def sbo_network(name):
'''
View SlackBuild package, read or install them
@@ -53,10 +54,10 @@ def sbo_network(name):
init = initialization()
sbo_url = sbo_search_pkg(name)
if sbo_url:
- sbo_desc = sbo_description_pkg(name)[len(name) + 2:-1]
- sbo_req = sbo_requires_pkg(name)
+ sbo_desc = SBoGrep(name).description()[len(name) + 2:-1]
+ sbo_req = SBoGrep(name).requires()
sbo_dwn = sbo_slackbuild_dwn(sbo_url)
- source_dwn = sbo_source_dwn(name).split()
+ source_dwn = SBoGrep(name).source().split()
sys.stdout.write(done)
view_sbo(name, sbo_url, sbo_desc, sbo_dwn.split("/")[-1], \
", ".join([src.split("/")[-1] for src in source_dwn]), \
@@ -75,9 +76,9 @@ def sbo_network(name):
break
if read == "D" or read == "d":
path = ""
- download(path, sbo_dwn)
+ Download(path, sbo_dwn).start()
for src in source_dwn:
- download(path, src)
+ Download(path, src).start()
break
elif read == "R" or read == "r":
readme = "README"
@@ -97,9 +98,9 @@ def sbo_network(name):
sources = []
os.chdir(build_path)
script = sbo_dwn.split("/")[-1] # get file from script link
- download(build_path, sbo_dwn)
+ Download(build_path, sbo_dwn).start()
for src in source_dwn:
- download(build_path, src)
+ Download(build_path, src).start()
sources.append(src.split("/")[-1]) # get file from source link
build_package(script, sources, build_path)
break
@@ -109,15 +110,15 @@ def sbo_network(name):
sys.exit()
if not os.path.exists(build_path):
os.mkdir(build_path)
- sbo_version = sbo_version_pkg(name)
+ sbo_version = SBoGrep(name).version()
prgnam = ("{0}-{1}".format(name, sbo_version))
if find_package(prgnam + sp, pkg_path) == []:
sources = []
os.chdir(build_path)
- download(build_path, sbo_dwn)
+ Download(build_path, sbo_dwn).start()
script = sbo_dwn.split("/")[-1] # get file from script link
for src in source_dwn:
- download(build_path, src)
+ Download(build_path, src).start()
sources.append(src.split("/")[-1]) # get file from source link
build_package(script, sources, build_path)
# Searches the package name and version in /tmp to install.
@@ -133,7 +134,7 @@ def sbo_network(name):
build_FAILED(sbo_url, prgnam)
sys.exit()
print("{0}[ Installing ] --> {1} {2}".format(GREEN, ENDC, name))
- pkg_upgrade(binary)
+ PackageManager(binary).upgrade()
break
else:
template(78)
@@ -143,6 +144,6 @@ def sbo_network(name):
else:
break
else:
- sys.stdout.write (done)
- message = "From slackbuilds.org"
+ sys.stdout.write(done)
+ message = "Can't view"
pkg_not_found("\n", name, message, "\n")
diff --git a/slpkg/slack/install.py b/slpkg/slack/install.py
index 190ed77f..c39290ca 100755
--- a/slpkg/slack/install.py
+++ b/slpkg/slack/install.py
@@ -27,29 +27,37 @@ import time
from slpkg.colors import *
from slpkg.url_read import url_read
-from slpkg.downloader import download
+from slpkg.downloader import Download
from slpkg.blacklist import BlackList
from slpkg.messages import pkg_not_found, template
from slpkg.__metadata__ import slpkg_tmp, pkg_path, slack_archs
from slpkg.pkg.find import find_package
-from slpkg.pkg.manager import pkg_upgrade, pkg_reinstall
+from slpkg.pkg.manager import PackageManager
from mirrors import mirrors
from splitting import split_package
+
def install(slack_pkg, version):
'''
Install packages from official Slackware distribution
'''
try:
- pkg_sum = uni_sum = upg_sum = int()
- comp_sum, uncomp_sum, names, dwn_list, comp_size, \
- uncomp_size, install_all, package_name, \
- package_location = ([] for i in range(9))
done = "{0}Done{1}\n".format(GREY, ENDC)
reading_lists = "{0}Reading package lists ...{1}".format(GREY, ENDC)
+ [
+ comp_sum,
+ uncomp_sum,
+ names, dwn_list,
+ comp_size,
+ uncomp_size,
+ install_all,
+ package_name,
+ package_location
+ ] = ([] for i in range(9))
arch = COLOR = str()
+ pkg_sum = uni_sum = upg_sum = int()
# create directories if not exists
tmp_path = slpkg_tmp + "packages/"
if not os.path.exists(slpkg_tmp):
@@ -150,21 +158,22 @@ def install(slack_pkg, version):
read = raw_input("\nWould you like to install [Y/n]? ")
if read == "Y" or read == "y":
for dwn in dwn_list:
- download(tmp_path, dwn)
- download(tmp_path, dwn + ".asc")
+ Download(tmp_path, dwn).start()
+ Download(tmp_path, dwn + ".asc").start()
for install, name in zip(install_all, names):
+ package = ((tmp_path + install).split())
if os.path.isfile(pkg_path + install[:-4]):
print("{0}[ reinstalling ] --> {1}{2}".format(
GREEN, ENDC, install))
- pkg_reinstall((tmp_path + install).split())
+ PackageManager(package).reinstall()
elif find_package(name + "-", pkg_path):
print("{0}[ upgrading ] --> {1}{2}".format(
GREEN, ENDC, install))
- pkg_upgrade((tmp_path + install).split())
+ PackageManager(package).upgrade()
else:
print("{0}[ installing ] --> {1}{2}".format(
GREEN, ENDC, install))
- pkg_upgrade((tmp_path + install).split())
+ PackageManager(package).upgrade()
read = raw_input("Removal downloaded packages [Y/n]? ")
if read == "Y" or read == "y":
for remove in install_all:
diff --git a/slpkg/slack/mirrors.py b/slpkg/slack/mirrors.py
index fb6ce780..ff9fa8a7 100755
--- a/slpkg/slack/mirrors.py
+++ b/slpkg/slack/mirrors.py
@@ -24,6 +24,7 @@
from slpkg.__metadata__ import arch
from slack_version import slack_ver
+
def mirrors(name, location, version):
'''
Select Slackware official mirror packages
diff --git a/slpkg/slack/patches.py b/slpkg/slack/patches.py
index 10bb70bb..cd4afc0a 100755
--- a/slpkg/slack/patches.py
+++ b/slpkg/slack/patches.py
@@ -29,26 +29,35 @@ import subprocess
from slpkg.colors import *
from slpkg.url_read import url_read
from slpkg.messages import template
-from slpkg.downloader import download
+from slpkg.downloader import Download
from slpkg.blacklist import BlackList
from slpkg.__metadata__ import pkg_path, slpkg_tmp
-from slpkg.pkg.manager import pkg_upgrade
+from slpkg.pkg.manager import PackageManager
from mirrors import mirrors
from splitting import split_package
from slack_version import slack_ver
+
def patches(version):
'''
Install new patches from official Slackware mirrors
'''
try:
- slack_arch = str()
- comp_sum, uncomp_sum, dwn_patches, comp_size, uncomp_size, \
- upgrade_all, package_name, package_location = ([] for i in range(8))
done = "{0}Done{1}\n".format(GREY, ENDC)
reading_lists = "{0}Reading package lists ...{1}".format(GREY, ENDC)
+ [
+ comp_sum,
+ uncomp_sum,
+ dwn_patches,
+ comp_size,
+ uncomp_size,
+ upgrade_all,
+ package_name,
+ package_location
+ ] = ([] for i in range(8))
+ slack_arch = str()
patch_path = slpkg_tmp + "patches/"
if not os.path.exists(slpkg_tmp):
os.mkdir(slpkg_tmp)
@@ -156,11 +165,11 @@ def patches(version):
read = raw_input("\nWould you like to upgrade [Y/n]? ")
if read == "Y" or read == "y":
for dwn in dwn_patches:
- download(patch_path, dwn)
- download(patch_path, dwn + ".asc")
+ Download(patch_path, dwn).start()
+ Download(patch_path, dwn + ".asc").start()
for pkg in upgrade_all:
print("{0}[ upgrading ] --> {1}{2}".format(GREEN, ENDC, pkg[:-4]))
- pkg_upgrade((patch_path + pkg).split())
+ PackageManager((patch_path + pkg).split()).upgrade()
for kernel in upgrade_all:
if "kernel" in kernel:
print("The kernel has been upgraded, reinstall `lilo` ...")
diff --git a/slpkg/slack/slack_version.py b/slpkg/slack/slack_version.py
index 588ad04a..75c866a7 100755
--- a/slpkg/slack/slack_version.py
+++ b/slpkg/slack/slack_version.py
@@ -23,6 +23,7 @@
import re
+
def slack_ver():
'''
Open file and read Slackware version
diff --git a/slpkg/slack/splitting.py b/slpkg/slack/splitting.py
index ca4a323e..be0f360f 100755
--- a/slpkg/slack/splitting.py
+++ b/slpkg/slack/splitting.py
@@ -25,6 +25,7 @@ from slpkg.__metadata__ import slack_archs
from slack_version import slack_ver
+
def split_package(package):
'''
Split package in name, version
diff --git a/slpkg/url_read.py b/slpkg/url_read.py
index 03f264d4..f612540b 100755
--- a/slpkg/url_read.py
+++ b/slpkg/url_read.py
@@ -24,6 +24,7 @@
import sys
import urllib2
+
def url_read(link):
'''
Open url and read
diff --git a/slpkg/version.py b/slpkg/version.py
index 35861595..247884b0 100755
--- a/slpkg/version.py
+++ b/slpkg/version.py
@@ -23,6 +23,7 @@
from __metadata__ import __version__, __license__, __email__
+
def prog_version():
'''
Print version, license and email