La Fucina di @trigg: uno script per tutti gli usi - [Laboratorio per dilettanti]

Aperto da trigg, Mercoledì 23 Maggio 2018, 22:51:39

Discussione precedente - Discussione successiva

trigg

questa è la versione definitiva di TSF  terminal-software-manager
a differenza del primo dove se si sbagliava a digiatare usciva

questa versione oltre a non richiamare .sh perchè è in loop
quando si sbaglia a digitare non esce

[embed=425,349]<iframe width="560" height="315" src="https://www.youtube.com/embed/QNdMma60RfE" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>[/embed]

#!/bin/bash

# ----------------------------------

RED='\033[0;41;30m'
STD='\033[0;0;39m'

# ----------------------------------

pause(){
echo " ___  ___   ___  __  __  __    _  _  _  _    ____  __   ___  ____  __  ";
echo "(  ,\(  ,) (  _)(  \/  )(  )  ( )( )( \( )  (_  _)(  ) / __)(_  _)/  \ ";
echo " ) _/ )  \  ) _) )    (  )(    )()(  )  (     )(  /__\ \__ \  )( ( () )";
echo "(_)  (_)\_)(___)(_/\/\_)(__)   \__/ (_)\_)   (__)(_)(_)(___/ (__) \__/ ";
echo " ___  ___  ___      __  __  _  _  ____  __  _  _  _  _  __   ___   ___ ";
echo "(  ,\(  _)(  ,)    / _)/  \( \( )(_  _)(  )( \( )( )( )(  ) (  ,) (  _)";
echo " ) _/ ) _) )  \   ( (_( () ))  (   )(   )(  )  (  )()( /__\  )  \  ) _)";
echo "(_)  (___)(_)\_)   \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
  read -n1
}

cerca(){
clear

echo "Quale Pacchetto desideri cercare?"
read pacchetto
pacman -Ss $pacchetto

        pause
}


installa(){
clear
echo "Quale Pacchetto desideri installare?"               
            read inst
sudo pacman -S $inst
        pause
}

rimuovi(){
clear
echo "Quale Pacchetto desideri rimuovere?"               
            read rev
sudo pacman -R $rev
        pause
}

rimuovidp(){
clear
echo "Quali Pacchetti desideri rimuovere?"               
            read re
sudo pacman -Rs $re
        pause
}

aggsys(){
clear
echo "stai lanciando sudo pacman -Sy && sudo pacman -Syu"               
            sudo pacman -Sy && sudo pacman -Syu
        pause
}

key(){
clear
echo "stai lanciando sudo pacman -S archlinux-keyring && sudo pacman -Syu"               
            sudo pacman -S archlinux-keyring && sudo pacman -Syu
        pause
}

cery(){
clear
echo "Quale Pacchetto desideri cercare?"
read pacc
yaourt -Ss $pacc
        pause
}
instally(){
clear
echo "Quale Pacchetto desideri installare?"               
            read ins
yaourt -S $ins
        pause
}

quit(){
clear
echo "Grazie"
sleep 1
echo " per"
sleep 1
echo " aver"
sleep 1
echo " usato"
sleep 1
echo " il mio Script"
sleep 1
echo " by Trigg"   
           
            sleep 2
clear
exit 0
        pause
}


show_menus() {
clear
echo "???????????????????????????????????????????????????????????????????????????"
echo "?      ??????????????????????????????????????????????????????????????     ?"
echo "?      ?                                                            ?     ?"
echo "?      ?              Scegli l'operazione da eseguire:              ?     ?"
echo "?      ?                                                            ?     ?"
echo "?      ???????????PACMAN??????????        ??????????YAOURT???????????     ?"
echo "?      ??[1] Cerca App           ?        ?[7] Cerca in Yaourt     ??     ?"
echo "?      ??[2] Installa App        ?        ?[8] Installa con Yaourt ??     ?"
echo "?      ??[3] Rimuovi App         ?        ?                        ??     ?"
echo "?      ??[4] Rimuovi App e Dip.  ?        ?                        ??     ?"
echo "?      ??[5] Aggiorna Sitema     ?        ?                        ??     ?"
echo "?      ??[6] Aggiorna Key        ?        ?               [0] Esci ??     ?"
echo "?      ???????????????????????????        ???????????????????????????     ?"
echo "?      ??????????????????????????????????????????????????????????????     ?"
echo "?                                                                         ?"; 
echo "?                           *   )                                         ?";
echo "?                         \` )  /( (   (   (  (  (  (                      ?";
echo "?                          ( )(_)))(  )\  )\))( )\))(                     ? ";
echo "?                         (_(_())(()\((_)((_))\((_))\                     ? ";
echo "?                         |_   _| ((_)(_) (()(_)(()(_)                    ? ";
echo "?                           | |  | '_|| |/ _\` |/ _\` |                     ?";
echo "?                           |_|  |_|  |_|\__, |\__, |                     ?";
echo "?                                        |___/ |___/                      ?";
echo "???????????????????????????????????????????????????????????????????????????"
}

