davethecipo
Utente Èlite
- Messaggi
- 3,331
- Reazioni
- 1,163
- Punteggio
- 138
Io ho sostituito ghostery con privacy badger, se ti può interessare (non ho controllato la RAM)
Segui il video qui sotto per vedere come installare il nostro sito come web app sulla tua schermata principale.
Nota: Questa funzionalità potrebbe non essere disponibile in alcuni browser.
Pubblicità
Lo proverò, grazie. ^^Io ho sostituito ghostery con privacy badger, se ti può interessare (non ho controllato la RAM)
nel senso, ho letto la descrizione, ma perché lo usate? non basta la protezione inclusa in firefox + disabilitare il tracking, l'invio statistiche e i cookie di terze parti?
ahahahahahah fantastico xDLo proverò, grazie. ^^
Al di là della ram (100 più, 100 meno) poco importa. Mi dava fastidio il fatto che questa aumentava sempre più :asd: son arrivato anche a 1,4GiB con solo FF e quindi ho chiamato Goodger e gli ho detto ''sali e sistema 'sto coso perché se scendo io son dolori'' e lui ha risposto ''comandi'' :vv:
Non so se basti, in più ora ci si mette anche il mining, criptovalute e roba varia... sempre peggio. :|
[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()
Per la serie domande amletiche inutili.. :asd:
Che voi sappiate c'è qualche altro linguaggio di programmazione/scripting che può essere scritto con solamente pochi caratteri (6 nello specifico) o in modo cervellotico :asd: come javascript??
Esempio di eval(alert(1)):
JavaScript:[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()
PS. L'istruzione eval serve per eseguire il codice impostato come stringa..
ci sto lavorando il problema sembra risolto sto lucidando bene... anche in passato mi ero sbagliato, non avevi premuto per sbaglio il diniego al dialog di conferma installazione...è un problema di un errato riconoscimento dipendenze, sto rifacendo in modo approfondito la faccenda e posto la versione 4.2. in più devo risolvere il bug del mancato salvataggio (dopo installazione) del tar.gz quando manca il vecchio tar.gz ma è robetta da mezz'ora di tempo.@rebellion: sto provando sul fisso e non riesco ad aggiornare l'estensione chrome-gnome-shell-git. sia se premo t=tutto sia se premo s e seleziono il pacchetto, mi dice che non ha aggiornato per scelta dell'utente o.O
purtroppo non ho altri pacchetti da aggiornare, quindi non posso fare altre prove.
YEAAAHH!1. funziona! quell'estensione di chrome l'ha installata senza problemi
no a me il PKGBUILD non serve, mentre ho bisogno del $nomepacchetto.tar.gz perchè ne confronto l'hash con quello su AUR per stabilire (con l'incrocio del confronto dei numeri versione) se il pacchetto è aggiornato oppure no. considera che l'archivio (il tar.gz) è poca roba; mentre posso eliminare la cartella della compilazione se non c'è qualche controindicazione?3. suggerimento personale: la cartella la sposterei in /home/$USER/.cache/aur in modo da seguire l'andazzo dei vari aur helper ma una volta compilato il pacchetto, conserverei solo pkguild e pacchetto compilato. conservare la tarball.tar.gz e tutti i file di compilazione, mi sembra uno spreco di spazio inutile
verranno segnalate tutte: principali opzionali e per la compilazione!:sisi: quelle non installate e presenti su AUR non vengono installate, devi farlo tu a mano così decidi per bene se farlo oppure no; questo è uno scrpt di aggiornamento.4. non ricordo la risposta e non trovo il post, ergo richiedo. come si comporta lo script in caso di dipendenze da soddisfare? quelle presenti nei repo ufficiali vengono risolte, mentre quelle a catena da aur vengono solo segnalate, giusto?
e quando ho finito, spero entro fine settimana, che fò?!:look: :pazzo: :asd:5. ben fatto! sto script è tanta roba!
#!/bin/bash
#aur_update.sh v4.2
#script di aggiornamento pacchetti installati da AUR, by rebellion
#preferibilmente da lanciare tramite terminale per visualizzare messaggi di dialogo con lo script
#a es. con: gnome-terminal --geometry 75x25 --hide-menubar --title=\"AUR update\" -e \'sh -c \"sh /home/$USER/aur_update.sh\"\'
controllo_dipendenze () {
check_dip_aur="ok" ; a="\"Depends\"" ; aa="\",\""
dipendenze=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=$package_name")
make_dip=${dipendenze##*MakeDepends} ; if [ "$make_dip" = "$dipendenze" ] ; then make_dip="nessuna" ; else make_dip=${make_dip%%]*} ; make_dip=${make_dip:4} ; make_dip=${make_dip:0: -1} ; make_dip=${make_dip//$aa/ } ; fi
main_dip=${dipendenze##*$a} ; if [ "$main_dip" = "$dipendenze" ] ; then main_dip="nessuna" ; else main_dip=${main_dip%%]*} ; main_dip=${main_dip:3} ; main_dip=${main_dip:0: -1} ; main_dip=${main_dip//$aa/ } ; fi
opt_dip=${dipendenze##*OptDepends} ; if [ "$opt_dip" = "$dipendenze" ] ; then opt_dip="nessuna" ; else opt_dip=${opt_dip%%]*} ; opt_dip=${opt_dip:4} ; opt_dip=${opt_dip:0: -1} ; opt_dip=${opt_dip//$aa/ } ; fi
echo "DIPENDENZE:"
if [ "$main_dip" != "nessuna" ] ; then
numero_dipendenze=$(($(grep -o " " <<<"$main_dip" | wc -l)+1))
for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $main_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi
if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; check_dip_aur="no" ; fi
echo -e $dips
done
else echo "NESSUNA dipendenza richiesta."
fi
echo -e "\nDIPENDENZE OPZIONALI:"
if [ "$opt_dip" != "nessuna" ] ; then
numero_dipendenze=$(($(grep -o " " <<<"$opt_dip" | wc -l)+1))
for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $opt_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi
if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; fi
echo -e $dips
done
else echo "NESSUNA dipendenza opzionale richiesta."
fi
echo -e "\nDIPENDENZE PER LA COMPILAZIONE (MAKE):"
if [ "$make_dip" != "nessuna" ] ; then
numero_dipendenze=$(($(grep -o " " <<<"$make_dip" | wc -l)+1))
for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $make_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi
if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; check_dip_aur="no" ; fi
echo -e $dips
done
else echo "NESSUNA dipendenza per la compilazione richiesta."
fi
echo ; read -s -p "premi invio per continuare..."
}
seleziona () {
selezione=()
row_max=$((${#aur_ok[@]}/4))
packages="" ; for ((i=0;i<$row_max;i++)) ; do ii=$(( (i*4)+1 )) ; packages=$packages" "${aur_ok[$ii]} ; done
clear ; echo -e "PACCHETTI DA AGGIORNARE:\n\n" ; for ((i=0;i<$row_max;i++)) ; do package=$(echo $packages | awk -v x=$(( $i+1 )) '{print$x}') ; echo "( ) $package" ; done ; echo -e "\n----------------\ncurs.su/curs.giù per scorrere - invio per (de)selezionare - q per uscire\n----------------"
tput sc ; tput cuu $(( $row_max+4 )) ; tput cuf 1 ; riga=1
while [ "$tasto" != "q" ] ; do
read -s -N1
ott1="$REPLY"
read -s -N2 -t 0.001
ott2="$REPLY"
read -s -N1 -t 0.001
ott3="$REPLY"
tasto="$ott1$ott2$ott3"
case "$tasto" in
$'\x1b\x5b\x41')
if [ "$riga" = 1 ] ; then tput cud $(( $row_max-1 )) ; riga=$row_max ; else tput cuu 1 ; riga=$(( $riga-1 )) ; fi ;;
$'\x1b\x5b\x42')
if [ "$riga" = $row_max ] ; then tput cuu $(( $row_max-1 )) ; riga=1 ; else tput cud 1 ; riga=$(( $riga+1 )) ; fi ;;
"
")
if [ "${selezione[$riga]}" = "" ] ; then echo "x" ; selezione[$riga]="$riga"; else echo " " ; selezione[$riga]="" ; fi ; tput cuu 1 ; tput cuf 1 ; if [ "$riga" = $row_max ] ; then tput cuu $(( $row_max-1 )) ; riga=1 ; else tput cud 1 ; riga=$(( $riga+1 )) ; fi ;;
esac
done
tput rc
update=""
package="" ; for i in "${selezione[@]}" ; do package=$(echo $packages | awk -v x=$i '{print$x}') ; update=$update" "$package ; done
}
updating () {
risultato=""
for ((i=1;i<=$numero;i++)) ; do
clear
echo -n "Controllo connessione internet..."
if ping -q -c 1 -W 1 8.8.8.8 >/dev/null || ping -q -c 1 -W 1 google.com >/dev/null ; then
echo "Connessione ok"
package_name=$(echo $update | awk -v x=$i '{print$x}')
echo "Installazione $package_name:"
package_name_tar=$package_name".tar.gz" ; echo -n "ricerca $package_name_tar..."
package_dir_del=$(find /home/$USER -type d -name "$package_name") ; package_dir_del=$(echo $package_dir_del | awk '{print$1}')
[[ "$package_dir_del" != "" ]] && package_dir_del_old=$package_dir_del"_old"
package_dir=$(find /home/$USER -type d -name "AUR") ; [[ "$package_dir" = "" ]] && package_dir=/home/$USER/AUR && mkdir /home/$USER/AUR
package_path=$(find /home/$USER -type f -name "$package_name_tar") ; package_path=$(echo $package_path | awk '{print$1}')
[[ "$package_path" != "" ]] && package_path_old=$package_path".old"
echo "fatto." ; echo -n "Ricerca versioni..."
versione_new=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=$package_name" | grep "Version") ; outofdate=$(echo $versione_new | grep "OutOfDate\":null") ; [[ "$outofdate" = "" ]] && outofdate="(OutOfDate)" || outofdate=""
versione_new=${versione_new//,/ } ; versione_new=$(echo $versione_new | awk '{print$8}') ; versione_new=${versione_new:11} ; versione_new=${versione_new:0: -1}$outofdate
versione_old=$(pacman -Qi $package_name | grep "Versione" | awk '{print$3}')
echo "fatto." ; echo -e "Versione installata: $versione_old\nVersione da installare: $versione_new"
echo -e "\nControllo dipendenze del pacchetto $package_name:\n"
controllo_dipendenze
if [ "$check_dip_aur" = "ok" ] && dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --yesno "Verranno installate eventuali dipendenze mancanti presenti in community. Confermi l'aggiornamento?" 7 60 ; then clear
[[ -d "$package_dir_del" ]] && mv $package_dir_del $package_dir_del_old
[[ "$package_path" != "" ]] && mv $package_path $package_path_old
echo -e "Aggiornamento "$package_name" in corso, non spengere il pc o la connessione.\nbackup "$package_dir_del"---> fatto\nbackup "$package_name_tar"---> fatto"
if wget -P $package_dir https://aur.archlinux.org/cgit/aur.git/snapshot/$package_name_tar ; then
tar -xvzf $package_dir/$package_name_tar -C $package_dir
cd $package_dir/$package_name
if makepkg -s ; then
echo "Disinstallazione $package_name" ; sudo pacman -R $package_name
echo "Installazione $package_name scaricato" ; sudo pacman -U *.pkg.tar.xz
[[ "$package_path_old" != "" ]] && echo -n "Rimozione $package_path_old..." && rm $package_path_old && echo "Fatto."
[[ -d "$package_dir_del_old" ]] && echo -n "Rimozione cartella $package_dir_del_old di backup..." && sudo rm -r $package_dir_del_old && echo "fatto." ; sleep 2
dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento eseguito!" 7 60 ; clear ; risultato=$risultato" "$package_name"-->installato\n"
else
echo "Rimozione cartella $package_dir_del (cartella scompattata $package_name_tar scaricato)..."
sudo rm -r $package_dir/$package_name
[[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
rm $package_dir/$package_name_tar ; [[ "$package_path_old" != "" ]] && mv $package_path_old $package_path
dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento fallito. Ripristinato il backup del pacchetto." 7 60 ; clear ; risultato=$risultato" "$package_name"-->non_installato_problemi_nella_compilazione(make)\n"
fi
else
[[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
[[ "$package_path_old" != "" ]] && mv $package_path_old $package_path
dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento fallito, sembra che AUR non contenga il pacchetto da aggiornare. Ripristinato il backup del pacchetto." 7 60 ; clear
risultato=$risultato" "$package_name"-->non_installato_non_presente_in_AUR\n"
fi
else
[[ "$check_dip_aur" = "ok" ]] && risultato=$risultato" "$package_name"-->non_installato_per_scelta_utente\n" || risultato=$risultato" "$package_name"-->non installato per mancanza dipendenze AUR\n"
fi
else
echo "Connessione assente. Ripristino ultima versione di $package_name..." ; sleep 2 ;
[[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
[[ "$package_path_old" != "" ]] && mv $package_path_old $package_path
dialog --title "Controllo connessione internet" --backtitle "Aggiornamento AUR" --msgbox "Connessione assente, aggiornamento fallito. $package_name ripristinato all'ultima versione." 7 60 ; clear
risultato=$risultato" "$package_name"-->non_installato_per_assenza_connessione_internet\n"
fi
done
clear ; echo "Riassunto aggiornamento:" ; echo -e "\n$risultato" ; echo ; echo "premi invio per terminare..." ; read -s -n 1
}
check=$(ps aux | grep "[s]udo pacman") ; if [ "$check" = "" ] ; then
LIGHT_RED=='\033[0;31m' ; LIGHT_GREEN='\033[0;32m' ; LIGHT_WHITE='\033[1;37m' ; NC='\033[0m'
clear && echo -n "Controllo connessione internet..."
if ping -q -c 1 -W 1 8.8.8.8 >/dev/null || ping -q -c 1 -W 1 google.com >/dev/null ; then
echo "Connesso a internet."
echo -e "\nCONTROLLO PACCHETTI AGGIORNABILI, attendere..."
aur=()
aur_ok=()
update=""
AUR=$(pacman -Qqm)
numero_AUR=$(pacman -Qqm | wc -l)
for ((i=0;i<$numero_AUR;i++)) ; do ii=$((i+1)) ; aur[$i]=$(echo $AUR | awk -v x=$ii '{print$x}')
tput cuu 1 ; tput cuf 47 ; echo "[$(($i+1))/$numero_AUR]" ; tput el ; echo ${aur[$i]} ; tput cuu 1
versione_new=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=${aur[$i]}" | grep "Version") ; outofdate=$(echo $versione_new | grep "OutOfDate\":null")
if [ "$versione_new" != "" ] ; then
versione_new=${versione_new//,/ } ; versione_new=$(echo $versione_new | awk '{print$8}') ; versione_new=${versione_new:11} ; versione_new=${versione_new:0: -1}
versione_old=$(pacman -Qi ${aur[$i]} | grep "Versione" | awk '{print$3}')
package_path=$(find /home/$USER -type f -name "${aur[$i]}.tar.gz") ; package_path=$(echo $package_path | awk '{print$1}')
[[ $package_path != "" ]] && hash_old=$(md5sum $package_path | awk '{print$1}') || hash_old=""
[[ $hash_old != "" ]] && hash_new=$(curl -s https://aur.archlinux.org/cgit/aur.git/snapshot/"${aur[$i]}.tar.gz" | md5sum | awk '{print$1}') || hash_new=""
if [ "$versione_new" != "$versione_old" ] && ([ "$hash_old" != "$hash_new" ] || [ "$hash_old" = "" ]) ; then
if [ "$outofdate" != "" ] ; then descrizione="${LIGHT_GREEN}AGGIORNABILE${NC}" ; descr="AGGIORNABILE" ; else descrizione="${LIGHT_GREEN}AGGIORNABILE${NC}(${LIGHT_RED}OutOfDate${NC})" ; descr="AGGIORNABILE_(OutOfDate)" ; fi
if [ "$hash_old" = "" ] ; then descrizione=$descrizione"_firme_non_confrontabili" ; fi
aur_ok+=(False ${aur[$i]} $versione_old $versione_new)
aur[$i]=${aur[$i]}" --->"$descrizione
else if [ "$outofdate" != "" ] ; then descrizione="${LIGHT_WHITE}AGGIORNATO${NC}" ; else descrizione="${LIGHT_WHITE}AGGIORNATO${NC}(${LIGHT_RED}OutOfDate${NC})" ; fi ; aur[$i]=${aur[$i]}" --->"$descrizione
fi
else descrizione="${LIGHT_RED}NON PRESENTE IN AUR${NC}" ; aur[$i]=${aur[$i]}" --->"$descrizione
fi
done
if [ "$aur_ok" = "" ] ; then
dialog --title "Controllo pacchetti installati" --backtitle "Aggiornamento AUR" --msgbox "Tutti i pacchetti AUR installati sono aggiornati alla versione più recente!" 7 60
else
tput cuu 1 ; tput el ; echo "RISULTATO RICERCA PACCHETTI AGGIORNABILI:"
for ((i=0;i<$numero_AUR;i++)) ; do echo -e ${aur[$i]} ; done ; echo -e "\tt=aggiorna tutto | s=seleziona aggiornamenti | altro=esci" ; read -n 1 -s azione
if [ "$azione" = "s" ] ; then
update=$(zenity --list --title="PACCHETTI AUR AGGIORNABILI" --text="seleziona per aggiornare" --width=1000 --height=650 --checklist --separator=" " --column="" --column="PACCHETTO" --column="VERSIONE INSTALLATA" --column="VERSIONE DA INSTALLARE" "${aur_ok[@]}" 2>/dev/null) ; numero=$(($(grep -o " " <<<"$update" | wc -l)+1))
# seleziona ; numero=$(grep -o " " <<<"$update" | wc -l)
[[ "${update// /}" != "" ]] && updating
elif [ "$azione" = "t" ] ; then numero=$((${#aur_ok[@]}/4))
for ((i=0;i<$numero;i++)) ; do ii=$(( (i*4)+1 )) ; update=$update" "${aur_ok[$ii]} ; done
updating
fi
fi
else
dialog --title "Controllo connessione internet" --backtitle "Aggiornamento AUR" --msgbox "Sembra che manchi la connessione, impossibile proseguire." 7 60
fi
else dialog --title "Controllo gestione pacchetti (PACMAN)" --backtitle "Aggiornamento AUR" --msgbox "C'è già in esecuzione il gestore pacchetti, attenderne la fine." 7 60
fi
exit 0
ogni linguaggio! io riscriverei lo script in base 6 diciamo, tramite un crittografo, per eseguirlo usi il traduttore con argomento lo script crittografato evvuallà! :DPer la serie domande amletiche inutili.. :asd:
Che voi sappiate c'è qualche altro linguaggio di programmazione/scripting che può essere scritto con solamente pochi caratteri (6 nello specifico) o in modo cervellotico :asd: come javascript??[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!+[
ogni linguaggio! io riscriverei lo script in base 6 diciamo, tramite un crittografo, per eseguirlo usi il traduttore con argomento lo script crittografato evvuallà! :D
ma a che ti serve? xDA parte il cripting, tecnicamente quello sopra è un encode del codice creato utilizzando solamente 6 caratteri..
Forse la domanda corretta sarebbe: quale altro linguaggio può essere scritto utilizzando solamente un set (molto) ristretto di caratteri??
Ho aperto una discussione in programmazione, vediamo quanti insulti mi prendo :asd:
YEAAAHH!
no a me il PKGBUILD non serve, mentre ho bisogno del $nomepacchetto.tar.gz perchè ne confronto l'hash con quello su AUR per stabilire (con l'incrocio del confronto dei numeri versione) se il pacchetto è aggiornato oppure no. considera che l'archivio (il tar.gz) è poca roba; mentre posso eliminare la cartella della compilazione se non c'è qualche controindicazione?
verranno segnalate tutte: principali opzionali e per la compilazione!:sisi: quelle non installate e presenti su AUR non vengono installate, devi farlo tu a mano così decidi per bene se farlo oppure no; questo è uno scrpt di aggiornamento.
e quando ho finito, spero entro fine settimana, che fò?!:look: :pazzo: :asd:
EDIT: @e_ale92mancano l'uso di ~/.cache/AUR e la rimozione della cartella di compilazione del pacchetto ma fammi sapere se quest'ultima operazione abbia controindicazioni.Codice:#!/bin/bash #aur_update.sh v4.2 #script di aggiornamento pacchetti installati da AUR, by rebellion #preferibilmente da lanciare tramite terminale per visualizzare messaggi di dialogo con lo script #a es. con: gnome-terminal --geometry 75x25 --hide-menubar --title=\"AUR update\" -e \'sh -c \"sh /home/$USER/aur_update.sh\"\' controllo_dipendenze () { check_dip_aur="ok" ; a="\"Depends\"" ; aa="\",\"" dipendenze=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=$package_name") make_dip=${dipendenze##*MakeDepends} ; if [ "$make_dip" = "$dipendenze" ] ; then make_dip="nessuna" ; else make_dip=${make_dip%%]*} ; make_dip=${make_dip:4} ; make_dip=${make_dip:0: -1} ; make_dip=${make_dip//$aa/ } ; fi main_dip=${dipendenze##*$a} ; if [ "$main_dip" = "$dipendenze" ] ; then main_dip="nessuna" ; else main_dip=${main_dip%%]*} ; main_dip=${main_dip:3} ; main_dip=${main_dip:0: -1} ; main_dip=${main_dip//$aa/ } ; fi opt_dip=${dipendenze##*OptDepends} ; if [ "$opt_dip" = "$dipendenze" ] ; then opt_dip="nessuna" ; else opt_dip=${opt_dip%%]*} ; opt_dip=${opt_dip:4} ; opt_dip=${opt_dip:0: -1} ; opt_dip=${opt_dip//$aa/ } ; fi echo "DIPENDENZE:" if [ "$main_dip" != "nessuna" ] ; then numero_dipendenze=$(($(grep -o " " <<<"$main_dip" | wc -l)+1)) for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $main_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; check_dip_aur="no" ; fi echo -e $dips done else echo "NESSUNA dipendenza richiesta." fi echo -e "\nDIPENDENZE OPZIONALI:" if [ "$opt_dip" != "nessuna" ] ; then numero_dipendenze=$(($(grep -o " " <<<"$opt_dip" | wc -l)+1)) for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $opt_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; fi echo -e $dips done else echo "NESSUNA dipendenza opzionale richiesta." fi echo -e "\nDIPENDENZE PER LA COMPILAZIONE (MAKE):" if [ "$make_dip" != "nessuna" ] ; then numero_dipendenze=$(($(grep -o " " <<<"$make_dip" | wc -l)+1)) for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $make_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; check_dip_aur="no" ; fi echo -e $dips done else echo "NESSUNA dipendenza per la compilazione richiesta." fi echo ; read -s -p "premi invio per continuare..." } seleziona () { selezione=() row_max=$((${#aur_ok[@]}/4)) packages="" ; for ((i=0;i<$row_max;i++)) ; do ii=$(( (i*4)+1 )) ; packages=$packages" "${aur_ok[$ii]} ; done clear ; echo -e "PACCHETTI DA AGGIORNARE:\n\n" ; for ((i=0;i<$row_max;i++)) ; do package=$(echo $packages | awk -v x=$(( $i+1 )) '{print$x}') ; echo "( ) $package" ; done ; echo -e "\n----------------\ncurs.su/curs.giù per scorrere - invio per (de)selezionare - q per uscire\n----------------" tput sc ; tput cuu $(( $row_max+4 )) ; tput cuf 1 ; riga=1 while [ "$tasto" != "q" ] ; do read -s -N1 ott1="$REPLY" read -s -N2 -t 0.001 ott2="$REPLY" read -s -N1 -t 0.001 ott3="$REPLY" tasto="$ott1$ott2$ott3" case "$tasto" in $'\x1b\x5b\x41') if [ "$riga" = 1 ] ; then tput cud $(( $row_max-1 )) ; riga=$row_max ; else tput cuu 1 ; riga=$(( $riga-1 )) ; fi ;; $'\x1b\x5b\x42') if [ "$riga" = $row_max ] ; then tput cuu $(( $row_max-1 )) ; riga=1 ; else tput cud 1 ; riga=$(( $riga+1 )) ; fi ;; " ") if [ "${selezione[$riga]}" = "" ] ; then echo "x" ; selezione[$riga]="$riga"; else echo " " ; selezione[$riga]="" ; fi ; tput cuu 1 ; tput cuf 1 ; if [ "$riga" = $row_max ] ; then tput cuu $(( $row_max-1 )) ; riga=1 ; else tput cud 1 ; riga=$(( $riga+1 )) ; fi ;; esac done tput rc update="" package="" ; for i in "${selezione[@]}" ; do package=$(echo $packages | awk -v x=$i '{print$x}') ; update=$update" "$package ; done } updating () { risultato="" for ((i=1;i<=$numero;i++)) ; do clear echo -n "Controllo connessione internet..." if ping -q -c 1 -W 1 8.8.8.8 >/dev/null || ping -q -c 1 -W 1 google.com >/dev/null ; then echo "Connessione ok" package_name=$(echo $update | awk -v x=$i '{print$x}') echo "Installazione $package_name:" package_name_tar=$package_name".tar.gz" ; echo -n "ricerca $package_name_tar..." package_dir_del=$(find /home/$USER -type d -name "$package_name") ; package_dir_del=$(echo $package_dir_del | awk '{print$1}') [[ "$package_dir_del" != "" ]] && package_dir_del_old=$package_dir_del"_old" package_dir=$(find /home/$USER -type d -name "AUR") ; [[ "$package_dir" = "" ]] && package_dir=/home/$USER/AUR && mkdir /home/$USER/AUR package_path=$(find /home/$USER -type f -name "$package_name_tar") ; package_path=$(echo $package_path | awk '{print$1}') [[ "$package_path" != "" ]] && package_path_old=$package_path".old" echo "fatto." ; echo -n "Ricerca versioni..." versione_new=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=$package_name" | grep "Version") ; outofdate=$(echo $versione_new | grep "OutOfDate\":null") ; [[ "$outofdate" = "" ]] && outofdate="(OutOfDate)" || outofdate="" versione_new=${versione_new//,/ } ; versione_new=$(echo $versione_new | awk '{print$8}') ; versione_new=${versione_new:11} ; versione_new=${versione_new:0: -1}$outofdate versione_old=$(pacman -Qi $package_name | grep "Versione" | awk '{print$3}') echo "fatto." ; echo -e "Versione installata: $versione_old\nVersione da installare: $versione_new" echo -e "\nControllo dipendenze del pacchetto $package_name:\n" controllo_dipendenze if [ "$check_dip_aur" = "ok" ] && dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --yesno "Verranno installate eventuali dipendenze mancanti presenti in community. Confermi l'aggiornamento?" 7 60 ; then clear [[ -d "$package_dir_del" ]] && mv $package_dir_del $package_dir_del_old [[ "$package_path" != "" ]] && mv $package_path $package_path_old echo -e "Aggiornamento "$package_name" in corso, non spengere il pc o la connessione.\nbackup "$package_dir_del"---> fatto\nbackup "$package_name_tar"---> fatto" if wget -P $package_dir https://aur.archlinux.org/cgit/aur.git/snapshot/$package_name_tar ; then tar -xvzf $package_dir/$package_name_tar -C $package_dir cd $package_dir/$package_name if makepkg -s ; then echo "Disinstallazione $package_name" ; sudo pacman -R $package_name echo "Installazione $package_name scaricato" ; sudo pacman -U *.pkg.tar.xz [[ "$package_path_old" != "" ]] && echo -n "Rimozione $package_path_old..." && rm $package_path_old && echo "Fatto." [[ -d "$package_dir_del_old" ]] && echo -n "Rimozione cartella $package_dir_del_old di backup..." && sudo rm -r $package_dir_del_old && echo "fatto." ; sleep 2 dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento eseguito!" 7 60 ; clear ; risultato=$risultato" "$package_name"-->installato\n" else echo "Rimozione cartella $package_dir_del (cartella scompattata $package_name_tar scaricato)..." sudo rm -r $package_dir/$package_name [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del rm $package_dir/$package_name_tar ; [[ "$package_path_old" != "" ]] && mv $package_path_old $package_path dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento fallito. Ripristinato il backup del pacchetto." 7 60 ; clear ; risultato=$risultato" "$package_name"-->non_installato_problemi_nella_compilazione(make)\n" fi else [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del [[ "$package_path_old" != "" ]] && mv $package_path_old $package_path dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento fallito, sembra che AUR non contenga il pacchetto da aggiornare. Ripristinato il backup del pacchetto." 7 60 ; clear risultato=$risultato" "$package_name"-->non_installato_non_presente_in_AUR\n" fi else [[ "$check_dip_aur" = "ok" ]] && risultato=$risultato" "$package_name"-->non_installato_per_scelta_utente\n" || risultato=$risultato" "$package_name"-->non installato per mancanza dipendenze AUR\n" fi else echo "Connessione assente. Ripristino ultima versione di $package_name..." ; sleep 2 ; [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del [[ "$package_path_old" != "" ]] && mv $package_path_old $package_path dialog --title "Controllo connessione internet" --backtitle "Aggiornamento AUR" --msgbox "Connessione assente, aggiornamento fallito. $package_name ripristinato all'ultima versione." 7 60 ; clear risultato=$risultato" "$package_name"-->non_installato_per_assenza_connessione_internet\n" fi done clear ; echo "Riassunto aggiornamento:" ; echo -e "\n$risultato" ; echo ; echo "premi invio per terminare..." ; read -s -n 1 } check=$(ps aux | grep "[s]udo pacman") ; if [ "$check" = "" ] ; then LIGHT_RED=='\033[0;31m' ; LIGHT_GREEN='\033[0;32m' ; LIGHT_WHITE='\033[1;37m' ; NC='\033[0m' clear && echo -n "Controllo connessione internet..." if ping -q -c 1 -W 1 8.8.8.8 >/dev/null || ping -q -c 1 -W 1 google.com >/dev/null ; then echo "Connesso a internet." echo -e "\nCONTROLLO PACCHETTI AGGIORNABILI, attendere..." aur=() aur_ok=() update="" AUR=$(pacman -Qqm) numero_AUR=$(pacman -Qqm | wc -l) for ((i=0;i<$numero_AUR;i++)) ; do ii=$((i+1)) ; aur[$i]=$(echo $AUR | awk -v x=$ii '{print$x}') tput cuu 1 ; tput cuf 47 ; echo "[$(($i+1))/$numero_AUR]" ; tput el ; echo ${aur[$i]} ; tput cuu 1 versione_new=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=${aur[$i]}" | grep "Version") ; outofdate=$(echo $versione_new | grep "OutOfDate\":null") if [ "$versione_new" != "" ] ; then versione_new=${versione_new//,/ } ; versione_new=$(echo $versione_new | awk '{print$8}') ; versione_new=${versione_new:11} ; versione_new=${versione_new:0: -1} versione_old=$(pacman -Qi ${aur[$i]} | grep "Versione" | awk '{print$3}') package_path=$(find /home/$USER -type f -name "${aur[$i]}.tar.gz") ; package_path=$(echo $package_path | awk '{print$1}') [[ $package_path != "" ]] && hash_old=$(md5sum $package_path | awk '{print$1}') || hash_old="" [[ $hash_old != "" ]] && hash_new=$(curl -s https://aur.archlinux.org/cgit/aur.git/snapshot/"${aur[$i]}.tar.gz" | md5sum | awk '{print$1}') || hash_new="" if [ "$versione_new" != "$versione_old" ] && ([ "$hash_old" != "$hash_new" ] || [ "$hash_old" = "" ]) ; then if [ "$outofdate" != "" ] ; then descrizione="${LIGHT_GREEN}AGGIORNABILE${NC}" ; descr="AGGIORNABILE" ; else descrizione="${LIGHT_GREEN}AGGIORNABILE${NC}(${LIGHT_RED}OutOfDate${NC})" ; descr="AGGIORNABILE_(OutOfDate)" ; fi if [ "$hash_old" = "" ] ; then descrizione=$descrizione"_firme_non_confrontabili" ; fi aur_ok+=(False ${aur[$i]} $versione_old $versione_new) aur[$i]=${aur[$i]}" --->"$descrizione else if [ "$outofdate" != "" ] ; then descrizione="${LIGHT_WHITE}AGGIORNATO${NC}" ; else descrizione="${LIGHT_WHITE}AGGIORNATO${NC}(${LIGHT_RED}OutOfDate${NC})" ; fi ; aur[$i]=${aur[$i]}" --->"$descrizione fi else descrizione="${LIGHT_RED}NON PRESENTE IN AUR${NC}" ; aur[$i]=${aur[$i]}" --->"$descrizione fi done if [ "$aur_ok" = "" ] ; then dialog --title "Controllo pacchetti installati" --backtitle "Aggiornamento AUR" --msgbox "Tutti i pacchetti AUR installati sono aggiornati alla versione più recente!" 7 60 else tput cuu 1 ; tput el ; echo "RISULTATO RICERCA PACCHETTI AGGIORNABILI:" for ((i=0;i<$numero_AUR;i++)) ; do echo -e ${aur[$i]} ; done ; echo -e "\tt=aggiorna tutto | s=seleziona aggiornamenti | altro=esci" ; read -n 1 -s azione if [ "$azione" = "s" ] ; then update=$(zenity --list --title="PACCHETTI AUR AGGIORNABILI" --text="seleziona per aggiornare" --width=1000 --height=650 --checklist --separator=" " --column="" --column="PACCHETTO" --column="VERSIONE INSTALLATA" --column="VERSIONE DA INSTALLARE" "${aur_ok[@]}" 2>/dev/null) ; numero=$(($(grep -o " " <<<"$update" | wc -l)+1)) # seleziona ; numero=$(grep -o " " <<<"$update" | wc -l) [[ "${update// /}" != "" ]] && updating elif [ "$azione" = "t" ] ; then numero=$((${#aur_ok[@]}/4)) for ((i=0;i<$numero;i++)) ; do ii=$(( (i*4)+1 )) ; update=$update" "${aur_ok[$ii]} ; done updating fi fi else dialog --title "Controllo connessione internet" --backtitle "Aggiornamento AUR" --msgbox "Sembra che manchi la connessione, impossibile proseguire." 7 60 fi else dialog --title "Controllo gestione pacchetti (PACMAN)" --backtitle "Aggiornamento AUR" --msgbox "C'è già in esecuzione il gestore pacchetti, attenderne la fine." 7 60 fi exit 0
ma a che ti serve? xD