diff options
Diffstat (limited to 'tags/0.5/utils')
-rwxr-xr-x | tags/0.5/utils/add-gpl | 33 | ||||
-rwxr-xr-x | tags/0.5/utils/add-slack-required | 63 | ||||
-rwxr-xr-x | tags/0.5/utils/convert-template-scheme | 35 | ||||
-rwxr-xr-x | tags/0.5/utils/merge-template | 37 | ||||
-rwxr-xr-x | tags/0.5/utils/metapkg | 72 | ||||
-rwxr-xr-x | tags/0.5/utils/searchpkg | 36 |
6 files changed, 276 insertions, 0 deletions
diff --git a/tags/0.5/utils/add-gpl b/tags/0.5/utils/add-gpl new file mode 100755 index 0000000..0a261e2 --- /dev/null +++ b/tags/0.5/utils/add-gpl @@ -0,0 +1,33 @@ +#!/bin/bash +# +# add-gpl 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 2 of the License, or any later version. +# +# add-gpl 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, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307, USA +# +# This script should be used to add a license in scripts. +# + +script="SlackBuild" +#script="build" + +for file in `find -name "*.$script"`; do + + echo Changing $file... + package="`basename $file .$script`" + slackbuild="`basename $file`" + + string="\#\!\/bin\/bash\n\#\n# $slackbuild is free software; you can redistribute it and\/or modify it under the\n# terms of the GNU General Public License as published by the Free Software\n# Foundation; either version 2 of the License, or any later version.\n#\n# $slackbuild is distributed in the hope that it will be useful, but WITHOUT ANY\n# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n# A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License along with\n# this program; if not, write to the Free Software Foundation, Inc., 59 Temple\n# Place - Suite 330, Boston, MA 02111-1307, USA" + + sed -e "s/\#\!\/bin\/bash/$string/" $file > $file.new + cat $file.new > $file + rm $file.new + +done diff --git a/tags/0.5/utils/add-slack-required b/tags/0.5/utils/add-slack-required new file mode 100755 index 0000000..67804d0 --- /dev/null +++ b/tags/0.5/utils/add-slack-required @@ -0,0 +1,63 @@ +#!/bin/bash +# +# add-slack-required 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 2 of the License, or any later version. +# +# add-slack-required 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, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307, USA +# +# add slack-required files in an existing repository +# by rhatto at riseup.net +# + +COMMON="/usr/libexec/simplepkg/common.sh" +BASENAME="`basename $0`" + +if [ -z "$2" ]; then + echo "usage: $BASENAME /path/to/slackbuilds /path/to/packages" + exit 1 +elif [ ! -d "$1" ]; then + echo "$BASENAME: folder not found: $1" + exit 1 +elif [ ! -d "$2" ]; then + echo "$BASENAME: folder not found: $2" + exit 1 +fi + +slackbuild="$1" +repository="$2" + +# we need the function package_name +if [ -f "$COMMON" ]; then + source $COMMON +else + echo "error: file $COMMON found, check your $BASENAME installation" + exit 1 +fi + +function search_and_copy_slackbuild { + + if [ -f "$1" ]; then + echo Copying `basename $1` to `dirname $package`/$pack.slack-required + cp $1 `dirname $package`/$pack.slack-required + svn add `dirname $package`/$pack.slack-required 2> /dev/null + fi + +} + +for package in `find $repository/ -name *tgz`; do + pack="`package_name $package`" + for build_script in `find $slackbuild/ -name $pack.SlackBuild`; do + + search_and_copy_slackbuild `dirname $build_script`/slack-required + search_and_copy_slackbuild `dirname $build_script`/$pack.slack-required + + done +done + diff --git a/tags/0.5/utils/convert-template-scheme b/tags/0.5/utils/convert-template-scheme new file mode 100755 index 0000000..de7e507 --- /dev/null +++ b/tags/0.5/utils/convert-template-scheme @@ -0,0 +1,35 @@ +#!/bin/bash +# +# This software 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 2 of the License, or any later version. +# +# This software 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, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307, USA +# +# script for converting simplepkg templates +# to the 0.5 own-folder format +# + +cwd="/etc/simplepkg" +cd $cwd + +for file in `ls *.template`; do + cd $cwd + template="`echo $file | cut -d . -f 1`" + mkdir templates/$template + mv $template.d templates/$template/ + mv $template.s templates/$templates/ + mv $template.template templates/$template/ + cd templates/$template/$template.s + # optional step + # if [ "$template" != "vserver" ]; then + # ln -sf ../../../defaults/templatesvserver/vserver.s/vserver.sh + # fi +done + diff --git a/tags/0.5/utils/merge-template b/tags/0.5/utils/merge-template new file mode 100755 index 0000000..3df5f7a --- /dev/null +++ b/tags/0.5/utils/merge-template @@ -0,0 +1,37 @@ +#!/bin/bash +# +# This software 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 2 of the License, or any later version. +# +# This software 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, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307, USA +# +# tip: to assemble a template from all slack tagfiles: +# +# for diskset in a ap d e f k l n t tcl x xap y; do +# lynx -dump http://slack.sarava.org/slackware/slackware-10.2/slackware/$diskset/tagfile >> slack.template +# done +# + +if [ -z "$2" ]; then + echo "usage: `basename $0` <template> <base-template>" + exit 1 +elif [ ! -f "$1" ] || [ ! -f "$2" ]; then + echo error: $1 ou $2 not found + exit 1 +fi + +cp $2 $1.new + +cat $1 | while read line; do + pack="`echo $line | cut -d : -f 1`" + if ! grep -qe "^$pack:" $2; then + echo $line >> $1.new + fi +done diff --git a/tags/0.5/utils/metapkg b/tags/0.5/utils/metapkg new file mode 100755 index 0000000..e3db602 --- /dev/null +++ b/tags/0.5/utils/metapkg @@ -0,0 +1,72 @@ +#!/bin/bash +# +# metapkg v0.1: install or remove a pkgtool metapackage +# +# feedback: rhatto at riseup.net | GPL +# +# Metapkg 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 2 of the License, or any later version. +# +# Metapkg 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, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307, USA +# +# A metapackage is a file containing a list of packages. +# This script just installs all the packages in a metapackage. +# Remeber that mkjail template == metapkg metapackage. +# + +# +# TODO +# +# In the mean term, metapkg will not be developed, but the code will rest +# until someone need it. Some ideas to think for the future of metapkg would +# be a better integration with simplepkg structure, like: +# +# - By default metapkg searches by a slack-required in the package/slackbuilds repos +# - With -f, metapkg uses a local file (template, slack-required or tagfile) +# + +COMMON="/usr/libexec/simplepkg/common.sh" +BASENAME="`basename $0`" +ROOT="/" + +function usage { + echo "usage: [ROOT=/otherroot] $BASENAME --option [metapackage]" + echo "options: --install, --remove" + exit 1 +} + +if [ -f "$COMMON" ]; then + source $COMMON +else + echo "error: file $COMMON found, check your `basename $0` installation" + exit 1 +fi + +if [ -z "$2" ]; then + usage +else + eval_config $BASENAME -u +fi + +if [ ! -f "$BASE_CONF/$2.template" ]; then + echo error: template $2 not found + exit 1 +else + TEMPLATE="$BASE_CONF/$2.template" + unset server +fi + +if [ "$1" == "--install" ] || [ "$1" == "install" ]; then + install_packages +elif [ "$1" == "--remove" ] || [ "$1" == "remove" ]; then + remove_packages +else + usage +fi diff --git a/tags/0.5/utils/searchpkg b/tags/0.5/utils/searchpkg new file mode 100755 index 0000000..cc5a827 --- /dev/null +++ b/tags/0.5/utils/searchpkg @@ -0,0 +1,36 @@ +#!/bin/bash +# +# This software 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 2 of the License, or any later version. +# +# This software 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, write to the Free Software Foundation, Inc., 59 Temple +# Place - Suite 330, Boston, MA 02111-1307, USA +# +# searchpkg: search packages inside a local slackware-like repository +# this is part of simplepkg +# feedback: rhatto at riseup.net | gpl +# + +# find . -type f -exec ls -l {} \; > FILELIST.TXT + +if [[ $# != 1 && $# != 2 ]]; then + echo "usage: $0 [-1] <repository> [package-name]" + echo "package-name can be either the full package file name, just its prefix or so" + echo "option -1 show just the first matching package" + exit 1 +fi + +FILELIST="$1/FILELIST.TXT" +PACKAGE_FIELD="8" + +if [ -z "$2" ]; then + grep .tgz $FILELIST +else + grep -e "$2" $FILELIST | grep tgz | awk "{ print \$$PACKAGE_FIELD }" +fi |