From: Mikko Husari <husku@husku.net>
To: gentoo-user@lists.gentoo.org
Subject: [gentoo-user] Simplistic bash-script to manage package.use
Date: Sun, 13 Jul 2008 00:19:56 +0300 [thread overview]
Message-ID: <48791FFC.5040901@husku.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 658 bytes --]
greetings earthlings,
i did not found (nor did i look for long enough) any tools/scripts to
easily manage package.use file, so i did my own. now i started to think
that, if there really is not any, my creation would be sufficient
(although possibly buggy) for most users who wish to have "easy" control
over package.use.
yes, i know this is not the best place to "announce" but, this is not an
real announcement, this is an query for an superior solution which would
show my creation to be useless/dublicate/stupid. (if mine is
useless/stupid it would be nice, so i would not have to maintain it and
i also could use some real software).
-- husku
[-- Attachment #2: guse.sh --]
[-- Type: text/plain, Size: 3126 bytes --]
#!/bin/bash
# This program 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/>.
UF="package.use"
if [[ -z $1 ]]; then
echo "guse.sh pkgspec [flag modifiers]"
echo " - list use-flags for package by leaving the modifiers out"
echo " - this little script fondles your package.use"
echo " - by using double-dash (--) you are doomed back to default"
echo "example:"
echo " guse.sh kopete qq privacy -yahoo -msn jabber --highlight"
echo
exit
fi
[[ -n $1 ]] && ROWS=`grep $1 $UF` && HITS=`echo "${ROWS}"|wc -l`
[[ $HITS -gt 1 ]] && echo "Duplicates" && echo "$ROWS" && exit
# search from portage
[[ $HITS -lt 1 ]] && OLD=`emerge --nospinner -s ${1}|grep \*|awk '{print $2}'` \
&& HITS=`echo "${OLD}"|wc -l` && NEWATOM="yes"
if [[ $HITS -gt 1 ]]; then
echo "All Candidates:"
echo "${OLD}"
exit
elif [[ $HITS -lt 1 ]]; then
echo Package\ atom\ not\ found
exit
else
if [[ -n $NEWATOM ]]; then
if [[ -n $2 ]]; then
for a; do
NEW="$NEW $a"
done
echo new: ${NEW:0}
echo ${NEW:0} >> $UF
else
equery uses $1
fi
else
OLD="${ROWS}";
OLD_sed=`echo "${OLD}"|sed 's/\ /\\\ /g'`
OLD_sed=`echo "${OLD_sed}"|sed 's/\\//\\\\\//g'`
ORIG_sed=$OLD_sed
if [[ -z $2 ]]; then
equery uses $1
echo Your\ custom\ Set:
echo $OLD
exit
fi
for a; do
loops=$(( $loops+1 ));
if [[ loops -gt 1 ]]; then
if [[ -n $a ]]; then
[[ `equery uses $1|grep ${a:1}|wc -l` -lt 1 ]] && echo Typo\:\ $a\ Does\ not\ exists && exit
if [[ ${a:0:1} == "-" && $OLD =~ " "${a:1} ]]; then
if [[ ${a:0:2} == "--" ]]; then
# remove
echo remove negative: ${a:1}
OLD_sed=`echo "${OLD_sed}"|sed 's/ '"${a:1}"'/ /g'`
else
# disable
echo disable: ${a:1}
OLD_sed=`echo "${OLD_sed}"|sed 's/'${a:1}'/'${a}'/g'`
fi
elif [[ ${a:0:1} != "-" && $OLD =~ " -"${a} ]]; then
# enable
echo enable: $a
OLD_sed=`echo "${OLD_sed}"|sed 's/-'${a}'/'${a}'/g'`
elif [[ $OLD =~ " ${a}" ]]; then
echo keeping: $a
else
if [[ ${a:0:2} = "--" ]]; then
# remove
echo remove positive: ${a:2}
OLD_sed=`echo "${OLD_sed}"|sed 's/ '${a:2}'/ /'`
else
OLD_sed="${OLD_sed}\\ $a"
echo add: $a
fi
fi
elif [[ -z $a ]]; then
echo This is what you have:
echo $OLD
exit
else
NEW="$OLD_sed\\ $a"
echo lisataan: $NEW
OLD_sed=$NEW
fi
else
echo ATOM: `echo $OLD|awk '{print $1}'`
fi
done
[[ "$OLD_sed" != "$ORIG_sed" ]] && sed -i.bak 's/'"${ORIG_sed}"'/'"${OLD_sed}"'/' $UF
fi
fi
next reply other threads:[~2008-07-12 21:20 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-12 21:19 Mikko Husari [this message]
2008-07-12 21:42 ` [gentoo-user] Simplistic bash-script to manage package.use Gentoo User
2008-07-12 22:01 ` Mikko Husari
2008-07-13 10:38 ` Gentoo User
2008-07-13 10:48 ` Mikko Husari
2008-07-13 15:19 ` Alan McKinnon
2008-07-13 16:07 ` Neil Bothwick
2008-07-14 0:19 ` Gentoo User
2008-07-14 0:21 ` Neil Bothwick
2008-07-13 11:29 ` Arttu V.
2008-07-13 12:51 ` Mikko Husari
2008-07-13 11:32 ` Neil Bothwick
2008-07-13 12:50 ` Mikko Husari
2008-07-13 13:07 ` Neil Bothwick
2008-07-13 13:42 ` Mikko Husari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48791FFC.5040901@husku.net \
--to=husku@husku.net \
--cc=gentoo-user@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox