PDA

Visualizza la versione completa : Gestore script GUI


psykopear
17-02-2008, 15:32
Finalmente ho finito di sistemare lo script per la gestione di script, con un interfaccia grafica fatta grazie a zenity.
Adesso è utilizabile, l'unica cosa che mi manca è capire come fare ad aggiungere le voci nei menù: qual'è la cartella dove dovrei mettere il file .desktop? e più o meno cosa ci devo scrivere (non mi ricordo), se avete qualche link vi ringrazio.

Ecco il codice sorgente del file



#!/bin/bash

#Crea le cartelle necessarie allo script se non esistono (thanks to vortex87)
[ -d "$HOME/backup" ] || mkdir $HOME/backup
[ -d "$HOME/script" ] || mkdir $HOME/script

# Verifica che l'utente abbia permessi di root

function root(){
root=$(zenity --width=500 --error --no-wrap --text "Devi essere root per poter eseguire lo script" --title "Permessi")
return
}

ROOT_UID=0

if [ "$UID" != "$ROOT_UID" ]
then
root
exit
fi

#Programma
#scelta=""
#nomescript=""
#installa=""

function scelta(){
scelta=$(zenity --width=500 --height=300 --list --separator="" --text "Scegli l'operazione da fare" --column "" --column "" --column "Opzione" "" "1)" "Installare uno script (deve essre in $HOME/script/)" "" "2)" "Rimouvere uno script" "" "3)" "Fare il backup di uno script in $HOME/backup/" "" "4)" "Ripristinare uno script salvato in $HOME/backup/" "" "5)" "Apri uno sript nella cartella $HOME/script/ con un editor di testo" "" "6)" "Uscire" --radiolist --title "Scelta script")
return
}

function nomescript(){
nomescript=$(zenity --width=500 --entry --text "Scegli lo script (deve essere in $HOME/script)" --title "Scelta script")
return
}

function installa(){
installa=$(zenity --width=500 --info --no-wrap --text "Sto installando lo script" --title "Installazione in corso")
return
}

function installati(){
installati=$(zenity --width=500 --info --no-wrap --text "Installati gli script sul tuo computer
Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)" --title "Installazione completata")
return
}

function rimuovi(){
rimuovi=$(zenity --width=500 --info --no-wrap --text "Sto rimuovendo lo script" --title "Rimozione in corso")
return
}

function rimosso(){
rimosso=$(zenity --width=500 --info --no-wrap --text "Lo script è stato rimosso" --title "Rimozione completata")
return
}


function seleziona_script(){
seleziona_script=$(zenity --width=500 --error --no-wrap --text "Devi selezionare uno script!" --title "Seleziona uno script")
return
}


function backupping(){
backupping=$(zenity --width=500 --info --no-wrap --text "Sto facendo il backup dello script (in $HOME/backup/" --title "Backup in corso")
return
}

function backupped(){
backupped=$(zenity --width=500 --info --no-wrap --text "Il backup è completato" --title "Backup completato")
return
}

function ripristino(){
ripristino=$(zenity --width=500 --info --no-wrap --text "Sto facendo il ripristino dello script" --title "Ripristino in corso")
return
}

function ripristinato(){
ripristinato=$(zenity --width=500 --info --no-wrap --text "Il ripristino è completato" --title "Ripristino completato")
return
}

function editor(){
editor=$(zenity --width=500 --entry --text "Scegli l'editor di testo con il quale vuoi aprire lo script" --title "Scelta editor")
return
}

function seleziona_editor(){
seleziona_editor=$(zenity --width=500 --error --no-wrap --text "Devi selezionare un'editor!" --title "Seleziona un'editor")
return
}

function uscita(){
uscita=$(zenity --width=500 --info --no-wrap --text "Fine" --title "Uscita")
return
}

# Qui sono suddivise le azione di fare a seconda dell'opzione selezionata in precedenza
scelta

if [ $(echo $scelta | grep "1") ]
then
nomescript

if [[ $nomescript != "" ]]
then
installa
chmod +x $HOME/script/$nomescript
cp $HOME/script/$nomescript /usr/local/bin/
installati
else
seleziona_script
fi
fi


if [ $(echo $scelta | grep "2") ]
then
nomescript

if [[ $nomescript != "" ]]
then
rimuovi
rm /usr/local/bin/$nomescript
rimosso
else
seleziona_script
fi