read_options(){
local choice
read -p "Scegli la tua operazione[ 0 - 8] " scegli
case $scegli in
1) cerca  ;;
2) installa ;;
3) rimuovi ;;
4) rimuovidp ;;
5) aggsys ;;
6) key ;;
7) cery ;;
8) instally ;;
0) quit;;
*) echo -e "${RED}Error...${STD}" && sleep 2
esac
}

# ----------------------------------------------

trap '' SIGINT SIGQUIT SIGTSTP

# -----------------------------------

while true
do

show_menus
read_options
done
se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...

trigg

https://drive.google.com/file/d/1mrJBKAw_KwyHqVjGd8zQz-4ugAuxcN3I/view?usp=sharing


#!/bin/bash

#EDITOR=vim
#PASSWD=/etc/passwd
RED='\033[0;41;30m'
STD='\033[0;0;39m'
GREEN='\033[1;32;3m'

# ----------------------------------

pause(){
echo " ___  ___   ___  __  __  __    _  _  _  _    ____  __   ___  ____  __  ";
echo "(  ,\(  ,) (  _)(  \/  )(  )  ( )( )( \( )  (_  _)(  ) / __)(_  _)/  \ ";
echo " ) _/ )  \  ) _) )    (  )(    )()(  )  (     )(  /__\ \__ \  )( ( () )";
echo "(_)  (_)\_)(___)(_/\/\_)(__)   \__/ (_)\_)   (__)(_)(_)(___/ (__) \__/ ";
echo " ___  ___  ___      __  __  _  _  ____  __  _  _  _  _  __   ___   ___ ";
echo "(  ,\(  _)(  ,)    / _)/  \( \( )(_  _)(  )( \( )( )( )(  ) (  ,) (  _)";
echo " ) _/ ) _) )  \   ( (_( () ))  (   )(   )(  )  (  )()( /__\  )  \  ) _)";
echo "(_)  (___)(_)\_)   \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
  read -n1
}

cerca(){
clear
echo "Quale Pacchetto desideri cercare ?"
read pacchetto
apt-cache search  $pacchetto
        pause
}


installa(){
clear
echo "Quale Pacchetto desideri installare  ?"               
            read inst

sudo apt-get install $inst
   
        pause
}

rimuovi(){
clear
echo "Quale Pacchetto desideri rimuovere  ?"               
            read rev
sudo apt-get remove $rev
        pause
}

purge(){
clear
echo "Quali Pacchetti desideri rimuovere  ?"               
            read re
sudo apt-get purge  $re
        pause
}

aggsys(){
clear
echo "stai lanciando sudo apt-get update && sudo apt-get upgrade -y"               
            sudo apt-get update && sudo apt-get upgrade -y
        pause
}

apt(){
clear
echo "Pulizia della cache di apt eseguita"               
            sudo apt-get clean
        pause
}

