From e4827d4ec37a55c6968d5f412525c9ced82534de Mon Sep 17 00:00:00 2001 From: dslackw Date: Tue, 13 May 2014 03:15:53 +0300 Subject: [PATCH] updated for version 1.1.0 --- CHANGELOG | 6 ++++++ PKG-INFO | 2 +- README.rst | 11 ++++++++++ bin/slpkg | 59 ++++++++++++++++++++++++++++++++++++++++++++++------- man/slpkg.8 | 28 ++++++++++++++++++------- setup.py | 2 +- 6 files changed, 92 insertions(+), 16 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index e1fa9646..27285058 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +12-05-2013 +Version 1.1.0 + +[Feature] - Added search from SBo and print link for download + + 12-05-2014 Version 1.0.9 diff --git a/PKG-INFO b/PKG-INFO index a75a166c..51349b69 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: slpkg -Version: 1.0.9 +Version: 1.1.0 Author: dslackw Author-email: d zlatanidis at gmail com Maintainer: dslackw diff --git a/README.rst b/README.rst index 58a99423..eca5af2d 100644 --- a/README.rst +++ b/README.rst @@ -60,6 +60,7 @@ Command Line Tool Usage auto build package -l all, sbo [all, sbo ...], --list all, sbo [all, sbo ...] list of installed packages + -n , --network find from SBo repositority -i , --install install binary package -u , --upgrade install-upgrade package with new -a , --reinstall reinstall the same package @@ -72,6 +73,16 @@ Slpkg Examples -------------- +Find from www.slackbuilds.org the slackbuild by name: + +.. code-block:: bash + + $ slpkg -n termcolor + Searching for `termcolor` Please wait ... + + The `termcolor` found in --> http://slackbuilds.org/repository/14.1/python/termcolor/ + + Auto build tool to build package: .. code-block:: bash diff --git a/bin/slpkg b/bin/slpkg index 321fe522..fb2c86ed 100755 --- a/bin/slpkg +++ b/bin/slpkg @@ -3,18 +3,27 @@ import os +import re import sys +import urllib2 import argparse import subprocess __author__ = "dslackw" -__version__ = "1.0.9" +__version__ = "1.1.0" __license__ = "GNU General Public License v3 (GPLv3)" ''' path file record ''' -__packages__ = "/var/log/packages/" +packages = "/var/log/packages/" +''' SlackBuilds Repository ''' +sbo_url = "http://slackbuilds.org/repository/14.1/" +repository = ("academic", "business", "games", "ham", + "misc", "office", "ruby", "accessibility", + "desktop", "gis", "haskell", "multimedia", + "perl", "system", "audio", "development", + "graphics", "lbraries", "network", "python") ''' print out colors class ''' class colors: @@ -22,17 +31,37 @@ class colors: GREEN = "\e[32m" YELLOW = "\e[93m" CYAN = "\e[36m" + DEF_TEXT = "\e[0m" ENDC = "\e[39m" ''' this fuction return the path of the package ''' def find_package(find_pkg): - find_pkg = subprocess.check_output(["find " + __packages__ + " -name '{}*' 2> /dev/null".format(find_pkg)],shell=True) + find_pkg = subprocess.check_output(["find " + packages + " -name '{}*' 2> /dev/null".format(find_pkg)],shell=True) return find_pkg +''' search and found slackbuilds links from http://slackbuilds.org/ ''' +def sbo_search_pkg(link): + i = 0 + os.system("echo -e 'Searching for {} Please wait ...'".format("`" + link + "`")) + link = ">" + link + "<" + for i in repository: + sbo_url_sub = sbo_url + i + "/" + f = urllib2.urlopen(sbo_url_sub) + read_page = f.read() + find_sbo = re.findall(link, read_page) + if link in find_sbo: + link = sbo_url_sub + link + "/" + rmv = "><" + for i in rmv: + link = link.replace(i, "") + + return link + + ''' main function ''' def main(): description = "Utility to help package management in Slackware" @@ -43,6 +72,8 @@ def main(): type=str, nargs=2, metavar=('script','source')) parser.add_argument("-l", "--list", help="list of installed packages", nargs="+", choices="all sbo".split(), metavar=('all, sbo')) + parser.add_argument("-n", "--network", help="find from SBo repositority", + type=str, metavar=('')) parser.add_argument("-i", "--install", help="install binary package", type=str, metavar=('')) parser.add_argument("-u", "--upgrade", help="install-upgrade package with new", @@ -82,10 +113,23 @@ def main(): ''' view list of installed packages ''' if args.list: if "all" in args.list: - os.system("ls " + __packages__ + "* | more") + os.system("ls " + packages + "* | more") if "sbo" in args.list: - os.system("ls " + __packages__ + "* | grep 'SBo' | more") + os.system("ls " + packages + "* | grep 'SBo' | more") + + if args.network: + find_sbo_url = sbo_search_pkg(args.network) + if find_sbo_url == None: + print + os.system("echo -e '{}The {} not found{}'".format(colors.RED, + colors.CYAN + '`' + args.network + '`' + colors.RED, colors.ENDC)) + print + else: + print + os.system("echo -e '{}The {} found in --> {}'".format(colors.GREEN, + colors.CYAN + '`' + args.network + '`' + colors.GREEN, colors.ENDC + find_sbo_url)) + print ''' install binary package ''' if args.install: @@ -102,7 +146,8 @@ def main(): ''' uninstall package ''' if args.remove: if find_package(args.remove) == "": - os.system("echo -e '{}The package is not found{}'".format(colors.RED, colors.ENDC)) + os.system("echo -e '{}The package {} is not found{}'".format(colors.RED, + colors.CYAN + '`' + args.remove + '`' + colors.RED, colors.ENDC)) else: os.system("echo -e '{}!!! WARNING !!!{}'".format(colors.YELLOW, colors.ENDC)) remove_pkg = raw_input("Are you sure to remove this package [y/n] ") @@ -127,7 +172,7 @@ def main(): os.system("cat {}".format(find_package(args.display))) ''' fix null arguments ''' - if not any([args.verbose, args.slackbuild, args.install, args.upgrade, args.reinstall, + if not any([args.verbose, args.slackbuild, args.network, args.install, args.upgrade, args.reinstall, args.remove, args.list, args.find, args.display]): os.system("slpkg -h") diff --git a/man/slpkg.8 b/man/slpkg.8 index df32a035..0150798e 100644 --- a/man/slpkg.8 +++ b/man/slpkg.8 @@ -15,7 +15,8 @@ .SH NAME slpkg - Utility to help package management in Slackware .SH SYNOPSIS - \fBslpkg\fP [\fIoptions\fP] \fB[-h]\fP \fB[-v]\fP \fB[-u UPGRADE]\fP \fB[-a REINSTALL]\fP \fB[-r REMOVE]\fP \fB[-l]\fP \fB[-f FIND]\fP \fB[-d DISPLAY]\fP <\fIcommand-arguments\fP>... + \fBslpkg\fP \fB[-h]\fP \fB[-v]\fP \fB[-s script source]\fP \fB[-l all, sbo [all, sbo ...]]\fP +\fB[-n]\fP \fB[-i]\fP \fB[-u]\fP \fB[-a]\fP \fB[-r]\fP \fB[-f]\fP \fB[-d]\fP .SH DESCRIPTION \fBslpkg\fP is a terminal tool written in Python that allows the build, install, upgrade, remove, find and view Slackware packages contents. @@ -28,6 +29,7 @@ It's a quick and easy way to manage your packages in slackware to a command. \fB auto build package\fP \fB-l all, sbo [all, sbo ...], --list all, sbo [all, sbo ...]\fP \fB list of installed packages\fP + \fB-n , --network find from SBo repositority\fP \fB-i , --install install binary package\fP \fB-u , --upgrade install-upgrade package with new\fP \fB-a , --reinstall reinstall the same package\fP @@ -51,8 +53,14 @@ Support .tar.gz and .tar.bz2 slackbuilds archives. .PP Two display options list, one for all packages and another only for packages SBo. +.SS -n , --network find from SBo repositority +\fBslpkg\fP \fB-n\fP <\fIname\fP> +.PP +With this method you can find the SBo script that interests you through +the network. (www.slackbuilds.org) .SS -i , --install install binary package \fBslpkg\fP \fB-i\fP <\fIpackage.tgz or .txz\fP> +.PP Installs single binary packages designed for use with the Slackware Linux distribution into your system. .SS -u , --upgrade install-upgrade package with new @@ -92,16 +100,22 @@ command. For example: \fBslpkg \-\-help\fP - display help for slpkg .SH EXAMPLES -Etc. download from www.slackbuilds.org the package termcolor -http://slackbuilds.org/repository/14.1/python/termcolor/ -Two files termcolor.tar.gz and termcolor-1.1.0.tar.gz -must be in the same directory. +$ \fBslpkg -n termcolor\fP + Searching for termcolor Please wait ... + + The `termcolor` found in --> http://slackbuilds.org/repository/14.1/python/termcolor/ + + + Etc. download from www.slackbuilds.org the package termcolor + http://slackbuilds.org/repository/14.1/python/termcolor/ + + Two files termcolor.tar.gz and termcolor-1.1.0.tar.gz + must be in the same directory. $ \fBslpkg -s termcolor.tar.gz termcolor-1.1.0.tar.gz\fP -Slackware package /tmp/termcolor-1.1.0-x86_64-1_SBo.tgz created. - + Slackware package /tmp/termcolor-1.1.0-x86_64-1_SBo.tgz created. $ \fBslpkg -u termcolor-1.1.0-x86_64-1_SBo.tgz\fP diff --git a/setup.py b/setup.py index 7ad56014..6650c939 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ from distutils.core import setup setup( name = 'slpkg', - version = "1.0.9", + version = "1.1.0", description = "Python tool to manage Slackware packages", keywords = ["slackware", "slpkg", "upgrade", "install", "remove", "view", "slackpkg", "tool"],