View previous topic :: View next topic |
Author |
Message |
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30915 Location: here
|
Posted: Wed Oct 27, 2004 2:16 pm Post subject: |
|
|
Raffo wrote: | @fedeli: mah, per quello che volevo fare io lo script di xchris nn va proprio bene, diciamo che punta ad un diverso obiettivo. |
Scusa pensavo facesse la stessa cosa, avevo capito questo io _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
Raffo Veteran
Joined: 23 Apr 2004 Posts: 1019 Location: Berlin
|
Posted: Wed Oct 27, 2004 2:24 pm Post subject: |
|
|
@xchris: meglio il tuo per il gechit fidati ora lo provo per bene e vedo cosa c'è che nn mi piace, che nn va o dovrebbe essere cambiato...
@fedeli: sostanzialmente è molto simile, ma lo scopo è diverso |
|
Back to top |
|
|
Raffo Veteran
Joined: 23 Apr 2004 Posts: 1019 Location: Berlin
|
Posted: Wed Oct 27, 2004 3:33 pm Post subject: |
|
|
credo di aver finito lo script
lo controllo ancora, lo testo un po', mi do per un po' alla chimica e se tutto va bene per stasera lo posto....avviso che FA schifo ed è sicuramente lontano da quello che immaginate |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Wed Oct 27, 2004 4:50 pm Post subject: |
|
|
posta che siamo curiosi _________________ while True:Gentoo() |
|
Back to top |
|
|
Raffo Veteran
Joined: 23 Apr 2004 Posts: 1019 Location: Berlin
|
Posted: Wed Oct 27, 2004 6:02 pm Post subject: |
|
|
eccolo che arriva....permettetemi di fare una piccola introduzione in modo che nn mi insultiate troppo....lo script è nato come una cavolata. doveva funzionare solo con i pacchetti masked, mentre poi m'è venuto in mente di ampliare le funzionalità....l'ho creato semplicemente per avere in mente un solo comando, senza doverlo alternare ad emerge. per ora è molto rozzo, nn è stato testato sufficientemente e spero sia la versione funzionante (nel pulire la mia vers dai vari commenti avevo perso qualcosa per strada )...mi aspetto commenti solo negativi, ma ricordate che me l'avete chiesto voi di postarlo!! io lo sto usando, ma voi cercate di leggerlo modificarlo e comprenderlo (tanto è facile ) prima di un utilizzo...l'opzione "--help" arriverà per ora l'ho messa solo per ricordarmi di farla....
N.B. è il primo script che faccio e di programmazione ne so molto poco, quindi ci potrebbero essere dei grossolani errori che un programmatore nn farebbe mai...grazie cmq per avermi letto
Code: | #!/bin/sh
#Distributed under the terms of the GNU General Public License v2
source /sbin/functions.sh
if [ "$1" = --inject ]; then
emerge -s $2
echo "Quali di questi file desideri iniettare?"
read inject
echo $inject >> /etc/portage/profile/package.provided
echo "$2 injected. Exiting..."
exit 0
fi
if [ "$1" = --help ]; then
echo -e '\E[33;m'"\033[1m .::Opzioni di xmerge::.\033[0m"
echo
echo -e '\E[32;m'"\033[1m Opzioni.........ancora da inserire.....\033[0m"
echo
echo
echo -e '\E[37;m'"\033[1m Versione 0.1.\033[0m"
echo
exit 0
fi
if [ "$1" = --update ]; then
emerge sync && emerge -uDav world
exit 0
fi
ewarn "Questo script è ancora work in. Ogni uso potrebbe nn essere appropiato e/o causare errori al sistema. Usalo con cura! ^_^ "
sleep 1
if [ "$1" = --see ]; then
cat /etc/portage/package.keywords
exit 0
fi
done=1
ARCH="x86"
HILITE="\033[1m"
NORMAL="\033[0m"
RED='\E[31;01m'
GREEN='\E[32;01m'
YELLOW='\E[33;01m'
while [ $done ]
do
RESULT=`emerge -p $* 2>&1 | grep "(masked" | head -n 1`
if [ "$RESULT" ]
then
ACTION_STRING=
RESULT_FILTERED=`echo $RESULT | cut -d":" -f2`
KEYWORD_MASKED=`echo $RESULT | cut -d":" -f2 | grep "~"`
HARD_MASKED=`echo $RESULT | cut -d":" -f2 | grep "package.mask"`
MISSING_MASKED=`echo $RESULT | cut -d":" -f2 | grep "missing"`
CLEAN_NAME=`echo $RESULT | cut -d" " -f2 | sed -e 's/-[0-9]/*/g' | cut -d"*" -f1`
if [ "$HARD_MASKED" = "$RESULT_FILTERED" ]
then
echo "$CLEAN_NAME" >> /etc/portage/package.unmask
ACTION_STRING=$RED"[HARD]"$NORMAL
fi
if [ "$KEYWORD_MASKED" = "$RESULT_FILTERED" ]
then
echo "$CLEAN_NAME ~$ARCH" >> /etc/portage/package.keywords
ACTION_STRING=$ACTION_STRING$YELLOW"[KEYWORD]"$NORMAL
fi
if [ ! "$ACTION_STRING" ]
then
echo && einfo "Don't know how to handle.. sorry!" && echo
exit
else
echo -e $GREEN"*$NORMAL $CLEAN_NAME "$ACTION_STRING
fi
fi
if [[ "$1" = "$( find /usr/portage -mindepth 2 -maxdepth 2 -type d -iname "$1" | cut -d"/" -f5,5 | sed -e 's/-[0-9]/*/g' | cut -d"*" -f1 | sort )" ]]; then
ewarn "Vuoi installare $1 masked o stabile? [m/s]"
read rispostone
if [ "$rispostone" = s ]; then
emerge $1
exit 0
fi
ACCEPT_KEYWORDS="~x86" emerge -s $1
echo "Quale di questi pacchetti desideri emergere??"
read risposta
if [ "$(grep "$risposta ~x86$" /etc/portage/package.keywords)" ]; then
emerge $risposta
exit 0
fi
einfo "Inserisco $risposta in package.keywords ed inizio l'emerge."
sleep 2
echo $risposta ~x86 >> /etc/portage/package.keywords
ACCEPT_KEYWORDS="~x86" emerge -av $risposta
sleep 2
echo $risposta ~x86 >> /etc/portage/package.keywords
ACCEPT_KEYWORDS="~x86" emerge -av $risposta
exit 0
else
emerge $*
exit 0
fi
done
exit
|
spero di averlo incollato bene
Last edited by Raffo on Thu Oct 28, 2004 11:50 am; edited 1 time in total |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Thu Oct 28, 2004 6:43 am Post subject: |
|
|
a prima vista ci sono un po' di cose da sistemare (ma l'avevi gia' preannunciato)
Io non sono un mago in bash (qui in giro c'e' gente sicuramente + esperta) pero' qualche consiglio (se vuoi) posso dartelo
Premetto che non ho ancora avuto modo di provarlo.
In mattinata ci faccio un giro
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
Raffo Veteran
Joined: 23 Apr 2004 Posts: 1019 Location: Berlin
|
Posted: Thu Oct 28, 2004 11:08 am Post subject: |
|
|
purtroppo ho postato una versione con sicuramente due bug. me ne sono accorto stamattina pensando "ma poi le ho corrette quelle cose" ho acceso il pc (senza potermi connettere, ho la condivisa e il pc "server" è in camera di mio fratello che dormiva...), controllato e fatto un mini bug report che posto Code: | primi bug che ho trovato:
1)manca "exit 0" dopo l'opzione --see.
2)c'è un'errore nella parte di xchris. più che un errore ho solo
dimenticato di modificare il suo script. nel momento in cui scrivo nn
posso ma lo farò appena possibile (ovvero oggi pomeriggio).
3)speriamo nn ce ne siano altri :D
--------scritto il 28/10/2004 alle 07.44....ora vado a scuola :D--------
|
oggi ci do un'occhiata...... |
|
Back to top |
|
|
Raffo Veteran
Joined: 23 Apr 2004 Posts: 1019 Location: Berlin
|
Posted: Thu Oct 28, 2004 5:19 pm Post subject: |
|
|
ho corretto i bug principali, spero solo che ora tutto funzioni. senza che ripeto le premesse fatte la volta precedente tenetele bene a mente
Code: | #!/bin/sh
#Distributed under the terms of the GNU General Public License v2
source /sbin/functions.sh
HILITE="\033[1m"
NORMAL="\033[0m"
RED='\E[31;01m'
GREEN='\E[32;01m'
YELLOW='\E[33;01m'
PURPLE='\E[35;01m'
WHITE='\E[37;01m'
if [ "$1" = --inject ]; then
emerge -s $2
echo "Quali di questi file desideri iniettare?"
read inject
echo $inject >> /etc/portage/profile/package.provided
echo "$2 Injected. Exiting..."
exit 0
fi
if [ "$1" = --help ]; then
echo -e $WHITE".::Opzioni di xmerge::."
echo
echo -e $GREEN" --inject"$NORMAL": fa l'inject del pacchetto inserendolo in package.provided" && echo
echo -e $GREEN" --update"$NORMAL": opzione per l'aggiornamento del sistema. esegue un sync verso il mirror selezionato e un 'emerge -uDav world' (consultare l'help di emerge per maggiori info)" && echo
echo -e $GREEN" --see"$NORMAL": mostra tutti i pacchetti inseriti in package.keywords" && echo
echo
echo
echo -e $PURPLE"xmerge"$WHITE": script per la gestione e l'installazione di programmi masked e stable. Versione 0.3."
echo
exit 0
fi
if [ "$1" = --update ]; then
emerge sync && emerge -uDav world
exit 0
fi
ewarn "Questo script è ancora work in. Ogni uso potrebbe nn essere appropiato e/o causare errori al sistema. Usalo con cura! ^_^ "
sleep 1
if [ "$1" = --see ]; then
cat /etc/portage/package.keywords
exit 0
fi
done=1
ARCH="x86"
while [ $done ]
do
RESULT=`emerge -p $* 2>&1 | grep "(masked" | head -n 1`
if [ "$RESULT" ]
then
ACTION_STRING=
RESULT_FILTERED=`echo $RESULT | cut -d":" -f2`
KEYWORD_MASKED=`echo $RESULT | cut -d":" -f2 | grep "~"`
HARD_MASKED=`echo $RESULT | cut -d":" -f2 | grep "package.mask"`
MISSING_MASKED=`echo $RESULT | cut -d":" -f2 | grep "missing"`
CLEAN_NAME=`echo $RESULT | cut -d" " -f2 | sed -e 's/-[0-9]/*/g' | cut -d"*" -f1`
if [ "$HARD_MASKED" = "$RESULT_FILTERED" ]
then
echo "$CLEAN_NAME" >> /etc/portage/package.unmask
ACTION_STRING=$RED"[HARD]"$NORMAL
fi
if [ "$KEYWORD_MASKED" = "$RESULT_FILTERED" ]
then
echo "$CLEAN_NAME ~$ARCH" >> /etc/portage/package.keywords
ACTION_STRING=$ACTION_STRING$YELLOW"[KEYWORD]"$NORMAL
fi
if [ ! "$ACTION_STRING" ]
then
echo && einfo "Don't know how to handle.. sorry!" && echo
exit
fi
else
echo -e $GREEN"*$NORMAL $CLEAN_NAME "$ACTION_STRING
done=
fi
done
if [[ "$1" = "$( find /usr/portage -mindepth 2 -maxdepth 2 -type d -iname "$1" | cut -d"/" -f5,5 | sed -e 's/-[0-9]/*/g' | cut -d"*" -f1 | sort )" ]]; then
ewarn "Vuoi installare $1 masked o stabile? [m/s]"
read rispostone
if [ "$rispostone" = s ]; then
emerge $1
exit 0
fi
ACCEPT_KEYWORDS="~x86" emerge -s $1
echo "Quale di questi pacchetti desideri emergere??"
read risposta
if [ "$(grep "$risposta ~x86$" /etc/portage/package.keywords)" ]; then
emerge $risposta
exit 0
fi
einfo "Inserisco $risposta in package.keywords ed inizio l'emerge."
sleep 2
echo $risposta ~x86 >> /etc/portage/package.keywords
emerge -av $risposta
exit 0
else
emerge $*
exit 0
fi
exit
|
occhio che in un paio di punti va a capo, ma voi dovete riportare la riga per intero....speriamo che funzioni
Last edited by Raffo on Tue Nov 02, 2004 5:39 pm; edited 1 time in total |
|
Back to top |
|
|
fra n00b
Joined: 12 Jul 2003 Posts: 54 Location: italy
|
Posted: Sat Oct 30, 2004 7:12 pm Post subject: |
|
|
ho provato zorro per gnome 2.8, ha funzionato tutto alla grande, grazie xchris |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Tue Nov 02, 2004 9:29 am Post subject: |
|
|
bene
e' un po' lento ma funzica
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30915 Location: here
|
Posted: Tue Nov 02, 2004 4:55 pm Post subject: |
|
|
Ok come da richiesta ho messo un po' di controlli sullo script di xchris. Le aggiunte sono
- Controllo se utente root
- Controllo se si mette = davanti a categoria/pacchetto
- Controllo che il pacchetto immesso non inizi con un '-' (se no portage la prende come opzione)
- aggiunta del help
Ecco il codice completo
Code: | #!/bin/bash
# ARCH -> x86 ppc sparc alpha hppa mips ia64 amd64
ARCH=`cat /etc/make.profile/make.defaults | grep "ACCEPT_KEYWORDS" | awk -F\" '{ print $2 }'`
#####################
HILITE="\033[1m"
NORMAL="\033[0m"
RED='\E[31;01m'
GREEN='\E[32;01m'
YELLOW='\E[33;01m'
#####################
function usage {
echo -e "\nUsage: addkeywords =CATEGORY/PACKAGE-VERSION\n"
echo -e ""
echo -e "Example:"
echo -e " # addkeywords =xfce-base/xfce4-4.1.90"
echo -e ""
exit 1
}
[ "$1" = "-h" ] && usage
[ "$1" = "--help" ] && usage
[ -z $1 ] && usage
[ $# -eq 0 ] && echo -e "\nSpecify one or more packages\n" && exit
source /sbin/functions.sh
DONE=1
echo && einfo "Please Wait...\n"
[ ! `/usr/bin/whoami` = 'root' ] && echo && einfo "Program require root access!" && echo && exit
PRELIMINARY_CHECK=`emerge -p $* 2>&1 | grep "no ebuilds to satisfy"`
PRELIMINARY_CHECK1=`emerge -p $* 2>&1 | grep "(try adding an '=')"`
PRELIMINARY_CHECK2=`echo "$1" | head -c 1 --`
[ "$PRELIMINARY_CHECK" ] && echo && einfo "No ebuild found!" && echo && exit
[ "$PRELIMINARY_CHECK1" ] && echo && einfo "Specific key requires an operator (xfce-base/xfce4-4.1.90) (try adding an '=')" && echo && exit
[ "$PRELIMINARY_CHECK2" = "-" ] && echo && einfo "No ebuild found!" && echo && exit
[ ! -e "/etc/portage" ] && einfo "Creating /etc/portage directory\n" && { mkdir /etc/portage || { einfo "ERROR...Quiting" && exit ;} }
while [ $DONE ]
do
RESULT=`emerge -p $* 2>&1 | grep "(masked" | head -n 1`
if [ "$RESULT" ]
then
ACTION_STRING=
RESULT_FILTERED=`echo $RESULT | cut -d":" -f2`
KEYWORD_MASKED=`echo $RESULT | cut -d":" -f2 | grep "~"`
HARD_MASKED=`echo $RESULT | cut -d":" -f2 | grep "package.mask"`
MISSING_MASKED=`echo $RESULT | cut -d":" -f2 | grep "missing"`
CLEAN_NAME=`echo $RESULT | cut -d" " -f2 | sed -e 's/-[0-9]/*/g' | cut -d"*" -f1`
if [ "$HARD_MASKED" = "$RESULT_FILTERED" ]
then
echo "$CLEAN_NAME" >> /etc/portage/package.unmask
ACTION_STRING=$RED"[HARD]"$NORMAL
fi
if [ "$KEYWORD_MASKED" = "$RESULT_FILTERED" ]
then
echo "$CLEAN_NAME ~$ARCH" >> /etc/portage/package.keywords
ACTION_STRING=$ACTION_STRING$YELLOW"[KEYWORD]"$NORMAL
fi
if [ "$MISSING_MASKED" = "$RESULT_FILTERED" ]
then
echo && einfo "Package masked by missing keyword..Aborting" && echo
exit
fi
if [ ! "$ACTION_STRING" ]
then
echo && einfo "Don't know how to handle.. sorry!" && echo
exit
else
echo -e $GREEN"*$NORMAL $CLEAN_NAME "$ACTION_STRING
fi
else
echo && einfo "Your ebuild is emergeable!" && echo
DONE=
fi
done
|
_________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Tue Nov 02, 2004 5:00 pm Post subject: |
|
|
ottimo!
appena riesco la provo.
mi era venuta in mente un altra opzione (non mandarmi a quel paese please )
capita spesso che rimangano dei cadaveri in .keywords e .unmask..
sarebbe carino poter scannare e mostrare/rimuovere vecchie entry. (anche perche' ben sappiamo che rallentano portage)
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30915 Location: here
|
Posted: Tue Nov 02, 2004 5:01 pm Post subject: |
|
|
xchris wrote: | mi era venuta in mente un altra opzione (non mandarmi a quel paese please ) |
Nessun problema, ma come si fa a vedere se sono vecchi? Nel senso in keywords io non metto mai la versione cosi' che quel programma e' sempre all'ultima versione. _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Tue Nov 02, 2004 5:37 pm Post subject: |
|
|
vecchi nel senso che non sono + utilizzati (magari ci si dimentica di toglierlo)
una nota sul usage..
la sintassi accettata e' la stessa identica di emerge..quindi
./tool atom1 atom2 ...atomN
dove atom e':
app
cat/app
[>|<][=]cat/app-ver
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30915 Location: here
|
Posted: Tue Nov 02, 2004 5:41 pm Post subject: |
|
|
Quindi se non capisco male solo un opzione che rimuove quello che gli dico? _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Tue Nov 02, 2004 5:49 pm Post subject: |
|
|
no
ad es oggi smachero skype...
poi domani lo "sommergo" e non lo tolgo dai file keywords,unmask
moltiplica questo x N volte....
rimane un po' di sporcizia.
Se invece io lancio ./tool --purge lui mi lascia solo le entry per i pacchetti installati.
a me sarebbe utile....poi magari non interessa a molti..
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30915 Location: here
|
Posted: Tue Nov 02, 2004 5:50 pm Post subject: |
|
|
Quindi togliere da keywords umask i pacchetti che non sono piu' installati? _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Tue Nov 02, 2004 5:52 pm Post subject: |
|
|
si
e' solo una mia necessita'?
se cosi' fosse lascia pure perdere... non vale la pena.
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30915 Location: here
|
Posted: Wed Nov 03, 2004 2:29 pm Post subject: |
|
|
xchris wrote: | e' solo una mia necessita'? |
No va benissimo provero' a farlo. _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30915 Location: here
|
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Mon Nov 15, 2004 7:39 am Post subject: |
|
|
Autore wrote: |
to install entrance you'll still have to fire up portage 8 times as there are 8 packages masked, but i can't do nothing about that as portage notifies you about masked packages step by step
|
decisamente meglio il nostro sistema...
permette di smascherare in automatico la versione che si vuole in poco tempo e senza sbattimenti
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30915 Location: here
|
Posted: Mon Nov 15, 2004 8:33 am Post subject: |
|
|
Sto provando ad implementare la funzione che dicevi ma volevo fare una domanda: io uso emerge -p nome per vedere se il pacchetto e' installato, pensi sia meglio usare un'altro tool (tipo qpkg)? _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
Dhaki Guru
Joined: 16 Jun 2004 Posts: 325 Location: Ticino - CH
|
Posted: Sat Dec 11, 2004 12:06 pm Post subject: |
|
|
Mi é venuta anche in mente un altra feature che potrebbe essere interessante. In genere per vedere che versioni di un pacchetto che voglio installare vado a vedere a mano nella dir in /usr/portage. Dato che però sono un pigro, ho pensato: non si potrebbe fare un tool che listi tutti i pacchetti installabili? Magari si potrebbe includere in questo, o se caso si puo farne uno autonomo, o anche piu probabile questa opzione magari esiste già...
Illuminatemi. Nel frattempo mi cimento un po a farne uno io, anche solo come esercizio. |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Sat Dec 11, 2004 12:13 pm Post subject: |
|
|
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
Dhaki Guru
Joined: 16 Jun 2004 Posts: 325 Location: Ticino - CH
|
Posted: Sat Dec 11, 2004 12:27 pm Post subject: |
|
|
xchris wrote: |
ciao |
Ecco, lo sapevo...
Grazie |
|
Back to top |
|
|
|