obs(){
clear
echo "Pulizia di programmi-dipendenze non più necessarie completata"
if [ -n "$LIB" ]
then
echo "Programmi installati come dipendenze non più necessarie"
echo $LIB
sudo apt-get autoremove -y
echo "Eliminati!"
sleep 2
else
echo "Non ci sono programmi installati come dipendenze da rimuovere!"
sleep 2
fi
if [ "$ALL" == "Y" ]
then
return
fi
        pause
}
mini(){
clear
echo "Pulizia della cache delle miniature terminata"

rm -fr $HOME/.cache/thumbnails/fails/*
rm -fr $HOME/.cache/thumbnails/large/*
rm -fr $HOME/.cache/thumbnails/normal/*

        pause
}

firefox(){
clear
which firefox &> /dev/null # Controllo la presenza di Firefox
if [ "$?" == "0" ]
then
DIR="$HOME/.cache/mozilla/firefox/"
echo -e "* Pulizia della cache di Firefox *"
if [ -d "$DIR" ]
then
    for I in $(ls $DIR)
    do
    spazio_firefox=$(du -sh $DIR/$I/ | cut -d "/" -f1)
    PROFILO=$(echo "$I" | cut -d "." -f2)
echo "La cache del profilo \"$PROFILO\" è di $spazio_firefox"
echo -e "Cancellare?\n(premi s per sì o un altro tasto per no)"
read -s -n1
if [ "$REPLY" == "s" -o "$REPLY" == "S" ]
then
echo -e "Attendere, sto cancellando."
sleep 1
rm -fr $DIR/$I/*
echo -e 'Fatto!'
sleep 2
else
echo
fi
    done
echo -e "* Pulizia della cache di Firefox *"
echo -e "La cache di Firefox è vuota!"
fi
else
echo -e "* Pulizia della cache di Firefox *"
echo -e "Firefox non risulta installato!"
sleep 2
fi
if [ "$ALL" == "Y" ]
then
return
fi

        pause
}

chromium(){
clear
which chromium-browser &> /dev/null
if [[ "$?" == "0" ]]
    then
spazio_chrome=$(du -sh $HOME/.cache/chromium/Default/Cache/ | cut -d "/" -f1)
echo -e "* Pulizia della cache di Chromium *"
if [ -n "$spazio_chrome"  ]
    then
echo "La cache è di $spazio_chrome"
echo -e "Attendere, sto cancellando."
sleep 1
rm -fr $HOME/.cache/chromium/Default/Cache/*
echo 'Fatto'
sleep 2
else
echo "La cache di Chromium è vuota!"
sleep 2
fi
else
echo -e "* Pulizia della cache di Chromium *"
echo -e "Chromium non risulta installato!"
sleep 2
fi
if [ "$ALL" == "Y" ]
    then
    return
fi
        pause
}

kernel(){
clear
echo -e "* Pulizia dei vecchi kernel *"
ls /boot/ | grep vmlinuz | sed 's@vmlinuz-@linux-image-@g' | sort -Vr | sed -e '1,2d' > /tmp/kernelList
kernelList=$(ls /boot/ | grep vmlinuz | sed 's@vmlinuz-@linux-image-@g' | sort -Vr | sed -e '1,2d')

if [ "$kernelList" != "" ]
    then
    echo 'Saranno rimossi questi kernel (compreso i loro header):'
    cat /tmp/kernelList
    echo 'Kernel attuale in uso:'
    uname -r
        for l in $(cat /tmp/kernelList)
        do
              sudo apt-get remove --purge  -y  $l
        done
    #questo rimuove i header:
    ls /usr/src |grep headers | sort -Vr |sed -e '1,4d' > /tmp/headerList
 
    for l in $(cat /tmp/headerList)
    do
        sudo apt-get remove --purge  -y  $l
    done

    sudo rm -f /tmp/headerlist
    sudo rm -f /tmp/kernelList
    sudo update-grub
    echo 'Sono rimasti installati questi due kernel:'
    ls /boot/ | grep vmlinuz | sed 's@vmlinuz-@linux-image-@g'
    echo 'Headers installati:'
    ls /usr/src |grep headers
else
    echo "Non ci sono kernel da rimuovere!"
fi

sleep 2
if [ "$ALL" == "Y" ]
then
return
fi
        pause
}

configurazioni(){
clear
LIB=$(dpkg -l | egrep "^rc" | cut -d ' ' -f3)
echo -e "* Pulizia configurazioni inutilizzate *"
if [ -n "$LIB" ]
then
echo 'Le eventuali configurazioni inutilizzate sono:'
echo $LIB
echo -e "Cancellare?\n(premi s per sì o un altro tasto per no)"
read -sn 1
if [ "$REPLY" = "s" -o  "$REPLY" = "S" ]
then
sudo dpkg --purge $(dpkg -l | egrep "^rc" | cut -d ' ' -f3)
echo "Cancellate!"
fi
else
echo "Non ci sono configurazioni inutilizzate da rimuovere!"
sleep 2
fi
        pause
}

completa(){
LIB=$(dpkg -l | egrep "^rc" | cut -d ' ' -f3)
echo -e "* Pulizia configurazioni inutilizzate *"
if [ -n "$LIB" ]
then
echo 'Le eventuali configurazioni inutilizzate sono:'
echo $LIB
echo -e "Cancellare?\n(premi s per sì o un altro tasto per no)"
read -sn 1
if [ "$REPLY" = "s" -o  "$REPLY" = "S" ]
then
sudo dpkg --purge $(dpkg -l | egrep "^rc" | cut -d ' ' -f3)
echo "Cancellate!"
fi
else
echo "Non ci sono configurazioni inutilizzate da rimuovere!"
sleep 2
fi
        pause
}

show_menus() {
clear
echo -e "${GREEN} ????????????????????????????????????????????????????????????????????????????? "
echo -e "${GREEN} ??????????????LINUX_MINT????????????   MMMMMMMMMMMMMMMMMMMMMMMMMmds+.       ? "
echo -e "${GREEN} ?  [1] Cerca App                   ?   MMm----::-://////////////oymNMd+     ? "
echo -e "${GREEN} ?  [2] Installa App                ?   MMd      /++                -sNMd:   ? "
echo -e "${GREEN} ?  [3] Rimuovi App                 ?   MMNso/'  dMM    '.::-. .-::.' .hMN:  ? "
echo -e "${GREEN} ?  [4] Purge                       ?   ddddMMh  dMM   :hNMNMNhNMNMNh: 'NMm  ? "
echo -e "${GREEN} ?  [5] Aggiorna Sitema             ?       NMm  dMM  .NMN/-+MMM+-/NMN' dMM  ? "
echo -e "${GREEN} ?  [6] Pulizia di Apt              ?       NMm  dMM  -MMm  'MMM   dMM. dMM  ? "
echo -e "${GREEN} ?  [7] Elimina Dip. obsolete       ?       NMm  dMM  -MMm  'MMM   dMM. dMM  ? "
echo -e "${GREEN} ?  [8] Pulizia cache min.Sys.      ?       NMm  dMM  .mmd  'mmm   yMM. dMM  ? "
echo -e "${GREEN} ?  [9] Pulizia cache Firefox       ?       NMm  dMM'  ..'   ...   ydm. dMM  ? "
echo -e "${GREEN} ? [10] Pulizia cache Chromium      ?       hMM- +MMd/-------...-:sdds  dMM  ? "
echo -e "${GREEN} ? [11] Elimina Kernel              ?       -NMm- :hNMNNNmdddddddddy/'  dMM  ? "
echo -e "${GREEN} ? [12] Configurazioni inutilizzate ?        -dMNs-''-::::-------.''    dMM  ? "
echo -e "${GREEN} ? [13] Pulizia Completa            ?         '/dMNmy+/:-------------:/yMMM  ? "
echo -e "${GREEN} ?  [0] Esci                        ?            ./ydNMMMMMMMMMMMMMMMMMMMMM  ? "
echo -e "${GREEN} ?     *   )                        ?               \.MMMMMMMMMMMMMMMMMMM    ? "
echo -e "${GREEN} ?    \' )  /( (   (   (  (  (                                               ? "
echo -e "${GREEN} ?    ( )(_)))(  )\  )\))( )\))(                                             ? "
echo -e "${GREEN} ?   (_(_())(()\((_)((_))\((_))\                                             ? "
echo -e "${GREEN} ?   |_   _| ((_)(_) (()(_)(()(_)                                            ? "
echo -e "${GREEN} ?     | |  | '_|| |/ _\'|/ _\'|                                             ? "
echo -e "${GREEN} ?     |_|  |_|  |_|\__, |\__, |                                             ? "
echo -e "${GREEN} ?                   |___/ |___/                                             ? "
echo -e "${GREEN} ????????????????????????????????????????????????????????????????????????????? "
}

read_options(){
local choice
read -p "Seleziona la tua operazione [ 0 - 13] " choice
case $choice in
1) cerca  ;;
2) installa ;;
3) rimuovi ;;
4) purge ;;
5) aggsys ;;
6) apt ;;
7) obs ;;
8) mini ;;
9) firefox ;;
10) chromium ;;
11) kernel ;;
12) configurazioni ;;
13) ALL=Y ; apt ; echo ; obs ; echo ; mini ; echo ; firefox ; echo ; chromium ; echo ; kernel ; echo ; configurazioni ;;
0) exit 0;;
*) echo -e "${RED}Error...${STD}" && sleep 2 ;;
esac
}

# ----------------------------------------------
-
trap '' SIGINT SIGQUIT SIGTSTP

# -----------------------------------

while true
do

show_menus
read_options
done



se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...

nessuno

...Senti un po'.  :)

A me servirebbe un modo per non dovere usare più gksu per lanciare lo script (...parlo di Slurp!) e per fare in modo che, anche se lanciato senza privilegi, lo script verifichi prima la condizione e nel caso chieda di salire con su.

Non sudo, o un'altra cosa, ma proprio su.

Tu pensi che si possa fare?
Hai qualcosa di pronto sottomano?

Grazie, ciao.  :ciao:

trigg

ho trovato questo

su - root -c 'slackpkg update'

https://superuser.com/questions/458910/supply-su-password-in-a-bash-script-within-the-script

ma vedi tu , di lanciare il comando lo lancia , il fatto sta che bha sembra essere una forzatura

meglio documentarsi meglio , non sempre tutto quello che  sembra funzionare funzioni come dovrebbe
se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...

nessuno

Ok, facciamo finta per un attimo che quello che hai riportato funziona,

resta da verificare se esiste o non esiste la condizione per lanciare il comando.

Se l'utente è già root non c'è motivo di passare il comando.

Io con gli script sto a zero ma avevo immaginato una risposta che iniziava con if e con un test, tipo

if [ $USER = root ] ;  then (lancia lo script)                       # facile che ho scritto una cazzata  ;D

Altrimenti, ecc. ...

Pazienza,  per ora grazie per il tuo interessamento.

Mi cercherò uno script esistente in cui e stata affrontata la situazione, se esiste, e cercherò di capire come prenderne spunto.

:ciao:

EDIT:

un esempio di quello che dicevo sopra:

#! /bin/bash
if [ "$USER" = "root" ]; then
xterm -geometry 80x28+30+200 -sb -rightbar -font -*-fixed-medium-r-*-*-20-*-*-*-*-*-iso8859-* -bg darkgrey -T Slurp! -hold -e bash /opt/slurp/script/slurp-0.0.5.sh

else echo "mi spiace, devi essere root per eseguire lo script"

fi


Così verifica se sono root e se si lancia lo script, se no mi dice che non può.

Questo funziona, ma da qui a me serve poter diventare root e continuare.



NOTA:

mi viene in mente adesso che la soluzione potrebbe anche non riguardare direttamente lo script, se ci fosse un modo di agire a livello di "lanciatore" la soluzione sarebbe molto più semplice...


Ancora un altro EDIT:

la soluzione più semplice che ho trovato è agire sul lanciatore, così:

[Desktop Entry]
Categories=System
Version=0.0.5
Type=Application
Name=Slurp!
Comment=Script per Slackware, aggiorna il sistema e configura slackpkg/plus.
Exec=su - root -c "bash /opt/slurp/script/slurp-0.0.5.sh"
Icon=/opt/slurp/logo/Slurp-Logo-final.png
Path=
Terminal=true
StartupNotify=false
Keywords=slackpkg;upgrade;script;slackware


Il terminale su true e il comando suggerito da @trigg  che comanda l'esecuzione dello script.

Sembra essere perfetto, anche se così mi sono perso la formattazione di xterm...

Continuerò (...parlando da solo) nel topic di Slurp: sono ancora interessato a tutte le possibili alternative, per cui, se a qualcuno venisse in mente qualcosa io lo ascolterei molto volentieri.   :)

nessuno

Ho trovato la soluzione definitiva con questa sintassi per la voce "Exec=" del lanciatore:

Exec=xterm -geometry 80x28+30+200 -sb -rightbar -font -*-fixed-medium-r-*-*-20-*-*-*-*-*-iso8859-* -bg darkgrey -T Slurp!  -e su - root -c "bash /opt/slurp/script/slurp-0.0.5.sh"

con il terminale impostato su "false"

:ok: Grazie!  :ciao:

trigg

in effetti avevi chiesto di non usare sudo e gksu
il discorso di if user=root si può fare ma non era quello che avevi domandato nel post :)

tornando a llo script  secondo me non aveva molto senso indicare if user=root , perchè ,se non si è root il terminale di per sè già ti restituisce l'outpt devi essere root per eseguire questo comando.

al massimo se si vuole fare una cosa piè elegante potevi usare una cosa del genere ,   ora sono su anarchy e non posso provarla ma piu o meno è
 
echo -e "hai i privilegi di amministratore?\n(premi s per sì o un altro tasto per no)"
read -s -n1
if [ "$REPLY" == "s" -o "$REPLY" == "S" ]
then
su - root -c 'slackpkg update'

else
  esci


in questo modo ti dice
sei root?
se rispodni si ti chiede la password e lanci il comando
altrimenti esci dallo script
se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...

nessuno

Citazione di: nessuno il Venerdì 08 Giugno 2018, 11:26:28
...Senti un po'.  :)
...e per fare in modo che, anche se lanciato senza privilegi, lo script verifichi prima la condizione e nel caso chieda di salire con su. ...

Mannaggia a te mannaggia, come non avevo chiesto  di usare if: come la volevi verificare la condizione?..

La prossima volta te lo dico in barese (...io sono anche un po' di Giovinazzo).

Con la formuletta che hai postato mi sembra che il su sia legato all'esecuzione del singolo comando,  se è così diventa una palla eseguire tutti i comandi dello script.

Comunque così come è andata è la soluzione perfetta: io non volevo stravolgere lo script, e non l'ho proprio toccato. E volevo continuare a usare XTerm. E così continuo ad usarlo.

Il comando che mi hai suggerito era perfetto per la bisogna se usato nel lanciatore...

...Meglio di così non poteva andare. ;)

In qualche altro script capiterà sicuramente di usare if, ecc...

Comunque a scopo didattico qualche prova la faccio, Ma non per  modificare Slurp, così com'è è troppo bello!  :)

trigg

se lo script viene lanciato con su come vuoi fare allora non c'è da fare niente

se invece lo script viene lanciato da user allora secondo me non serve dire al sistema controlla che user è root perchè già lo fa
se sei root lancia il comando se non sei root ti dice che devi avaere i privilegi

la soluzione che userei è quella che ho scrittp prima

cioè lancio lo script da user
prima del comando chiedo di salire con su
e dopo lancio il comando.

però questo non serve per come hai ipostato il comando di lancio dello script perchè lo avii con su  :)
se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...

trigg

questo script è la bozza del terminal-manger di gentoo
può esee utile per chi come me è alle prime armi con gentoo

ci sono i comandi di base che servono a gentoo , dopo sta all'utente capire cosa chiede portage

#!/bin/bash
clear

# Controllo dei permessi di chi esegue lo script
if [ "$EUID" -ne 0 ]
  then echo "Eseguire lo script con i permessi di amministratore (su o sudo)"
  exit
fi

############## Opzioni per il menu ##########################

options=("Cerca" "Installa Disinstalla Pacchetti" "Gestione Use-Flag" "Aggiorna il Sistema" "Pulizia di Sistema" "Esci")

################### subcerca ######################

Cerca () {
echo "Seleziona il numero della tua scelta"
cerca=("Aggiorna Eix e Cerca " "Cerca Senza Aggiornare " "Menu" )
PS3="> "
select mopt in "${cerca[@]}"
do
     case $mopt in
         "${cerca[0]}") echo "Aggiorna Eix e Cerca "
        echo -n "Quale pacchetto desideri cercare? " ; read pack
eix-update
eix $pack
REPLY=
        ;;
         "${cerca[1]}")  echo "Cerca Senza Aggiornare "
echo -n "Quale pacchetto desideri cercare? " ; read pack
eix $pack
REPLY=
              ;;
"${cerca[2]}") echo "Menu Principale"
break
    ;;
*) REPLY=
;;
     esac
done
}

###################################### Sub Pacchetti ############################

Installa_Disinstalla_Pacchetti () {
echo "Seleziona il numero della tua scelta"
pacchetti=("Installa da Portage Tree " "Installa da Overlays " "Rimuovi Pacchetto " "Menu" )
PS3="> "
select mopt in "${pacchetti[@]}"
do
     case $mopt in
         "${pacchetti[0]}") echo "Installa da Portage Tree "
             echo -n "pacchetto da installare " ; read INSTALLA
emerge --ask $INSTALLA
echo "eseguito"
REPLY=
        ;;
"${pacchetti[1]}") echo "Installa da Overlays "
echo "devi prima scaricare l'ebuild"
echo premi un tasto per continuare
read -n1
cd /home/trigg/Scaricati/G

echo -n "Indica Categoria/Pacchetto " ; read rp
ls

echo -n "Inserisci .ebuild " ; read ebuild
mkdir -p /usr/local/portage/$rp

cp $ebuild /usr/local/portage/$rp
#mv $ebuild /mnt/DATI/gentoo/'installazione gentoo'/ebuild/
cd /usr/local/portage/$rp

repoman manifest
emerge --ask $rp
REPLY=
;;
"${pacchetti[2]}") echo "Rimuovi Pacchetto "
            echo -n "Indica categoria/pacchetto da rimuovere" ; read ctpr
emerge --depclean --ask $ctpr
echo "eseguito"
REPLY=
             ;;

"${pacchetti[3]}") echo echo "Menu Principale"
break
    ;;
*) REPLY=
;;
     esac
done
}

########################### Gestione Use Flag #################################

Gestione_Use_Flag () {
echo "Seleziona il numero della tua scelta"
         Use_Flag=("Abilita Use-Flag " "Disabilita Use-Flag " "Menu" )
PS3="> "
select mopt in "${Use_Flag[@]}"
do
     case $mopt in
"${Use_Flag[0]}") echo "Abilita Use-Flag "
             echo -n "Indica Categoria/Pacchetto da ricompilare" ; read cpt
echo -n "Indica Use-flag da abilitare" ; read use
euse --enable $use --package $cpt
emerge --ask --changed-use --deep @world
echo "eseguito"
REPLY=           
             ;;
"${Use_Flag[1]}") echo "Disabilita Use-Flag "
   echo -n "Indica Categoria/Pacchetto da ricompliare" ; read dcpt
echo -n "Indica Use-flag da disabilitare" ; read duse
euse --disable $duse --package $dcpt
emerge --ask --changed-use --deep @world
echo "eseguito"
REPLY=             
             ;;
"${Use_Flag[2]}") echo echo "Menu Principale"
break
    ;;
*) REPLY=
;;
     esac
done
}

######################################### Aggiorna ###############################

Aggiorna () {
echo "Seleziona il numero della tua scelta"
         aggiorna=("Aggiorna Portage Tree " "Aggiorna Pacchetti e Dipendenze " "Esegui emerge --update --newuse --deep @world " "Esegui emerge --ask --depclean " "Esegui emerge @preserved-rebuild " "Menu" )
PS3="> "
select mopt in "${aggiorna[@]}"
do
     case $mopt in
"${aggiorna[0]}") echo "Aggiorna Portage Tree "
emerge --sync
echo "eseguito"
REPLY=             
              ;;
"${aggiorna[1]}") echo "Aggiorna Pacchetti e Dipendenze "
echo "Stai per lanciare emerge --update --changed-use --deep --with-bdeps=y @world
Premi un Tasto per Continuare "
read -n1
emerge --update --changed-use --deep --with-bdeps=y @world
echo "eseguito"
REPLY=             
              ;;
"${aggiorna[2]}") echo "Esegui emerge --update --newuse --deep @world "
emerge --update --newuse --deep @world
echo "eseguito"
REPLY=             
              ;;
"${aggiorna[3]}") echo "Esegui emerge --ask --depclean "
emerge --ask --depclean
echo "eseguito"
REPLY=             
              ;;

"${aggiorna[4]}") echo "Esegui emerge @preserved-rebuild "
emerge @preserved-rebuild
echo "eseguito"
;;
"${aggiorna[5]}") echo echo "Menu Principale"
break
    ;;
*) REPLY=
;;
     esac
done
}

################################### Pulizia ##############################

Pulizia () {
echo "Seleziona il numero della tua scelta"
         pulizia=("Pulizia /var/tmp/portage " "Esegui eclean-dist " "Menu" )
PS3="> "
select mopt in "${pulizia[@]}"
do
     case $mopt in
"${pulizia[0]}") echo "Pulizia /var/tmp/portage "
echo "stai per eliminare le cartelle in /var/tmp/portage/  premi un tasto per continuare"
read -n1
/usr/bin/find /var/tmp/portage/  -mindepth 1 -maxdepth 1 -exec /bin/rm -rf {} +;
REPLY=
             ;;
"${pulizia[1]}") echo  "Esegui eclean-dist "

echo "stai per eseguire eclean-dist premi un tasto per continuare"
read -n1
eclean-dist
REPLY=
;;
"${pulizia[2]}") echo echo "Menu Principale"
break
    ;;
*) REPLY=
;;
     esac
done
}
### Scrivi le altre funzioni
###
### Fine delle funzioni


# Il menu
clear
PS3="Inserisci valore : "
select opt in "${options[@]}"
    do
        case $opt in
            "${options[0]}")
                    clear
                    # Richiama la funzione "cerca" dichiarata precedentemente
                    Cerca
                    REPLY=
            ;;
            "${options[1]}")
                   Installa_Disinstalla_Pacchetti
                    REPLY=
            ;;
            "${options[2]}")
                   Gestione_Use_Flag
                    REPLY=
            ;;
            "${options[3]}")
                   Aggiorna
                    REPLY=
            ;;
            "${options[4]}")
                   Pulizia
                    REPLY=
            ;;
            # Continua con le altre funzioni
            #
            "${options[-1]}") # Richiama l'ultimo indice (Uscita dallo script)
                    clear
                    exit
            ;;
        esac
    done


un ringraziamento è doveroso (non me ne vogliate male) a sabayonino di gentoo forum italia che mi ha aiutato tantissimo nell'eleborare lo script
l'utilità dello script sta anche nel creare menu e sub-menu
se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...

trigg

c'è voluto tempo tanto tempo , tanta emicrania e tanta fatica
ma alla fine ci sono riuscito

TRIGG.sh GENTOO TERMINAL MANAGER
;D

TRIGG.sh GENTOO TERMINAL MANAGER

se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...

trigg

trigger gentoo termianl manager update

questa è la versione più completa dello script

modifiche

aggiunta di
-etc-update
-layman

adesso posso predere una pausa per organizzare l progetti delle nuove idee da riportare su leafpad dalla mia mente
se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...

trigg

questo script converte i file .deb in file .txz per slackware

#!/bin/bash
echo " apri il seguente collegamento
https://debian.pkgs.org/ "
sleep 4

cd /home/$USER
echo -n "crea la cartella del file .deb" ; read CARTELLA
mkdir -p $CARTELLA/pacchetti
cd /home/$USER/$CARTELLA
echo -n "incolla link del file .deb" ; read LINK
wget $LINK
cd /home/$USER/$CARTELLA
ls
echo -n "pacchetto .deb da installare " ; read INSTALLA
ar -x /home/$USER/$CARTELLA/$INSTALLA
clear
ls
echo -n "indica estenione gz o xz del file data.tar " ; read ESTENSIONE
cd pacchetti
tar xvf ../data.tar.$ESTENSIONE
#echo -n "dai il nome al file .txz esempio mintstick.txz" ; read txz
clear

su -c " makepkg -l y -c n /home/$USER/debtotxz/$INSTALLA.txz "
cd /home/$USER/debtotxz/
clear
echo ridigita PWD
su -c " upgradepkg --install-new $INSTALLA.txz "
exit
su -c " upgradepkg --install-new $txz "
exit


avrei voluto fare il video ma non ho avuto tempo
se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...

nessuno

Ciao trigg,

hai rimesso in funzione la "Fucina", mi fa piacere.

Io sto usando da mesi ormai Il nostro programmino, Slurp!. Nella sua semplicità funziona benissimo. E adesso non saprei più farne a meno.

Ultimamente stavo pensando di fare un altro programmino con il quale gestire quella parte di slackpkg che si occupa della ricerca delle informazioni, la ricerca dei pacchetti, l'installazione e la rimozione del software.

Per il momento ho in mente solo i comandi che deve eseguire e una idea sul logo-icona e il nome del programma.

Per il Logo userò una vignetta di Bonvi, anche in omaggio ai 50 anni di Sturmtruppen (ottobre 1968-2018),
e il nome sarà presumibilmente:

Slackpkg Kommander


Lo spririto di slackpkg kommander:


...i 50 anni


Tu hai qualcosa in mente, hai voglia di partecipare?

Senza nessuna fretta...

:ciao:

trigg

!!!CIAO NICK!!!

è da diverso tempo che uso gentoo ma ieri mi è venuta l'illuminazione sullo script deb to txz per slackware

slackware non può mancare sul mio pc perchè è grazie a te e a slackware che ho iniziato a capire ed approfondire la conoscenza di linux :) e devo molto sia a te che a slackware.

non ho capito nello specifico cosa intendi per quella parte di slackpkg che si occupa della ricerca delle informazioni, la ricerca dei pacchetti, l'installazione e la rimozione del software.

ps anch'io sto usando slurp ed avevo intenzione di arricchirlo magari posto una bozza basata su slurp e ci lavoriamo sopra per metterci la ricerca ,l'installazione, informazione e tutto cio che riguarda i pacchetti

magari inserendoci anche lo script deb to txz ^_^

ciao e dimmi se postare la boza di slurp
se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...