fi

if [ $(echo $scelta | grep "3") ]
then
nomescript
if [[ $nomescript != "" ]]
then
backupping
cp $HOME/script/$nomescript $HOME/backup/
backupped
else
seleziona_script
fi
fi


if [ $(echo $scelta | grep "4") ]
then
nomescript
if [[ $nomescript != "" ]]
then
ripristino
cp $HOME/backup/$nomescript /usr/local/bin/
ripristinato
else
seleziona_script
fi
fi



if [ $(echo $scelta | grep "5") ]
then
nomescript
editor
if [[ $editor == "" ]]
then
seleziona_editor
exit
else
if [[ $nomescript != "" ]]
then
$editor $HOME/script/$nomescript &
exit
else
seleziona_script
fi

fi

fi

if [ $(echo $scelta | grep "6") ]
then
uscita
fi



Come faccio ad allegare il file .deb?

weseven
17-02-2008, 15:41
al posto di tutti gli if then, fare un bel case?

psykopear
17-02-2008, 15:44
Originariamente inviato da weseven
al posto di tutti gli if then, fare un bel case?

Si in effeti era più veloce, però mi stavo impicciando con zenity e non ho badato molto alla parte sotto. Al più presto lo riadatto, tipo il sirm non grafico


#!/bin/bash

###############################################
# #
# SIRM2 Script Install & Remove Manager 2.2 #
# #
###############################################

#Crea le cartelle necessarie allo script se non esistono (thanks to vortex87)
[ -d "$HOME/backup" ] || mkdir $HOME/backup
[ -d "$HOME/script" ] || mkdir $HOME/script

# Verifica che l'utente abbia permessi di root

ROOT_UID=0

if [ "$UID" != "$ROOT_UID" ]
then
echo "Devi essere root per eseguire questo script."
exit
fi

#Qui sotto le funzioni di sirm2

usage () {
echo "Questo è l'help di sirm2:
Una volta avviato, segui le istruzioni per eseguire le operzioni richieste"
exit 1
}

#Qui sotto l'utilizzo delle funzioni
while [[ "$1" != "" ]]; do
case "$1" in
"-h" ) usage ;;
"--help" ) usage ;;
esac
shift
done

#Qui sotto sirm e le sue utilità

echo "SIRM 2.0. Script Install & Remove Manager versione 2.0.3"
echo "Cosa vuoi fare?"
echo "1) Installare uno script (deve essre in $HOME/script/)"
echo "2) Rimouvere uno script"
echo "3) Fare il backup di uno script in $HOME/backup/ "
echo "4) Ripristinare uno script salvato in $HOME/backup/ "
echo "5) Apri uno script nella cartella $HOME/script/ con un editor di testo"
echo "6) Uscire"
echo "Digita il numero corrispondente all'operazione"
read scelta
case $scelta in
1)
echo "Digita il nome dello script da installare"
read elencosript
chmod +x $HOME/script/$elencosript
cp $HOME/script/$elencosript /usr/local/bin/
echo "Installati gli script sul tuo computer"
echo "Ora puoi avviarli digitandone il relativo nome (script1, script2 ecc)"
;;
2)
echo "Digita il nome dello script da rimuovere"
read elencosript
rm /usr/local/bin/$elencosript
echo "Rimossi gli script sul tuo computer"
echo "Fine"
;;
3)
echo "Digita il nome dello script (che deve essere in $HOME/script/ )"
read miofile
cp $HOME/script/$miofile $HOME/backup/
echo "Script salvato"
;;
4)
echo "Digita il nome dello script di backup che vuoi ripristinare"
read script
cp $HOME/backup/$script /usr/local/bin/
echo "Script ripristinato"
;;
5)
echo "Digita il nome dello script che vuoi aprire"
read script
echo "Ora digita il nome del tuo editor di testo predefinito (per esempio nano, gedit, kwrite)"
read editor
if [[ $editor == "" ]]
then
nano $HOME/script/$script
exit
fi
$editor $HOME/script/$script &
exit
;;
6)
echo "Ciao"
exit
;;
*)
echo "input non valido"
esac


Un sito per uploadare il file da far scaricare qui?

psykopear
17-02-2008, 16:25
Per chi ha fastweb questa versione la può scaricare all'indirizzo ftp://23.235.124.237/

