News:

Scarica subito LibreOffice 24.2 ancora più compatibile con la nota suite per ufficio commerciale.

Menu principale

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

nessuno

slackpkg info "nomepacchetto"
slackpkg search ...
slackpkg file search ...
slackpkg install ...
slackpkg remove


Questa è sostanzialmente la "parte" di cui parlavo.

Riguardo a Slurp io ci tengo moltissimo che rimanga così semplice, non a caso l'ho definito "slackpkg updates manager" (guarda il logo nella mia firma), il suo compito son gli updates . Per questo non ho neanche tentato di inserirci altro all'epoca.
L'idea era già allora quella di fare un secondo script/programma.

Tu però sentiti libero di modificare slurp a tuo piacimento, è sufficiente che lo chiami con un altro nome (possibilmente completamente diverso) per non confonderlo con l'originale. A me certamente non dispiace.

In ogni caso Slackpkg Kommander nascerà con questo nome e farà le operazioni che ho elencato più su,  anche se mi riservo di consultare prima le pagine man di slackpkg.

L'unica incognita è se tu vuoi farne parte, oppure no. Nel primo caso mi fa molto piacere, nel secondo me ne farò una ragione (...e lo farò da solo).

E' tutto più chiaro adesso?..  ;)

:ciao:

trigg

 1) Aggiorna Sistema ---->(comandi ,slackpkg update gpg ,slackpkg check-updates, slackpkg update , slackpkg upgrade-all )
2) Configura slackpkg ----> (comandi , Configura slackpkplus ,Seleziona un Mirror, Edita la blacklist di slackpkg)
3) Gestione Pacchetti ----> (comandi , slackpkg info ..., slackpkg search ..., slackpkg file-search ..., slackpkg install/remove .... , upgradepkg --install-new ...)
4) Deb to txz
5) Esci

fare un menu principale con i sub-menu dei comandi




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

nessuno


...Va bene. Ho capito. Lo farò da solo.

Riguardo a debtotxz già esiste: https://slackbuilds.org/repository/14.2/misc/deb2tgz/

Personalmente solo una volta ho convertito un deb in tgz, in genere preferisco compilarlo dai sorgenti, comunque è ritenuta una pratica sconsigliabile.
In ogni caso, quando anche io ne facessi un uso tale da dovermi preoccupare di velocizzare il procedimento, farei un'azione di thunar, che è molto più semplice e comoda da usare.

Aspetto di vedere lo script che c'è dietro la schermata che hai postato prima

P.S.

deb2tgz è anche lui basato su uno script, questo:

#!/bin/sh
# Copyright 2016 Vitor Borrego, Corroios, Portugal
# Heavily based on deb2tgz (https://code.google.com/archive/p/deb2tgz/) created by Marcos Henrique Esteves Barbosa
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
CURRDIR=$(pwd)

if [ "$1" = "" ]; then
    echo "$0:  Converts DEB format to standard GNU tar + (GZ/XZ/LZ/BZ) format."
    echo "    (view converted packages with \"less\", install and remove"
    echo "    with \"installpkg\", \"removepkg\", \"pkgtool\", or manually"
    echo "    with \"tar\")"
    echo
    echo "Usage:    $0 <file.deb>"
    echo "    (Outputs \"file.t*z\")"
    exit 1;
fi

# Create a new temporary directory with a secure filename:
make_temp_dir()
{
    if [ -x "$(which mcookie)" ]; then
        tempd=/tmp/tmp.$(mcookie)
        mkdir -p -m 0755 $tempd
    elif [ -x "$(which openssl)" ]; then
        tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | openssl dgst -md5)
        mkdir -p -m 0755 $tempd
    elif [ -x "$(which md5)" ]; then
        tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | md5)
        mkdir -p -m 0755 $tempd
    elif [ -x "$(which mktemp)" ]; then
        tempd=$(mktemp -d)
        chmod 755 $tempd
    fi

    if [ -d $tempd ]; then # success, return the name of the directory:
        echo $tempd
    else
        echo "ERROR:  Could not find mcookie, openssl, or md5."
        echo "        Exiting since a secure temporary directory could not be made."
       exit 1
    fi
}

for debfile in $* ; do
    # Create a temporary directory:
    TMPDIR=$(make_temp_dir)

    # Extract the DEB:
    # Extract the file data.* from package $debfile
    cp $debfile $TMPDIR
    cd $TMPDIR
    ar x $debfile 2> /dev/null
    # echo $TMPDIR
    # ls $TMPDIR
    #mv $DATAFILE $TMPDIR
    if [ ! $? = 0 ]; then
        echo "ERROR:  ar failed. (maybe $debfile is not an DEB?)"
        rm -rf $TMPDIR
        continue
    fi

    # Repack the files in the right archive:
    if [ "`basename $0`" = "deb2tgz" ]; then
        if [ -f "$TMPDIR/data.tar.gz" ]
        then
          mv $TMPDIR/data.tar.gz $CURRDIR/$(basename $debfile .deb).tgz
        fi

        if [ -f "$TMPDIR/data.tar.xz" ]
        then
          mv $TMPDIR/data.tar.xz $CURRDIR/$(basename $debfile .deb).txz
        fi

        if [ -f "$TMPDIR/data.tar.bz2" ]
        then
          mv $TMPDIR/data.tar.bz2 $CURRDIR/$(basename $debfile .deb).tbz
        fi

        if [ -f "$TMPDIR/data.tar.lzma" ]
        then
          mv $TMPDIR/data.tar.lzma $CURRDIR/$(basename $debfile .deb).tlz
        fi
    fi

    # Remove temporary directory:
    rm -rf $TMPDIR
