Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Gestore script GUI

  1. #1

    Gestore script GUI

    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

    codice:
    #!/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?
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  2. #2
    al posto di tutti gli if then, fare un bel case?

  3. #3
    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

    codice:
    #!/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?
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  4. #4
    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
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  5. #5
    Io credo che non sarebbe male almeno spiegare cosa sono e a cosa servono
    E poi uno spazio su altervista.org o netsons.org è gratis

  6. #6
    Originariamente inviato da vortex87
    Io credo che non sarebbe male almeno spiegare cosa sono e a cosa servono
    E poi uno spazio su altervista.org o netsons.org è gratis
    non è che ho molto tempo per gestire un sito, e poi non credo ce ne sia bisogno.

    Comunque hai ragione

    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
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  7. #7
    Anche senza creare un sito potresti comunque ospitare lì i pacchetti.

  8. #8
    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
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  9. #9
    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
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  10. #10
    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)

    codice:
    # 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.
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.