Però solo momentaneamente, purtroppo non posso tenere sempre acceso il computer per fare da server. Ci sono i pacchetti .deb e .rpm, ripeto però che è solo per chi ha faswteb perchè non mi posso pagare l'ip pubblico

vortex87
17-02-2008, 17:18
Io credo che non sarebbe male almeno spiegare cosa sono e a cosa servono :stordita:
E poi uno spazio su altervista.org o netsons.org è gratis :stordita:

psykopear
17-02-2008, 17:26
Originariamente inviato da vortex87
Io credo che non sarebbe male almeno spiegare cosa sono e a cosa servono :stordita:
E poi uno spazio su altervista.org o netsons.org è gratis :stordita:

non è che ho molto tempo per gestire un sito, e poi non credo ce ne sia bisogno.

Comunque hai ragione :D

Altro non è che un script che serve a gestire gli script, ovvero:
Installa una script presente nella cartell script nella cartella home (che viene creata se non c'è) in /usr/local/bin
Rimuove gli script precedentemente installati
Fa il bakup degli script nella cartella backup nella home (se non c'è viene creata)
Ripristina il file di backup
Apre uno script con l'editor di testo scelto

Quello con gui è ancora nettamente da sistemare, quello per via di comando è sufficentemente funzionale

vortex87
17-02-2008, 17:29
Anche senza creare un sito potresti comunque ospitare lì i pacchetti.

psykopear
17-02-2008, 17:31
Originariamente inviato da vortex87
Anche senza creare un sito potresti comunque ospitare lì i pacchetti.

si appena ho un po di tempo lo faccio. Però prima preferisco fare una versione della gui decente, e poi metto online

psykopear
19-02-2008, 01:25
Allora, ecco il pacchetto .deb, quando trovo un servizio di hosting appena più decente metto anche gli rpm e lo slackware. Purtroppo per ora il programmino è vincolato a sudo, se avete idee per sistemarlo sono sempre gradite (a parte il mettere case al posto di tutti quegli if che è la prossima modifica in progetto).

http://www.megaupload.com/it/?d=RMPSFAED

psykopear
03-01-2009, 00:36
Giusto per info, lo sviluppo è andato avanti (moooolto lentamente), sono giunto ad una versione 0.2 del programma, per ora pacchettizzato solo per arch, eccovi il pkgbuild se siete interessati (da li si possono sempre prendere i comandi per installare il tutto su qualunque altra distro)



# Contributor: Psykopear <psykopear@gmail.com>
pkgname=sirmgui
pkgver=0.2
pkgrel=2
pkgdesc="The gui edition of sirm2, a script manager"
arch=('i686' 'x86_64')
url="http://psykopear.altervista.org"
license=('GPL2')
depends=('gksu' 'bash' 'zenity' 'gtkdialog')
source=(http://psykopear.altervista.org/download/sirmgui/$pkgname-$pkgver.tar.gz)
md5sums=('8126977e1d7681e42c7d0df815069671')


build () {
cd "$startdir/src"
mkdir $startdir/pkg/usr/
mkdir $startdir/pkg/usr/share/
mkdir $startdir/pkg/usr/share/sirmgui/
mkdir $startdir/pkg/usr/share/sirmgui/config/
mkdir $startdir/pkg/usr/share/sirmgui/action/
install -D -m755 sirmgui $startdir/pkg/usr/bin/sirmgui
install -D -m755 ./action/install $startdir/pkg/usr/share/sirmgui/action/
install -D -m755 ./action/remove $startdir/pkg/usr/share/sirmgui/action/
install -D -m755 ./action/backup $startdir/pkg/usr/share/sirmgui/action/
install -D -m755 ./action/restore $startdir/pkg/usr/share/sirmgui/action/
install -D -m755 ./action/edit $startdir/pkg/usr/share/sirmgui/action/
install -D -m755 menu $startdir/pkg/usr/share/sirmgui/
}

Praticamente per altre distro basta scaricare i file dall'inidirizzo indicato (cambiando le variabili), e spostare il contenuto dell'archivio in /usr/share/sirmgui/ (e le varie sottocartelle organizzate come vedete nella sezione build()), ad esclusione del file sirmgui, che va messo in /usr/bin

Ora l'interfaccia grafica è fatta prevalentemente con gtkdialog, anche se ci sono ancora alcune parti fatte con zenity.

Loading