done
cd $CURRDIR



trigg

questa è la bozza dello script è solo da completare
seguendo i passaggi del ***************** Sub AS********************

#!/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=("Aggiorna Sistema" "Configura Slackpkg+" "Gestione Pacchetti" "Deb to Txz" "Esci")

################### subAS ######################

AS () {
echo "Seleziona il numero della tua scelta"
AS=("Menu" "slackpkg update gpg " "slackpkg check-updates " "slackpkg update " "slackpkg install-new" "slackpkg upgrade-all "  )
PS3="> "
select mopt in "${AS[@]}"
do
     case $mopt in
"${AS[0]}") echo "Menu Principale"
break
    ;;
         "${AS[1]}") echo "slackpkg update gpg "
slackpkg update gpg
REPLY=
        ;;
         "${AS[2]}")  echo "slackpkg check-updates "
slackpkg check-updates
REPLY=
              ;;
         "${AS[3]}")  echo "slackpkg update "
slackpkg update
REPLY=
              ;;
         "${AS[4]}")  echo "slackpkg install-new "
slackpkg install-new
REPLY=
              ;;
         "${AS[5]}")  echo "slackpkg upgrade-all "
slackpkg upgrade-all
REPLY=
              ;;


*) REPLY=
;;
     esac
done
}

###################################### Sub CSP ############################

CSP () {
echo "Seleziona il numero della tua scelta"
CSP=("Menu" )
PS3="> "
select mopt in "${CSP[@]}"
do
     case $mopt in
"${CSP[0]}") echo echo "Menu Principale"
break
    ;;
*) REPLY=
;;
     esac
done
}

########################### Gestione GP #################################

GP () {
echo "Seleziona il numero della tua scelta"
         GP=("Menu" )
PS3="> "
select mopt in "${GP[@]}"
do
     case $mopt in

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

######################################### DTT ###############################

DTT () {
echo "Seleziona il numero della tua scelta"
         DTT=("Menu" )
PS3="> "
select mopt in "${DTT[@]}"
do
     case $mopt in

"${DTT[0]}") 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
                    AS
                    REPLY=
            ;;
            "${options[1]}")
                   CSP
                    REPLY=
            ;;
            "${options[2]}")
                   GP
                    REPLY=
            ;;
            "${options[3]}")
                   DTT
                    REPLY=
    ;;
            # Continua con le altre funzioni
            #
            "${options[-1]}") 
                    clear
                    exit
            ;;
        esac
    done

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

nessuno

Non mi sembra neanche male come idea, certo non è ancora completato, è ancora parecchio in disordine, ma si può riordinare.

Se lo script lo fai solo per il tuo uso personale fallo pure come vuoi, tanto lo usi solo tu.

Se lo fai anche per gli altri considera questo consiglio: evita di aggiungerci debtotxz.

A parte che è assolutamente inutile, e lo dico da utente Slackware, ma è anche potenzialmente pericoloso se usato da chi non ha le idee chiare su Slackware prima e su quello che sta per fare immediatamente dopo.

Capisco che ormai l'hai fatto e sei "preso", come successe con le scorciatoie da tastiera: con le quali pretendevi di risolvere qualsiasi cosa, come se fosse semplice ricordarsele tutte, e per le quali rifiutasti di prendere in considerazione soluzioni più semplici e immediate. Una sorta di panacea...

La necessità di convertire un deb in txz è una cosa che torna utile così raramente (anche mai) che inserirla in uno script del genere, a parte i rischi che comporta per il sistema, corre anche il rischio di sottrarre spazio e visibilità a cose molto più utili e importanti.

Le mie considerazioni e le mie critiche vogliono essere costruttive, se non è così che le vedi basta farmelo sapere e io farò a meno di parlare la prossima volta. ;)

trigg

lo script non è in disordine è solo impostato

bisogna solo completarlo ed è aperto ad ogni possibile personalizzazione

diciamo che è è come il marmo di michelangelo bisogna solo togliere l'eccesso per realiare l'opera

questa bozza la si può fare liberamente come si vuole  :ciao:
se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...

nessuno

Per "in disordine" intendevo questo:

Seleziona il numero della tua scelta
1) Menu     4) slackpkg update
2) slackpkg update gpg     5) slackpkg install-new
3) slackpkg check-updates   6) slackpkg upgrade-all
>


Converrai con me che la sequenza dei comandi non segue certamente un ordine logico, neanche coerente.

Però, come già sottolineavi tu, è solo un accenno...

Comunque quello che avevo in mente io erano script distinti, ognuno con il suo compito, richiamabili con una voce apposita all'interno degli altri script, ma eseguibili singolarmente a seconda dell'esigenza del momento e,
grazie alla pacchettizzazione di Slackware. installabili con un unico pacchetto.
Tra questi pacchetti che compongono la suite anche  un mini-manuale che chiarisse, in modo conciso, le funzioni e lo scopo dei comandi richiamabili dal programma.

Questo perché ci tengo in modo particolare che il tutto sia strettamente fedele alla filosofia K.I.S.S. così come la intende Slackware.
Questa per me è una condicio sine qua non. Vale a dire che se non lo posso fare così non mi interessa farlo.