Added additional option

This commit is contained in:
Dimitris Zlatanidis 2015-07-22 06:37:41 +03:00
parent d352e92e0f
commit 7fe6fc07ae
5 changed files with 62 additions and 17 deletions

View file

@ -683,7 +683,7 @@ and also displays installed packages:
.. code-block:: bash
$ slpkg -t sbo brasero
Reading package lists... Done
Resolving dependencies... Done
+=========================
| brasero dependencies :
@ -701,6 +701,28 @@ and also displays installed packages:
|
+--5 libunique
Check if dependencies used:
$ slpkg -t sbo Flask --check-deps
Resolving dependencies... Done
+=============================
| Package Flask dependencies :
+=============================
\
+---[ Tree of dependencies ]
|
+--1: pysetuptools is dependency --> Flask, bpython, pip, pylint
|
+--2: MarkupSafe is dependency --> Flask
|
+--3: itsdangerous is dependency --> Flask
|
+--4: Jinja2 is dependency --> Flask
|
+--5: werkzeug is dependency --> Flask
Check if your packages is up to date or changes in ChangeLog.txt:

View file

@ -32,7 +32,7 @@ Usage: slpkg Commands:
[-l [repository], --index, --installed]
[-c [repository] --upgrade, --skip=[...] --resolve-off]
[-s [repository] [package...], --resolve-off]
[-t [repository] [package]]
[-t [repository] [package], --check-deps]
[-p [repository] [package], --color=[]]
[-n [SBo package]] [-F [...]] [-f [...]]
[-i [options] [...]] [-u [options] [...]]
@ -163,11 +163,12 @@ dependencies of the package. Switch off automatic resolve dependencies with addi
"--resolve-off".
.SS -t, --tracking, tracking dependencies
\fBslpkg\fP \fB-t\fP <\fIrepository\fP> <\fIname of package\fP>
\fBslpkg\fP \fB-t\fP <\fIrepository\fP> <\fIname of package\fP>, \fB--check-deps\fP
.PP
Tracking all dependencies of that package.
The sequence shown is that you must follow to correctly install package.
Also you can check if the installed package has all the required dependencies.
Also you can check if the installed package has all the required dependencies and with
additional option "--check-deps" if used by other packages.
.SS -p, --desk, print packages description
\fBslpkg\fP \fB-p\fP <\fIrepository\fP> <\fIname of package\fP>, \fB--color=[]\fP

View file

@ -85,8 +85,8 @@ Optional arguments:
-s, --sync, [repository] [package...], Sync packages. Install packages
--resolve-off directly from remote repositories
with all dependencies.
-t, --tracking, [repository] [package] Tracking package dependencies and
print package dependenies tree with
-t, --tracking, [repository] [package], Tracking package dependencies and
--check-deps print package dependenies tree with
highlight if packages is installed.
-p, --desc, [repository] [package], Print description of a package
--color=[] directly from the repository and
@ -140,7 +140,7 @@ def usage(repo):
[-l [repository], --index, --installed]
[-c [repository], --upgrade, --skip=[...] --resolve-off]
[-s [repository] [package...], --resolve-off]
[-t [repository] [package]]
[-t [repository] [package], --check-deps]
[-p [repository] [package], --color=[]]
[-n [SBo package]] [-F [...]] [-f [...]]
[-i [options] [...]] [-u [options] [...]]

View file

@ -291,9 +291,14 @@ class ArgParse(object):
"""Tracking package dependencies
"""
options = ["-t", "--tracking"]
flag = ["--check-deps"]
if (len(self.args) == 3 and self.args[0] in options and
self.args[1] in self.meta.repositories):
track_dep(self.args[2], self.args[1])
track_dep(self.args[2], self.args[1], flag="")
elif (len(self.args) == 4 and self.args[0] in options and
self.args[1] in self.meta.repositories and
self.args[3] == flag[0]):
track_dep(self.args[2], self.args[1], flag[0])
elif (len(self.args) > 1 and self.args[0] in options and
self.args[1] not in self.meta.repositories):
usage(self.args[1])

View file

@ -36,7 +36,7 @@ from binary.search import search_pkg
from binary.dependency import Dependencies
def track_dep(name, repo):
def track_dep(name, repo, flag):
"""
View tree of dependencies and also
highlight packages with color green
@ -75,25 +75,42 @@ def track_dep(name, repo):
_meta_.color["YELLOW"], _meta_.color["ENDC"]))
index = 0
for pkg in dependencies:
used = ""
if flag == "--check-deps":
used = "{0} {1}{2}{3}".format(
"is dependency -->", _meta_.color["CYAN"],
", ".join(check_used(pkg)), _meta_.color["ENDC"])
index += 1
installed = ""
if find_package(pkg + _meta_.sp, _meta_.pkg_path):
if _meta_.use_colors in ["off", "OFF"]:
installed = "*"
print(" |")
print(" {0}{1}: {2}{3}{4} {5}".format("+--", index,
_meta_.color["GREEN"],
pkg, _meta_.color["ENDC"],
installed))
print(" {0}{1}: {2}{3}{4} {5}{6}".format(
"+--", index, _meta_.color["GREEN"], pkg,
_meta_.color["ENDC"], installed, used))
else:
print(" |")
print(" {0}{1}: {2}{3}{4} {5}".format("+--", index,
_meta_.color["RED"], pkg,
_meta_.color["ENDC"],
installed))
print(" {0}{1}: {2}{3}{4} {5}{6}".format(
"+--", index, _meta_.color["RED"], pkg,
_meta_.color["ENDC"], installed, used))
if _meta_.use_colors in ["off", "OFF"]:
print("\n *: Installed\n")
else:
print("") # new line at end
else:
print("\nNo package was found to match\n")
def check_used(pkg):
"""Check if dependencies used
"""
used = []
dep_path = _meta_.log_path + "dep/"
logs = find_package("", dep_path)
for log in logs:
deps = Utils().read_file(dep_path + log)
for dep in deps.splitlines():
if pkg == dep:
used.append(log)
return used