mirror of
https://gitlab.com/dslackw/slpkg.git
synced 2025-02-01 07:57:26 +01:00
updated for version 1.9.8
This commit is contained in:
parent
a5bb698e36
commit
ac6ad56731
32 changed files with 604 additions and 473 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Version 1.9.8
|
||||||
|
07-10-2014
|
||||||
|
|
||||||
|
[Updated] - Source code update.
|
||||||
|
|
||||||
Version 1.9.7
|
Version 1.9.7
|
||||||
06-10-2014
|
06-10-2014
|
||||||
|
|
||||||
|
|
2
PKG-INFO
2
PKG-INFO
|
@ -1,6 +1,6 @@
|
||||||
Metadata-Version: 1.1
|
Metadata-Version: 1.1
|
||||||
Name: slpkg
|
Name: slpkg
|
||||||
Version: 1.9.7
|
Version: 1.9.8
|
||||||
Author: dslackw
|
Author: dslackw
|
||||||
Author-email: d zlatanidis at gmail com
|
Author-email: d zlatanidis at gmail com
|
||||||
Maintainer: dslackw
|
Maintainer: dslackw
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
|
|
||||||
Latest Release:
|
Latest Release:
|
||||||
|
|
||||||
- Version: 1.9.7
|
- Version: 1.9.8
|
||||||
- `Package <https://sourceforge.net/projects/slpkg/files/slpkg/binary/>`_
|
- `Package <https://sourceforge.net/projects/slpkg/files/slpkg/binary/>`_
|
||||||
- `Source <https://github.com/dslackw/slpkg/archive/v1.9.7.tar.gz>`_
|
- `Source <https://github.com/dslackw/slpkg/archive/v1.9.8.tar.gz>`_
|
||||||
- `CHANGELOG <https://github.com/dslackw/slpkg/blob/master/CHANGELOG>`_
|
- `CHANGELOG <https://github.com/dslackw/slpkg/blob/master/CHANGELOG>`_
|
||||||
|
|
||||||
.. image:: https://raw.githubusercontent.com/dslackw/images/master/slpkg/logo.png
|
.. 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
|
.. code-block:: bash
|
||||||
|
|
||||||
$ tar xvf slpkg-1.9.7.tar.gz
|
$ tar xvf slpkg-1.9.8.tar.gz
|
||||||
$ cd slpkg-1.9.7
|
$ cd slpkg-1.9.8
|
||||||
$ ./install.sh
|
$ ./install.sh
|
||||||
|
|
||||||
Using `pip <https://pip.pypa.io/en/latest/>`_ :
|
Using `pip <https://pip.pypa.io/en/latest/>`_ :
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
PRGNAM=slpkg
|
PRGNAM=slpkg
|
||||||
VERSION=${VERSION:-1.9.7}
|
VERSION=${VERSION:-1.9.8}
|
||||||
TAG=${TAG:-_dsw}
|
TAG=${TAG:-_dsw}
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
PRGNAM=slpkg
|
PRGNAM=slpkg
|
||||||
VERSION=${VERSION:-1.9.7}
|
VERSION=${VERSION:-1.9.8}
|
||||||
BUILD=${BUILD:-1}
|
BUILD=${BUILD:-1}
|
||||||
TAG=${TAG:-_dsw}
|
TAG=${TAG:-_dsw}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
PRGNAM="slpkg"
|
PRGNAM="slpkg"
|
||||||
VERSION="1.9.7"
|
VERSION="1.9.8"
|
||||||
HOMEPAGE="https://github.com/dslackw/slpkg"
|
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=""
|
MD5SUM=""
|
||||||
DOWNLOAD_x86_64=""
|
DOWNLOAD_x86_64=""
|
||||||
MD5SUM_x86_64=""
|
MD5SUM_x86_64=""
|
||||||
|
|
|
@ -26,7 +26,7 @@ import subprocess
|
||||||
|
|
||||||
__all__ = "slpkg"
|
__all__ = "slpkg"
|
||||||
__author__ = "dslackw"
|
__author__ = "dslackw"
|
||||||
__version_info__ = (1, 9, 7)
|
__version_info__ = (1, 9, 8)
|
||||||
__version__ = "{0}.{1}.{2}".format(*__version_info__)
|
__version__ = "{0}.{1}.{2}".format(*__version_info__)
|
||||||
__license__ = "GNU General Public License v3 (GPLv3)"
|
__license__ = "GNU General Public License v3 (GPLv3)"
|
||||||
__email__ = "d.zlatanidis@gmail.com"
|
__email__ = "d.zlatanidis@gmail.com"
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
import os
|
import os
|
||||||
from __metadata__ import bls_path
|
from __metadata__ import bls_path
|
||||||
|
|
||||||
|
|
||||||
class BlackList(object):
|
class BlackList(object):
|
||||||
'''
|
'''
|
||||||
Blacklist class to add, remove or listed packages
|
Blacklist class to add, remove or listed packages
|
||||||
|
@ -115,7 +116,7 @@ class BlackList(object):
|
||||||
print(pkg)
|
print(pkg)
|
||||||
black_conf.write(pkg + "\n")
|
black_conf.write(pkg + "\n")
|
||||||
exit = 1
|
exit = 1
|
||||||
black_conf.close()
|
black_conf.close()
|
||||||
if exit == 1:
|
if exit == 1:
|
||||||
print # new line at exit
|
print # new line at exit
|
||||||
|
|
||||||
|
|
|
@ -22,14 +22,29 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import sys
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from colors import *
|
from colors import *
|
||||||
|
|
||||||
def download(path, url):
|
|
||||||
'''
|
class Download(object):
|
||||||
Download files usign wget.
|
|
||||||
Check if file exist or file is broken.
|
def __init__(self, path, url):
|
||||||
'''
|
self.path = path
|
||||||
print("\n{0}[ Download ] -->{1} {2}\n".format(GREEN, ENDC, url.split("/")[-1]))
|
self.url = url
|
||||||
subprocess.call("wget -N --directory-prefix={0} {1}".format(path, url), shell=True)
|
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()
|
||||||
|
|
|
@ -25,23 +25,29 @@ import os
|
||||||
import sys
|
import sys
|
||||||
import urllib2
|
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):
|
class FileSize(object):
|
||||||
'''
|
|
||||||
Returns the size of local files
|
def __init__(self, registry):
|
||||||
'''
|
self.registry = registry
|
||||||
return os.path.getsize(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)
|
||||||
|
|
|
@ -25,13 +25,14 @@ import os
|
||||||
import sys
|
import sys
|
||||||
import getpass
|
import getpass
|
||||||
|
|
||||||
|
from file_size import *
|
||||||
from messages import s_user
|
from messages import s_user
|
||||||
from url_read import url_read
|
from url_read import url_read
|
||||||
from __metadata__ import log_path, lib_path
|
from __metadata__ import log_path, lib_path
|
||||||
from file_size import server_file_size, local_file_size
|
|
||||||
|
|
||||||
from slack.slack_version import slack_ver
|
from slack.slack_version import slack_ver
|
||||||
|
|
||||||
|
|
||||||
def initialization():
|
def initialization():
|
||||||
'''
|
'''
|
||||||
Slpkg initialization, creating directories and SLACKBUILDS.TXT in
|
Slpkg initialization, creating directories and SLACKBUILDS.TXT in
|
||||||
|
@ -76,8 +77,8 @@ def initialization():
|
||||||
log.close()
|
log.close()
|
||||||
print("File ChangeLog.txt created in {0}".format(sbo_log))
|
print("File ChangeLog.txt created in {0}".format(sbo_log))
|
||||||
# We take the size of ChangeLog.txt from the server and locally
|
# We take the size of ChangeLog.txt from the server and locally
|
||||||
server = server_file_size(sbo_url + "ChangeLog.txt")
|
server = FileSize(sbo_url + "ChangeLog.txt").server()
|
||||||
local = local_file_size(sbo_log + "ChangeLog.txt")
|
local = FileSize(sbo_log + "ChangeLog.txt").local()
|
||||||
# If the two files differ in size delete and replaced with new
|
# If the two files differ in size delete and replaced with new
|
||||||
if server != local:
|
if server != local:
|
||||||
os.remove("{0}{1}".format(sbo_lib, "SLACKBUILDS.TXT"))
|
os.remove("{0}{1}".format(sbo_lib, "SLACKBUILDS.TXT"))
|
||||||
|
|
|
@ -21,21 +21,22 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import sys
|
||||||
import getpass
|
import getpass
|
||||||
|
|
||||||
from colors import *
|
from colors import *
|
||||||
from messages import s_user
|
from messages import s_user
|
||||||
|
from blacklist import BlackList
|
||||||
from version import prog_version
|
from version import prog_version
|
||||||
from __metadata__ import path, __version__
|
from __metadata__ import path, __version__
|
||||||
from blacklist import BlackList
|
|
||||||
|
|
||||||
from pkg.manager import *
|
|
||||||
from pkg.build import build_package
|
from pkg.build import build_package
|
||||||
|
from pkg.manager import PackageManager
|
||||||
|
|
||||||
from sbo.check import sbo_check
|
from sbo.check import sbo_check
|
||||||
from sbo.views import sbo_network
|
from sbo.views import sbo_network
|
||||||
|
from sbo.tracking import track_dep
|
||||||
from sbo.slackbuild import sbo_build
|
from sbo.slackbuild import sbo_build
|
||||||
from sbo.dependency import pkg_tracking
|
|
||||||
|
|
||||||
from slack.patches import patches
|
from slack.patches import patches
|
||||||
from slack.install import install
|
from slack.install import install
|
||||||
|
@ -92,7 +93,7 @@ def main():
|
||||||
elif len(args) == 2 and args[0] == "-l":
|
elif len(args) == 2 and args[0] == "-l":
|
||||||
sbo_list = ["all", "sbo", "slack", "noarch"]
|
sbo_list = ["all", "sbo", "slack", "noarch"]
|
||||||
if args[1] in sbo_list:
|
if args[1] in sbo_list:
|
||||||
pkg_list(args[1])
|
PackageManager(None).list(args[1])
|
||||||
else:
|
else:
|
||||||
for opt in usage: print(opt)
|
for opt in usage: print(opt)
|
||||||
elif len(args) == 3 and args[0] == "-c":
|
elif len(args) == 3 and args[0] == "-c":
|
||||||
|
@ -122,7 +123,7 @@ def main():
|
||||||
else:
|
else:
|
||||||
for opt in usage: print(opt)
|
for opt in usage: print(opt)
|
||||||
elif len(args) == 2 and args[0] == "-t":
|
elif len(args) == 2 and args[0] == "-t":
|
||||||
pkg_tracking(args[1])
|
track_dep(args[1])
|
||||||
elif len(args) == 2 and args[0] == "-n":
|
elif len(args) == 2 and args[0] == "-n":
|
||||||
sbo_network(args[1])
|
sbo_network(args[1])
|
||||||
elif len(args) == 2 and args[0] == "-b" and args[1] == "--list":
|
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":
|
elif len(args) > 2 and args[0] == "-b" and args[-1] == "--remove":
|
||||||
BlackList().remove(args[1:-1])
|
BlackList().remove(args[1:-1])
|
||||||
elif len(args) > 1 and args[0] == "-i":
|
elif len(args) > 1 and args[0] == "-i":
|
||||||
pkg_install(args[1:])
|
PackageManager(args[1:]).install()
|
||||||
elif len(args) > 1 and args[0] == "-u":
|
elif len(args) > 1 and args[0] == "-u":
|
||||||
pkg_upgrade(args[1:])
|
PackageManager(args[1:]).upgrade()
|
||||||
elif len(args) > 1 and args[0] == "-o":
|
elif len(args) > 1 and args[0] == "-o":
|
||||||
pkg_reinstall(args[1:])
|
PackageManager(args[1:]).reinstall()
|
||||||
elif len(args) > 1 and args[0] == "-r":
|
elif len(args) > 1 and args[0] == "-r":
|
||||||
pkg_remove(args[1:])
|
PackageManager(args[1:]).remove()
|
||||||
elif len(args) > 1 and args[0] == "-f":
|
elif len(args) > 1 and args[0] == "-f":
|
||||||
pkg_find(args[1:])
|
PackageManager(args[1:]).find()
|
||||||
elif len(args) > 1 and args[0] == "-d":
|
elif len(args) > 1 and args[0] == "-d":
|
||||||
pkg_display(args[1:])
|
PackageManager(args[1:]).display()
|
||||||
else:
|
else:
|
||||||
for opt in usage: print(opt)
|
for opt in usage: print(opt)
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ import sys
|
||||||
from colors import *
|
from colors import *
|
||||||
from __metadata__ import __all__
|
from __metadata__ import __all__
|
||||||
|
|
||||||
|
|
||||||
def pkg_not_found(bol, pkg, message, eol):
|
def pkg_not_found(bol, pkg, message, eol):
|
||||||
'''
|
'''
|
||||||
Print message when package not found
|
Print message when package not found
|
||||||
|
@ -63,7 +64,7 @@ def build_FAILED(sbo_url, prgnam):
|
||||||
|
|
||||||
def template(max):
|
def template(max):
|
||||||
'''
|
'''
|
||||||
Print view template
|
Print template
|
||||||
'''
|
'''
|
||||||
print("+" + "=" * max)
|
print("+" + "=" * max)
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,8 @@ from slpkg.checksum import md5sum
|
||||||
from slpkg.__metadata__ import log_path
|
from slpkg.__metadata__ import log_path
|
||||||
from slpkg.messages import pkg_not_found, template
|
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):
|
def build_package(script, sources, path):
|
||||||
'''
|
'''
|
||||||
|
@ -65,7 +66,7 @@ def build_package(script, sources, path):
|
||||||
for src in sources:
|
for src in sources:
|
||||||
# fix build sources with spaces
|
# fix build sources with spaces
|
||||||
src = src.replace("%20", " ")
|
src = src.replace("%20", " ")
|
||||||
sbo_md5 = sbo_checksum_pkg(prgnam)
|
sbo_md5 = SBoGrep(prgnam).checksum()
|
||||||
md5 = md5sum(src)
|
md5 = md5sum(src)
|
||||||
if sbo_md5 != md5:
|
if sbo_md5 != md5:
|
||||||
template(78)
|
template(78)
|
||||||
|
|
|
@ -27,6 +27,7 @@ from slpkg.blacklist import BlackList
|
||||||
|
|
||||||
from slpkg.slack.splitting import split_package
|
from slpkg.slack.splitting import split_package
|
||||||
|
|
||||||
|
|
||||||
def find_package(find_pkg, directory):
|
def find_package(find_pkg, directory):
|
||||||
'''
|
'''
|
||||||
Find packages
|
Find packages
|
||||||
|
|
|
@ -32,212 +32,232 @@ from slpkg.__metadata__ import pkg_path, sp, log_path
|
||||||
|
|
||||||
from find import find_package
|
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
|
Package manager class for install, upgrade,
|
||||||
|
reinstall, remove, find and display packages.
|
||||||
'''
|
'''
|
||||||
for pkg in binary:
|
def __init__(self, binary):
|
||||||
try:
|
self.binary = binary
|
||||||
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):
|
def install(self):
|
||||||
'''
|
'''
|
||||||
Reinstall Slackware binary packages
|
Install Slackware binary packages
|
||||||
'''
|
'''
|
||||||
for pkg in binary:
|
for pkg in self.binary:
|
||||||
try:
|
try:
|
||||||
print(subprocess.check_output("upgradepkg --reinstall {0}".format(pkg),
|
print(subprocess.check_output("installpkg {0}".format(
|
||||||
shell=True))
|
pkg), shell=True))
|
||||||
print("Completed!\n")
|
print("Completed!\n")
|
||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError:
|
||||||
message = "Can't reinstall"
|
message = "Can't install"
|
||||||
if len(binary) > 1:
|
if len(self.binary) > 1:
|
||||||
bol = eol = str()
|
bol = eol = str()
|
||||||
else:
|
else:
|
||||||
bol = eol = "\n"
|
bol = eol = "\n"
|
||||||
pkg_not_found(bol, pkg, message, eol)
|
pkg_not_found(bol, pkg, message, eol)
|
||||||
|
|
||||||
def pkg_remove(binary):
|
def upgrade(self):
|
||||||
'''
|
'''
|
||||||
Remove Slackware binary packages
|
Upgrade Slackware binary packages
|
||||||
'''
|
'''
|
||||||
dep_path = log_path + "dep/"
|
for pkg in self.binary:
|
||||||
removed, dependencies, \
|
try:
|
||||||
rmv_list, rmv_dependencies = ([] for i in range(4))
|
print(subprocess.check_output("upgradepkg --install-new {0}".format(
|
||||||
print("\nPackages with name matching [ {0}{1}{2} ]\n".format(
|
pkg), shell=True))
|
||||||
CYAN, ", ".join(binary), ENDC))
|
print("Completed!\n")
|
||||||
for pkg in binary:
|
except subprocess.CalledProcessError:
|
||||||
pkgs = find_package(pkg + sp, pkg_path)
|
message = "Can't upgrade"
|
||||||
if pkgs:
|
if len(self.binary) > 1:
|
||||||
print(RED + "[ delete ] --> " + ENDC + "\n ".join(pkgs))
|
bol = eol = str()
|
||||||
removed.append(pkg)
|
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:
|
else:
|
||||||
message = "Can't remove"
|
msg = "package"
|
||||||
pkg_not_found("", pkg, message, "")
|
if len(removed) > 1:
|
||||||
if removed == []:
|
msg = msg + "s"
|
||||||
print # new line at end
|
try:
|
||||||
else:
|
remove_pkg = raw_input("\nAre you sure to remove {0} {1} [Y/n]? ".format(
|
||||||
msg = "package"
|
str(len(removed)), msg))
|
||||||
if len(removed) > 1:
|
except KeyboardInterrupt:
|
||||||
msg = msg + "s"
|
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 <package>'
|
||||||
|
# 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:
|
try:
|
||||||
remove_pkg = raw_input("\nAre you sure to remove {0} {1} [Y/n]? ".format(
|
if "sbo" in pattern:
|
||||||
str(len(removed)), msg))
|
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:
|
except KeyboardInterrupt:
|
||||||
print # new line at exit
|
print # new line at exit
|
||||||
sys.exit()
|
sys.exit()
|
||||||
if remove_pkg == "y" or remove_pkg == "Y":
|
|
||||||
for rmv in removed:
|
|
||||||
# If package build and install with 'slpkg -s sbo <package>'
|
|
||||||
# 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()
|
|
||||||
|
|
|
@ -26,18 +26,19 @@ import sys
|
||||||
|
|
||||||
from slpkg.pkg.find import find_package
|
from slpkg.pkg.find import find_package
|
||||||
from slpkg.pkg.build import build_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.colors import *
|
||||||
from slpkg.init import initialization
|
from slpkg.init import initialization
|
||||||
from slpkg.downloader import download
|
from slpkg.downloader import Download
|
||||||
from slpkg.messages import template, build_FAILED
|
from slpkg.messages import template, build_FAILED
|
||||||
from slpkg.__metadata__ import tmp, pkg_path, build_path, sp
|
from slpkg.__metadata__ import tmp, pkg_path, build_path, sp
|
||||||
|
|
||||||
|
from greps import SBoGrep
|
||||||
from search import sbo_search_pkg
|
from search import sbo_search_pkg
|
||||||
from download import sbo_slackbuild_dwn
|
from download import sbo_slackbuild_dwn
|
||||||
from dependency import sbo_dependencies_pkg
|
from dependency import sbo_dependencies_pkg
|
||||||
from greps import sbo_source_dwn, sbo_version_pkg
|
|
||||||
|
|
||||||
def sbo_check():
|
def sbo_check():
|
||||||
'''
|
'''
|
||||||
|
@ -48,17 +49,27 @@ def sbo_check():
|
||||||
but install the package with maximum build tag if find the
|
but install the package with maximum build tag if find the
|
||||||
some version in /tmp directory.
|
some version in /tmp directory.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
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:
|
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))
|
|
||||||
for pkg in os.listdir(pkg_path):
|
for pkg in os.listdir(pkg_path):
|
||||||
if pkg.endswith("_SBo"):
|
if pkg.endswith("_SBo"):
|
||||||
sbo_list.append(pkg)
|
sbo_list.append(pkg)
|
||||||
|
@ -83,7 +94,7 @@ def sbo_check():
|
||||||
# search packages if exists in the repository
|
# search packages if exists in the repository
|
||||||
# and it gets to avoidable modified packages
|
# and it gets to avoidable modified packages
|
||||||
# from the user with the tag _SBo
|
# 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:
|
if sbo_package > package:
|
||||||
upg_name.append(name)
|
upg_name.append(name)
|
||||||
sys.stdout.write(done)
|
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
|
# In the end lest a check of the packages that are on the list
|
||||||
# are already installed.
|
# are already installed.
|
||||||
for pkg in dependencies_list:
|
for pkg in dependencies_list:
|
||||||
ver = sbo_version_pkg(pkg)
|
ver = SBoGrep(pkg).version()
|
||||||
prgnam = ("{0}-{1}".format(pkg, ver))
|
prgnam = ("{0}-{1}".format(pkg, ver))
|
||||||
pkg_version = ver # if package not installed
|
pkg_version = ver # if package not installed
|
||||||
# take version from repository
|
# take version from repository
|
||||||
|
@ -179,12 +190,12 @@ def sbo_check():
|
||||||
prgnam = ("{0}-{1}".format(name, version))
|
prgnam = ("{0}-{1}".format(name, version))
|
||||||
sbo_url = sbo_search_pkg(name)
|
sbo_url = sbo_search_pkg(name)
|
||||||
sbo_dwn = sbo_slackbuild_dwn(sbo_url)
|
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
|
script = sbo_dwn.split("/")[-1] # keep file from script link
|
||||||
download(build_path, sbo_dwn)
|
Download(build_path, sbo_dwn).start()
|
||||||
sources = []
|
sources = []
|
||||||
for src in src_dwn:
|
for src in src_dwn:
|
||||||
download(build_path, src)
|
Download(build_path, src).start()
|
||||||
sources.append(src.split("/")[-1]) # keep file from source link
|
sources.append(src.split("/")[-1]) # keep file from source link
|
||||||
build_package(script, sources, build_path)
|
build_package(script, sources, build_path)
|
||||||
# Searches the package name and version in /tmp to install.
|
# Searches the package name and version in /tmp to install.
|
||||||
|
@ -206,7 +217,7 @@ def sbo_check():
|
||||||
# Use this list to pick out what
|
# Use this list to pick out what
|
||||||
# packages will be installed
|
# packages will be installed
|
||||||
installed.append(name)
|
installed.append(name)
|
||||||
pkg_upgrade(binary)
|
PackageManager(binary).upgrade()
|
||||||
if len(pkg_for_upg) > 1:
|
if len(pkg_for_upg) > 1:
|
||||||
template(78)
|
template(78)
|
||||||
print("| Total {0} {1} upgraded and {2} {3} installed".format(
|
print("| Total {0} {1} upgraded and {2} {3} installed".format(
|
||||||
|
|
|
@ -24,15 +24,11 @@
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from slpkg.colors import *
|
from slpkg.colors import *
|
||||||
from slpkg.init import initialization
|
|
||||||
from slpkg.blacklist import BlackList
|
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 search import sbo_search_pkg
|
||||||
from greps import sbo_requires_pkg
|
|
||||||
|
|
||||||
dep_results = []
|
dep_results = []
|
||||||
|
|
||||||
|
@ -45,7 +41,7 @@ def sbo_dependencies_pkg(name):
|
||||||
blacklist = BlackList().packages()
|
blacklist = BlackList().packages()
|
||||||
sbo_url = sbo_search_pkg(name)
|
sbo_url = sbo_search_pkg(name)
|
||||||
if sbo_url:
|
if sbo_url:
|
||||||
requires = sbo_requires_pkg(name)
|
requires = SBoGrep(name).requires()
|
||||||
for req in requires:
|
for req in requires:
|
||||||
# avoid to add %README% as dependency and
|
# avoid to add %README% as dependency and
|
||||||
# if require in blacklist
|
# if require in blacklist
|
||||||
|
@ -62,51 +58,3 @@ def sbo_dependencies_pkg(name):
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print # new line at exit
|
print # new line at exit
|
||||||
sys.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")
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
def sbo_slackbuild_dwn(sbo_url):
|
def sbo_slackbuild_dwn(sbo_url):
|
||||||
'''
|
'''
|
||||||
Create download slackbuild tar.gz archive
|
Create download slackbuild tar.gz archive
|
||||||
|
|
|
@ -28,102 +28,105 @@ from slpkg.__metadata__ import arch, lib_path
|
||||||
|
|
||||||
from search import sbo_search_pkg
|
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":
|
def __init__(self, name):
|
||||||
with open(lib_path + "sbo_repo/SLACKBUILDS.TXT", "r") as SLACKBUILDS_TXT:
|
self.name = name
|
||||||
for line in SLACKBUILDS_TXT:
|
arch64 = "x86_64"
|
||||||
if arch == "x86_64":
|
self.line_name = "SLACKBUILD NAME: "
|
||||||
if line.startswith("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()
|
sbo_name = line[17:].strip()
|
||||||
if line.startswith("SLACKBUILD DOWNLOAD_x86_64: "):
|
if line.startswith(self.line_down_64):
|
||||||
if sbo_name == name:
|
if sbo_name == self.name:
|
||||||
if line[28:].strip():
|
if line[28:].strip():
|
||||||
SLACKBUILDS_TXT.close()
|
SLACKBUILDS_TXT.close()
|
||||||
return line[28:].strip()
|
return line[28:].strip()
|
||||||
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 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:
|
|
||||||
for line in SLACKBUILDS_TXT:
|
for line in SLACKBUILDS_TXT:
|
||||||
if arch == "x86_64":
|
if line.startswith(self.line_name):
|
||||||
if line.startswith("SLACKBUILD 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()
|
sbo_name = line[17:].strip()
|
||||||
if line.startswith("SLACKBUILD MD5SUM_x86_64: "):
|
if line.startswith(self.line_md5_64):
|
||||||
if sbo_name == name:
|
if sbo_name == self.name:
|
||||||
if line[26:].strip():
|
if line[26:].strip():
|
||||||
SLACKBUILDS_TXT.close()
|
SLACKBUILDS_TXT.close()
|
||||||
return line[26:].strip()
|
return line[26:].strip()
|
||||||
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:
|
for line in SLACKBUILDS_TXT:
|
||||||
if line.startswith("SLACKBUILD NAME: "):
|
if line.startswith(self.line_name):
|
||||||
sbo_name = line[17:].strip()
|
sbo_name = line[17:].strip()
|
||||||
if line.startswith("SLACKBUILD MD5SUM: "):
|
if line.startswith(self.line_md5):
|
||||||
if sbo_name == name:
|
if sbo_name == self.name:
|
||||||
SLACKBUILDS_TXT.close()
|
SLACKBUILDS_TXT.close()
|
||||||
return line[19:].strip()
|
return line[19:].strip()
|
||||||
|
|
||||||
def sbo_description_pkg(name):
|
def description(self):
|
||||||
'''
|
'''
|
||||||
Grab package verion
|
Grab package verion
|
||||||
'''
|
'''
|
||||||
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:
|
for line in SLACKBUILDS_TXT:
|
||||||
if line.startswith("SLACKBUILD NAME: "):
|
if line.startswith(self.line_name):
|
||||||
sbo_name = line[17:].strip()
|
sbo_name = line[17:].strip()
|
||||||
if line.startswith("SLACKBUILD SHORT DESCRIPTION: "):
|
if line.startswith(self.line_des):
|
||||||
if sbo_name == name:
|
if sbo_name == self.name:
|
||||||
SLACKBUILDS_TXT.close()
|
SLACKBUILDS_TXT.close()
|
||||||
return line[31:].strip()
|
return line[31:].strip()
|
||||||
|
|
|
@ -25,6 +25,7 @@ import os
|
||||||
|
|
||||||
from slpkg.url_read import url_read
|
from slpkg.url_read import url_read
|
||||||
|
|
||||||
|
|
||||||
def read_readme(sbo_url, sbo_readme):
|
def read_readme(sbo_url, sbo_readme):
|
||||||
'''
|
'''
|
||||||
Read SlackBuild README file
|
Read SlackBuild README file
|
||||||
|
|
|
@ -30,6 +30,7 @@ from slpkg.blacklist import BlackList
|
||||||
|
|
||||||
from slpkg.slack.slack_version import slack_ver
|
from slpkg.slack.slack_version import slack_ver
|
||||||
|
|
||||||
|
|
||||||
def sbo_search_pkg(name):
|
def sbo_search_pkg(name):
|
||||||
'''
|
'''
|
||||||
Search for package path from SLACKBUILDS.TXT file
|
Search for package path from SLACKBUILDS.TXT file
|
||||||
|
|
|
@ -26,20 +26,21 @@ import sys
|
||||||
|
|
||||||
from slpkg.colors import *
|
from slpkg.colors import *
|
||||||
from slpkg.init import initialization
|
from slpkg.init import initialization
|
||||||
from slpkg.downloader import download
|
from slpkg.downloader import Download
|
||||||
from slpkg.__metadata__ import (tmp, pkg_path, build_path,
|
from slpkg.__metadata__ import (tmp, pkg_path, build_path,
|
||||||
log_path, lib_path, sp)
|
log_path, lib_path, sp)
|
||||||
from slpkg.messages import (pkg_not_found, pkg_found, template,
|
from slpkg.messages import (pkg_found, template, build_FAILED,
|
||||||
build_FAILED, sbo_packages_view)
|
pkg_not_found, sbo_packages_view)
|
||||||
|
|
||||||
from slpkg.pkg.find import find_package
|
from slpkg.pkg.find import find_package
|
||||||
from slpkg.pkg.build import build_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 search import sbo_search_pkg
|
||||||
from download import sbo_slackbuild_dwn
|
from download import sbo_slackbuild_dwn
|
||||||
from dependency import sbo_dependencies_pkg
|
from dependency import sbo_dependencies_pkg
|
||||||
from greps import sbo_source_dwn, sbo_version_pkg
|
|
||||||
|
|
||||||
def sbo_build(name):
|
def sbo_build(name):
|
||||||
'''
|
'''
|
||||||
|
@ -47,14 +48,21 @@ def sbo_build(name):
|
||||||
with all dependencies if version is greater than
|
with all dependencies if version is greater than
|
||||||
that established.
|
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)
|
done = "{0}Done{1}\n".format(GREY, ENDC)
|
||||||
reading_lists = "{0}Reading package lists ...{1}".format(GREY, ENDC)
|
reading_lists = "{0}Reading package lists ...{1}".format(GREY, ENDC)
|
||||||
sys.stdout.write(reading_lists)
|
sys.stdout.write(reading_lists)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
init = initialization()
|
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)
|
dependencies_list = sbo_dependencies_pkg(name)
|
||||||
try:
|
try:
|
||||||
if dependencies_list is not None or sbo_search_pkg(name) is not None:
|
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
|
# Create two lists one for package version and one
|
||||||
# for package arch.
|
# for package arch.
|
||||||
for pkg in dependencies:
|
for pkg in dependencies:
|
||||||
version = sbo_version_pkg(pkg)
|
version = SBoGrep(pkg).version()
|
||||||
sbo_ver.append(version)
|
sbo_ver.append(version)
|
||||||
src = sbo_source_dwn(pkg)
|
src = SBoGrep(pkg).source()
|
||||||
pkg_arch.append(select_arch(src))
|
pkg_arch.append(select_arch(src))
|
||||||
sbo_pkg = ("{0}-{1}".format(pkg, version))
|
sbo_pkg = ("{0}-{1}".format(pkg, version))
|
||||||
if find_package(sbo_pkg, pkg_path):
|
if find_package(sbo_pkg, pkg_path):
|
||||||
|
@ -138,7 +146,7 @@ def sbo_build(name):
|
||||||
# before proceed to install
|
# before proceed to install
|
||||||
UNST = ["UNSUPPORTED", "UNTESTED"]
|
UNST = ["UNSUPPORTED", "UNTESTED"]
|
||||||
if src in UNST:
|
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 = ""
|
read = ""
|
||||||
# exit if all packages already installed
|
# exit if all packages already installed
|
||||||
elif pkg_sum == len(dependencies):
|
elif pkg_sum == len(dependencies):
|
||||||
|
@ -160,13 +168,13 @@ def sbo_build(name):
|
||||||
else:
|
else:
|
||||||
sbo_url = sbo_search_pkg(pkg)
|
sbo_url = sbo_search_pkg(pkg)
|
||||||
sbo_link = sbo_slackbuild_dwn(sbo_url)
|
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
|
script = sbo_link.split("/")[-1] # get file from script
|
||||||
download(build_path, sbo_link)
|
Download(build_path, sbo_link).start()
|
||||||
sources = []
|
sources = []
|
||||||
for src in src_link:
|
for src in src_link:
|
||||||
sources.append(src.split("/")[-1]) # get file from source
|
sources.append(src.split("/")[-1]) # get file from source
|
||||||
download(build_path, src)
|
Download(build_path, src).start()
|
||||||
build_package(script, sources, build_path)
|
build_package(script, sources, build_path)
|
||||||
# Searches the package name and version in /tmp to install.
|
# Searches the package name and version in /tmp to install.
|
||||||
# If find two or more packages e.g. to build tag
|
# If find two or more packages e.g. to build tag
|
||||||
|
@ -187,7 +195,7 @@ def sbo_build(name):
|
||||||
else:
|
else:
|
||||||
print("{0}[ Installing ] --> {1}{2}".format(
|
print("{0}[ Installing ] --> {1}{2}".format(
|
||||||
GREEN, ENDC, pkg))
|
GREEN, ENDC, pkg))
|
||||||
pkg_upgrade(binary)
|
PackageManager(binary).upgrade()
|
||||||
installs.append(pkg)
|
installs.append(pkg)
|
||||||
versions.append(ver)
|
versions.append(ver)
|
||||||
# Reference list with packages installed
|
# Reference list with packages installed
|
||||||
|
@ -235,8 +243,8 @@ def sbo_build(name):
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
toolbar_width += 6
|
toolbar_width += 6
|
||||||
sbo_matching.append(sbo_name)
|
sbo_matching.append(sbo_name)
|
||||||
sbo_ver.append(sbo_version_pkg(sbo_name))
|
sbo_ver.append(SBoGrep(sbo_name).version())
|
||||||
src = sbo_source_dwn(sbo_name)
|
src = SBoGrep(sbo_name).source()
|
||||||
pkg_arch.append(select_arch(src))
|
pkg_arch.append(select_arch(src))
|
||||||
SLACKBUILDS_TXT.close()
|
SLACKBUILDS_TXT.close()
|
||||||
sys.stdout.write(done)
|
sys.stdout.write(done)
|
||||||
|
@ -270,7 +278,8 @@ def sbo_build(name):
|
||||||
print("{0} installed {1} and {2} uninstalled {3}.{4}\n".format(
|
print("{0} installed {1} and {2} uninstalled {3}.{4}\n".format(
|
||||||
ins, ins_msg, uns, uns_msg, ENDC))
|
ins, ins_msg, uns, uns_msg, ENDC))
|
||||||
else:
|
else:
|
||||||
print("\nNo package was found to match\n")
|
message = "No matching"
|
||||||
|
pkg_not_found("\n", name, message, "\n")
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print # new line at exit
|
print # new line at exit
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
81
slpkg/sbo/tracking.py
Executable file
81
slpkg/sbo/tracking.py
Executable file
|
@ -0,0 +1,81 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# tracking.py file is part of slpkg.
|
||||||
|
|
||||||
|
# Copyright 2014 Dimitris Zlatanidis <d.zlatanidis@gmail.com>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
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")
|
|
@ -27,20 +27,21 @@ import pydoc
|
||||||
|
|
||||||
from slpkg.colors import *
|
from slpkg.colors import *
|
||||||
from slpkg.init import initialization
|
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.__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)
|
template, build_FAILED)
|
||||||
|
|
||||||
from slpkg.pkg.build import build_package
|
from slpkg.pkg.build import build_package
|
||||||
from slpkg.pkg.find import find_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 read import *
|
||||||
from greps import *
|
from greps import SBoGrep
|
||||||
from search import sbo_search_pkg
|
from search import sbo_search_pkg
|
||||||
from download import sbo_slackbuild_dwn
|
from download import sbo_slackbuild_dwn
|
||||||
|
|
||||||
|
|
||||||
def sbo_network(name):
|
def sbo_network(name):
|
||||||
'''
|
'''
|
||||||
View SlackBuild package, read or install them
|
View SlackBuild package, read or install them
|
||||||
|
@ -53,10 +54,10 @@ def sbo_network(name):
|
||||||
init = initialization()
|
init = initialization()
|
||||||
sbo_url = sbo_search_pkg(name)
|
sbo_url = sbo_search_pkg(name)
|
||||||
if sbo_url:
|
if sbo_url:
|
||||||
sbo_desc = sbo_description_pkg(name)[len(name) + 2:-1]
|
sbo_desc = SBoGrep(name).description()[len(name) + 2:-1]
|
||||||
sbo_req = sbo_requires_pkg(name)
|
sbo_req = SBoGrep(name).requires()
|
||||||
sbo_dwn = sbo_slackbuild_dwn(sbo_url)
|
sbo_dwn = sbo_slackbuild_dwn(sbo_url)
|
||||||
source_dwn = sbo_source_dwn(name).split()
|
source_dwn = SBoGrep(name).source().split()
|
||||||
sys.stdout.write(done)
|
sys.stdout.write(done)
|
||||||
view_sbo(name, sbo_url, sbo_desc, sbo_dwn.split("/")[-1], \
|
view_sbo(name, sbo_url, sbo_desc, sbo_dwn.split("/")[-1], \
|
||||||
", ".join([src.split("/")[-1] for src in source_dwn]), \
|
", ".join([src.split("/")[-1] for src in source_dwn]), \
|
||||||
|
@ -75,9 +76,9 @@ def sbo_network(name):
|
||||||
break
|
break
|
||||||
if read == "D" or read == "d":
|
if read == "D" or read == "d":
|
||||||
path = ""
|
path = ""
|
||||||
download(path, sbo_dwn)
|
Download(path, sbo_dwn).start()
|
||||||
for src in source_dwn:
|
for src in source_dwn:
|
||||||
download(path, src)
|
Download(path, src).start()
|
||||||
break
|
break
|
||||||
elif read == "R" or read == "r":
|
elif read == "R" or read == "r":
|
||||||
readme = "README"
|
readme = "README"
|
||||||
|
@ -97,9 +98,9 @@ def sbo_network(name):
|
||||||
sources = []
|
sources = []
|
||||||
os.chdir(build_path)
|
os.chdir(build_path)
|
||||||
script = sbo_dwn.split("/")[-1] # get file from script link
|
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:
|
for src in source_dwn:
|
||||||
download(build_path, src)
|
Download(build_path, src).start()
|
||||||
sources.append(src.split("/")[-1]) # get file from source link
|
sources.append(src.split("/")[-1]) # get file from source link
|
||||||
build_package(script, sources, build_path)
|
build_package(script, sources, build_path)
|
||||||
break
|
break
|
||||||
|
@ -109,15 +110,15 @@ def sbo_network(name):
|
||||||
sys.exit()
|
sys.exit()
|
||||||
if not os.path.exists(build_path):
|
if not os.path.exists(build_path):
|
||||||
os.mkdir(build_path)
|
os.mkdir(build_path)
|
||||||
sbo_version = sbo_version_pkg(name)
|
sbo_version = SBoGrep(name).version()
|
||||||
prgnam = ("{0}-{1}".format(name, sbo_version))
|
prgnam = ("{0}-{1}".format(name, sbo_version))
|
||||||
if find_package(prgnam + sp, pkg_path) == []:
|
if find_package(prgnam + sp, pkg_path) == []:
|
||||||
sources = []
|
sources = []
|
||||||
os.chdir(build_path)
|
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
|
script = sbo_dwn.split("/")[-1] # get file from script link
|
||||||
for src in source_dwn:
|
for src in source_dwn:
|
||||||
download(build_path, src)
|
Download(build_path, src).start()
|
||||||
sources.append(src.split("/")[-1]) # get file from source link
|
sources.append(src.split("/")[-1]) # get file from source link
|
||||||
build_package(script, sources, build_path)
|
build_package(script, sources, build_path)
|
||||||
# Searches the package name and version in /tmp to install.
|
# Searches the package name and version in /tmp to install.
|
||||||
|
@ -133,7 +134,7 @@ def sbo_network(name):
|
||||||
build_FAILED(sbo_url, prgnam)
|
build_FAILED(sbo_url, prgnam)
|
||||||
sys.exit()
|
sys.exit()
|
||||||
print("{0}[ Installing ] --> {1} {2}".format(GREEN, ENDC, name))
|
print("{0}[ Installing ] --> {1} {2}".format(GREEN, ENDC, name))
|
||||||
pkg_upgrade(binary)
|
PackageManager(binary).upgrade()
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
template(78)
|
template(78)
|
||||||
|
@ -143,6 +144,6 @@ def sbo_network(name):
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
sys.stdout.write (done)
|
sys.stdout.write(done)
|
||||||
message = "From slackbuilds.org"
|
message = "Can't view"
|
||||||
pkg_not_found("\n", name, message, "\n")
|
pkg_not_found("\n", name, message, "\n")
|
||||||
|
|
|
@ -27,29 +27,37 @@ import time
|
||||||
|
|
||||||
from slpkg.colors import *
|
from slpkg.colors import *
|
||||||
from slpkg.url_read import url_read
|
from slpkg.url_read import url_read
|
||||||
from slpkg.downloader import download
|
from slpkg.downloader import Download
|
||||||
from slpkg.blacklist import BlackList
|
from slpkg.blacklist import BlackList
|
||||||
from slpkg.messages import pkg_not_found, template
|
from slpkg.messages import pkg_not_found, template
|
||||||
from slpkg.__metadata__ import slpkg_tmp, pkg_path, slack_archs
|
from slpkg.__metadata__ import slpkg_tmp, pkg_path, slack_archs
|
||||||
|
|
||||||
from slpkg.pkg.find import find_package
|
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 mirrors import mirrors
|
||||||
from splitting import split_package
|
from splitting import split_package
|
||||||
|
|
||||||
|
|
||||||
def install(slack_pkg, version):
|
def install(slack_pkg, version):
|
||||||
'''
|
'''
|
||||||
Install packages from official Slackware distribution
|
Install packages from official Slackware distribution
|
||||||
'''
|
'''
|
||||||
try:
|
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)
|
done = "{0}Done{1}\n".format(GREY, ENDC)
|
||||||
reading_lists = "{0}Reading package lists ...{1}".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()
|
arch = COLOR = str()
|
||||||
|
pkg_sum = uni_sum = upg_sum = int()
|
||||||
# create directories if not exists
|
# create directories if not exists
|
||||||
tmp_path = slpkg_tmp + "packages/"
|
tmp_path = slpkg_tmp + "packages/"
|
||||||
if not os.path.exists(slpkg_tmp):
|
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]? ")
|
read = raw_input("\nWould you like to install [Y/n]? ")
|
||||||
if read == "Y" or read == "y":
|
if read == "Y" or read == "y":
|
||||||
for dwn in dwn_list:
|
for dwn in dwn_list:
|
||||||
download(tmp_path, dwn)
|
Download(tmp_path, dwn).start()
|
||||||
download(tmp_path, dwn + ".asc")
|
Download(tmp_path, dwn + ".asc").start()
|
||||||
for install, name in zip(install_all, names):
|
for install, name in zip(install_all, names):
|
||||||
|
package = ((tmp_path + install).split())
|
||||||
if os.path.isfile(pkg_path + install[:-4]):
|
if os.path.isfile(pkg_path + install[:-4]):
|
||||||
print("{0}[ reinstalling ] --> {1}{2}".format(
|
print("{0}[ reinstalling ] --> {1}{2}".format(
|
||||||
GREEN, ENDC, install))
|
GREEN, ENDC, install))
|
||||||
pkg_reinstall((tmp_path + install).split())
|
PackageManager(package).reinstall()
|
||||||
elif find_package(name + "-", pkg_path):
|
elif find_package(name + "-", pkg_path):
|
||||||
print("{0}[ upgrading ] --> {1}{2}".format(
|
print("{0}[ upgrading ] --> {1}{2}".format(
|
||||||
GREEN, ENDC, install))
|
GREEN, ENDC, install))
|
||||||
pkg_upgrade((tmp_path + install).split())
|
PackageManager(package).upgrade()
|
||||||
else:
|
else:
|
||||||
print("{0}[ installing ] --> {1}{2}".format(
|
print("{0}[ installing ] --> {1}{2}".format(
|
||||||
GREEN, ENDC, install))
|
GREEN, ENDC, install))
|
||||||
pkg_upgrade((tmp_path + install).split())
|
PackageManager(package).upgrade()
|
||||||
read = raw_input("Removal downloaded packages [Y/n]? ")
|
read = raw_input("Removal downloaded packages [Y/n]? ")
|
||||||
if read == "Y" or read == "y":
|
if read == "Y" or read == "y":
|
||||||
for remove in install_all:
|
for remove in install_all:
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
from slpkg.__metadata__ import arch
|
from slpkg.__metadata__ import arch
|
||||||
from slack_version import slack_ver
|
from slack_version import slack_ver
|
||||||
|
|
||||||
|
|
||||||
def mirrors(name, location, version):
|
def mirrors(name, location, version):
|
||||||
'''
|
'''
|
||||||
Select Slackware official mirror packages
|
Select Slackware official mirror packages
|
||||||
|
|
|
@ -29,26 +29,35 @@ import subprocess
|
||||||
from slpkg.colors import *
|
from slpkg.colors import *
|
||||||
from slpkg.url_read import url_read
|
from slpkg.url_read import url_read
|
||||||
from slpkg.messages import template
|
from slpkg.messages import template
|
||||||
from slpkg.downloader import download
|
from slpkg.downloader import Download
|
||||||
from slpkg.blacklist import BlackList
|
from slpkg.blacklist import BlackList
|
||||||
from slpkg.__metadata__ import pkg_path, slpkg_tmp
|
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 mirrors import mirrors
|
||||||
from splitting import split_package
|
from splitting import split_package
|
||||||
from slack_version import slack_ver
|
from slack_version import slack_ver
|
||||||
|
|
||||||
|
|
||||||
def patches(version):
|
def patches(version):
|
||||||
'''
|
'''
|
||||||
Install new patches from official Slackware mirrors
|
Install new patches from official Slackware mirrors
|
||||||
'''
|
'''
|
||||||
try:
|
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)
|
done = "{0}Done{1}\n".format(GREY, ENDC)
|
||||||
reading_lists = "{0}Reading package lists ...{1}".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/"
|
patch_path = slpkg_tmp + "patches/"
|
||||||
if not os.path.exists(slpkg_tmp):
|
if not os.path.exists(slpkg_tmp):
|
||||||
os.mkdir(slpkg_tmp)
|
os.mkdir(slpkg_tmp)
|
||||||
|
@ -156,11 +165,11 @@ def patches(version):
|
||||||
read = raw_input("\nWould you like to upgrade [Y/n]? ")
|
read = raw_input("\nWould you like to upgrade [Y/n]? ")
|
||||||
if read == "Y" or read == "y":
|
if read == "Y" or read == "y":
|
||||||
for dwn in dwn_patches:
|
for dwn in dwn_patches:
|
||||||
download(patch_path, dwn)
|
Download(patch_path, dwn).start()
|
||||||
download(patch_path, dwn + ".asc")
|
Download(patch_path, dwn + ".asc").start()
|
||||||
for pkg in upgrade_all:
|
for pkg in upgrade_all:
|
||||||
print("{0}[ upgrading ] --> {1}{2}".format(GREEN, ENDC, pkg[:-4]))
|
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:
|
for kernel in upgrade_all:
|
||||||
if "kernel" in kernel:
|
if "kernel" in kernel:
|
||||||
print("The kernel has been upgraded, reinstall `lilo` ...")
|
print("The kernel has been upgraded, reinstall `lilo` ...")
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
||||||
def slack_ver():
|
def slack_ver():
|
||||||
'''
|
'''
|
||||||
Open file and read Slackware version
|
Open file and read Slackware version
|
||||||
|
|
|
@ -25,6 +25,7 @@ from slpkg.__metadata__ import slack_archs
|
||||||
|
|
||||||
from slack_version import slack_ver
|
from slack_version import slack_ver
|
||||||
|
|
||||||
|
|
||||||
def split_package(package):
|
def split_package(package):
|
||||||
'''
|
'''
|
||||||
Split package in name, version
|
Split package in name, version
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
import sys
|
import sys
|
||||||
import urllib2
|
import urllib2
|
||||||
|
|
||||||
|
|
||||||
def url_read(link):
|
def url_read(link):
|
||||||
'''
|
'''
|
||||||
Open url and read
|
Open url and read
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
from __metadata__ import __version__, __license__, __email__
|
from __metadata__ import __version__, __license__, __email__
|
||||||
|
|
||||||
|
|
||||||
def prog_version():
|
def prog_version():
|
||||||
'''
|
'''
|
||||||
Print version, license and email
|
Print version, license and email
|
||||||
|
|
Loading…
Add table
Reference in a new issue