# [SCRIPT] USE description & ChangeLog Viewer 0.8.9 viewcl

## _sys/sid

Ho fatto questi due piccoli script (1 veramente non e' uno script ma e' un alias).

Non mi sembra di aver trovato queste funzioni da nessuna parte percio' ecco qui gli script.

USE description:

Questo non e' un vero e proprio script... infatti e' dato come alias di un comando

percui mettete questa linea di 'codice' in '/etc/profile' o nel file '.bashrc' della

vostra home.

```
alias usedesc='cat /usr/portage/profiles/use* | grep'
```

Dopo aver incollato questa riga nel/nei file detti in precedenza date:

```
$ source /etc/profile
```

Questo comando si usa in questo modo (se non avete capito)

```
$ usedesc kde
```

che mostrera' il significato della variabile kde...

Questo funziona con tutte le variabili di USE di gentoo.

view ChangeLog 0.8.9 (viewcl)

Questo invece e' lo script. http://gensid.altervista.org/devel/dev-sh/viewcl/viewcl.sh

permette di andare a vedere i ChangeLog che vi interessano direttamente senza

andare nelle varie directory del portage. Non e' una gran cosa ma penso sia utile.

```

#!/bin/bash

# Gentoo (Portage) ChangeLog Viewer. 0.8.9

#

# Salvate questo script come 'changelog' in una direcory del tipo '/usr/bin'

# o comunque una directory eseguibile.

# Entrate nella directory dove avete salvato questo file 

# e date il comando 'chmod 755 changelog'

PROGRAM_NAME="viewcl"

PROGRAM_VERSION="0.8.9"

COLOR_DEFAULT='\033[0m'

COLOR_WHITE='\33[01;37m'

COLOR_LRED='\033[1;31m'

COLOR_LGREEN='\033[1;32m'

COLOR_LYELLOW='\033[1;33m'

SYMBOL_OK="${COLOR_LGREEN} *${COLOR_DEFAULT}"

SYMBOL_ER="${COLOR_LRED} *${COLOR_DEFAULT}"

SYMBOL_WR="${COLOR_LYELLOW} *${COLOR_DEFAULT}"

# Find $PORTDIR in /etc/make.conf or in /etc/make.globals...

# Default $PORTDIR = "/usr/portage"

if [ -f "/etc/make.conf" ]; then

   source /etc/make.conf

   if [ -f ${PORTDIR} ]; then

      if [ -f "/etc/make.globals" ]; then

         if [ -f ${PORTDIR} ]; then

            PORTDIR="/usr/portage"

         fi

      fi

   fi

else

   if [ -f "/etc/make.globals" ]; then

      if [ -f ${PORTDIR} ]; then

         PORTDIR="/usr/portage"

      fi

   fi

fi

# Print Help, Usage and Info...

chlogviewer_usage() {

   echo "ChangeLog Viewer ${PROGRAM_VERSION}"

   echo

   echo -e "${COLOR_WHITE} Usage:${COLOR_DEFAULT}"

   echo "    ${PROGRAM_NAME} [ app name ] [ ... ]"

   echo "    ${PROGRAM_NAME} --dir='<dir>' [ app name ] [ ... ]"

   echo

   echo -e "${SYMBOL_WR} Use Options '--dir=<dir>' for change ChangeLog find dir."

   echo

   echo

   echo -e "${COLOR_WHITE} Examples:${COLOR_DEFAULT}"

   echo "    ${PROGRAM_NAME} x11-wm/fluxbox"

   echo "    ${PROGRAM_NAME} fluxbox xorg-x11 mm-sources"

   echo "    ${PROGRAM_NAME} --dir='/usr/local/overlays' nitro-sources"

   echo

   echo -e "${SYMBOL_WR} Portage Dir: '${PORTDIR}'"

   echo

   echo

   echo "Report Bugs to <matteo_bertozzi@bsdmail.com>"

   echo

}

# 'Search' and 'print' ChangeLog.

get_ChangeLog() {

   chk_dir=$(echo ${1} | grep '/')

   if [ "${chk_dir}" = '' ]; then

      PATH_CHANGELOG="*/${1}"

   else

      PATH_CHANGELOG="${1}"

   fi

 

   if [ -s ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog ]; then

      echo -e "${SYMBOL_OK} '${1}' Changelog"

      cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog | less

   else

      echo -e "${SYMBOL_ER} '${1}' ChangeLog Not Found..."

      sleep ${2}

   fi

}

# M A I N

if [ $# -gt 0 ]; then

   time=1

   if [ $# -eq 1 ]; then

      time=0

   fi

   for argv in $@; do

      case "${argv}" in

         --dir=*) PORTDIR=$(echo ${argv} | cut -d '=' -f 2-)

                if [ $# -eq 2 ]; then

                  time=0

                fi

                break;;

         --help) chlogviewer_usage

               exit 0;;

      esac

   done

   

   # Loop for print ChangeLog.

   for app in $@; do

      if [ "$(echo ${app} | cut -d '=' -f 1-1)" != "--dir" ]; then

         get_ChangeLog ${app} ${time}

      fi

   done

else

   chlogviewer_usage

fi

```

Questo programma ha un funzionamente simile a emerge:

la sintassi e' changelog nomePacchetto.

Sarebbe meglio specificare la cartella in cui si trova il pacchetto:

```

Es.

   changelog dev-lang/python

   changelog sys-kernel/gentoo-dev-sources

```

ma e' anche possibile dare solo il nome del pacchetto:

```

Es.

   changelog python

   changelog gentoo-dev-sources

```

Il Risultato e' uguale...

Grazie per l'attenzione.

Spero questi script vi siano utili.

Se Avete qualche idea per migliorarli postate.

----------

## fedeliallalinea

La prima funzione c'e' con il comando

```
$ euse nome_use
```

nel pacchetto gentoolkit.

La seconda non mi pare che ci sia ma la trovo molto interessante. Al massimo la possiamo aggiungere nel gekit?

----------

## _sys/sid

Aggiungere  !!!   :Very Happy: 

----------

## .:deadhead:.

complimenti... Evvai che il gekit ruleggerà in portage come non mai! Da aggiungere lo script per il changelog, si si!  :Cool: 

----------

## FonderiaDigitale

ma il changelog non si vede con 

```
emerge -l pacchetto
```

?

----------

## _sys/sid

```

# emerge -l fluxbox

>>> --changelog implies --pretend... adding --pretend to options.

These are the packages that I would merge, in order:

Calculating dependencies ...done!

[ebuild   R   ] x11-wm/fluxbox-0.9.9

```

----------

## codadilupo

 *FonderiaDigitale wrote:*   

> ma il changelog non si vede con 
> 
> ```
> emerge -l pacchetto
> ```
> ...

 

```
coda@Saltatempo coda $ emerge -l kde

>>> --changelog implies --pretend... adding --pretend to options.

These are the packages that I would merge, in order:

Calculating dependencies ...done!

[ebuild   R   ] kde-base/kde-3.2.3

coda@Saltatempo coda $
```

beh, mi aspettavo qualcosa di piu'  :Laughing: 

Coda

----------

## xchris

l'opzione -l funziona quando un pacchetto e' da upgradare

es:

```

root@lyra xchris # emerge -Dulp xv

These are the packages that I would merge, in order:

Calculating dependencies ...done!

[ebuild     U ] media-gfx/xv-3.10a-r7 [3.10a-r6]

*xv-3.10a-r7

  02 Sep 2004; Tavis Ormandy <taviso@gentoo.org> +metadata.xml,

  -xv-3.10a-r3.ebuild, -xv-3.10a-r5.ebuild, -xv-3.10a-r6.ebuild,

  +xv-3.10a-r7.ebuild:

  fix security issues reported in #61619.

  vulnerable versions removed.

  meatadata.xml added with me named as new maintainer.

 [cut]

```

ciao

----------

## fedeliallalinea

Lo aggiungo al gekit e l'ho chiamato viewcl per il momento se vuoi dargli un'altro nome fammi sapere. Se puoi fai il TODO README COPING e ChangeLog

----------

## federico

Per essere un po' piu' precisi l'alias proposto non e' che c'e' gia' con euse (euse -i flag) ma proprio non funziona come previsto!!

```

blackman@altair ~ $ usedesc xv

xv - Adds in optional support for the Xvideo extension (an X API for video playback)

xvid - Adds support for xvid.org's open-source mpeg-4 codec

media-video/mplayer:i8x0 - Enables support for the i8x0 xvmc video driver

media-video/mplayer:nvidia - Enables support for the nvidia xvmc video driver

media-video/mplayer:xvmc - Enables X-Video Motion Compensation support

x11-terms/rxvt-unicode:xgetdefault - Enable resources via X instead of rxvt small version

x11-terms/rxvt:xgetdefault - Enable resources via X instead of rxvt small version

blackman@altair ~ $ 

```

```

blackman@altair ~ $ euse -i xv

xv [+] [D] [G] Adds in optional support for the Xvideo extension (an X API for

               video playback)

blackman@altair ~ $ 

```

----------

## paolo

Io al "changelog", cmq, intanto farei prelevare PORTAGE_DIR da make.conf  :Smile: 

----------

## _sys/sid

Sto' Provvedendo..

----------

## _sys/sid

Fatto.. C'e' da Testarlo.. Da me' funziona... con PORTDIR in /etc/make.globals...

```

#!/bin/bash

# Salvate questo script come 'changelog' in una direcory del tipo '/usr/bin' 

# o comunque una directory eseguibile. 

# Entrate nella directory dove avete salvato questo file 

# e date il comando 'chmod 755 changelog' 

#

# This program is free software; you can redistribute it and/or modify

# it under the terms of the GNU General Public License as published by

# the Free Software Foundation; either version 2 of the License, or

# (at your option) any later version.

#

# This program is distributed in the hope that it will be useful,

# but WITHOUT ANY WARRANTY; without even the implied warranty of

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

# GNU Library General Public License for more details.

#

# You should have received a copy of the GNU General Public License

# along with this program; if not, write to the Free Software

# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

# Check PORTAGE_DIR in /etc/make.conf and in /etc/make.globals

# and check PORTDIR in /etc/make.conf and in /etc/make.globals

PORTAGE_DIR="/usr/portage"

if [ -f "/etc/make.conf" ]; then

 . /etc/make.conf

 if [ "$PORTAGE_DIR" != '' ]; then

  PORTAGE_DIR=$PORTAGE_DIR

 else  

  if [ "$PORTDIR" != '' ]; then

   PORTAGE_DIR=$PORTDIR

  else   

   if [ -f "/etc/make.globals" ]; then

    . /etc/make.globals

    if [ "$PORTDIR" != '' ]; then

     PORTAGE_DIR=$PORTDIR     

    else 

     if [ "$PORTAGE_DIR" != '' ]; then

      PORTAGE_DIR=$PORTAGE_DIR

     fi

    fi

   fi

  fi

 fi

fi

get_ChangeLog() {

 chk_dir=$(echo $1 | grep '/')

 if [ "$chk_dir" = '' ]

 then

  PATH_CHANGELOG="*/$1"

 else

  PATH_CHANGELOG="$1"

 fi

 

 cat $PORTAGE_DIR/$PATH_CHANGELOG/ChangeLog | less

}

if [ $# -gt 0 ]

then

 get_ChangeLog $1

else

 echo "ChangeLog 0.4"

 echo

 echo "Usage:"

 echo "  changelog [ app name ]"

 echo

fi

```

Lo script incomincia a diventare un po' pasticciato...

Se ho tempo lo rifaccio con il viscido.. (Python)   :Laughing: 

----------

## _sys/sid

Comunque la variabile di path del portage non e' PORTAGE_DIR ma PORTDIR...

Pero' nello script ho messo anche il supporto alla variabile PORTAGE_DIR   :Laughing: 

----------

## xchris

```

root@lyra xchris # viewcl gekit

cat: /usr/portage/*/gekit/ChangeLog: No such file or directory

```

fai un controllo sull'esistenza del file  :Smile: 

ciao

----------

## Pythonhead

Sorry, but I don't speak Italian. I like the script and have one suggestion. Some people (developers mostly) don't have everything in /usr/portage 

If you change this:

```
PORTAGE_DIR="/usr/portage"
```

to:

```
source /etc/make.conf
```

Then you can use PORTDIR instead of PORTAGE_DIR and get the real directory.

Thanks for the nice script.

----------

## _sys/sid

Ho inserito quello che mi avete detto...

Ma non so' come risolvere la verifica del percorso...

Soprattutto quando ho i percorsi con *...

```

#!/bin/bash

# Check PORTAGE_DIR in /etc/make.conf and in /etc/make.globals

# and check PORTDIR in /etc/make.conf and in /etc/make.globals

PORTAGE_DIR="/usr/portage"

if [ -f "/etc/make.conf" ]; then

 source /etc/make.conf

 if [ -f $PORTDIR ]; then

  if [ -f "/etc/make.conf" ]; then

   if [ -f $PORTDIR ]; then

    PORTDIR="/usr/portage"

   fi  

  fi

 fi

else

 if [ -f "/etc/make.conf" ]; then

  if [ -f $PORTDIR ]; then

   PORTDIR="/usr/portage"

  fi  

 fi

fi

get_ChangeLog() {

 chk_dir=$(echo $1 | grep '/')

 if [ "$chk_dir" = '' ]

 then

  PATH_CHANGELOG="*/$1"

 else

  PATH_CHANGELOG="$1"

 fi

 

 # ??? HELP

 #if [ -f "${PORTDIR}/${PATH_CHANGELOG}/ChangeLog" ]; then

  cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog | less

 #fi

}

if [ $# -gt 0 ]

then

 get_ChangeLog $1

else

 echo "ChangeLog 0.5"

 echo

 echo "Usage:"

 echo "  changelog [ app name ]"

 echo

fi

```

Non lo provato molto...

----------

## fedeliallalinea

Per il controllo qualcosa del genere anche se ci sara' un modo migliore

```
cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog &> /dev/null

if [ $? = 0 ]; then

  cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog | less 

else

  echo ChangeLog not found

fi
```

----------

## mriya3

I aggiungerei la possibilità di specificare più pacchetti,

cambiando l'ultima parte dello script, ovvero:

```

if [ $# -gt 0 ]

then

   for app in $@ do

     get_ChangeLog $app

   done

else

   echo "ChangeLog 0.4"

   echo

   echo "Usage:"

   echo "  changelog [ app name ]"

   echo

fi 

```

----------

## fedeliallalinea

Come suggeritomi da mriya3 per controllare il file meglio

```
if [ -s ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog ]; then

  cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog | less

else

  echo ChangeLog not found

fi
```

----------

## _sys/sid

Sistemato il Controllo come ha detto fedeliallalinea.

```

# Check PORTAGE_DIR in /etc/make.conf and in /etc/make.globals

# and check PORTDIR in /etc/make.conf and in /etc/make.globals

PORTAGE_DIR="/usr/portage"

if [ -f "/etc/make.conf" ]; then

 source /etc/make.conf

 if [ -f $PORTDIR ]; then

  if [ -f "/etc/make.conf" ]; then

   if [ -f $PORTDIR ]; then

    PORTDIR="/usr/portage"

   fi  

  fi

 fi

else

 if [ -f "/etc/make.conf" ]; then

  if [ -f $PORTDIR ]; then

   PORTDIR="/usr/portage"

  fi  

 fi

fi

get_ChangeLog() {

 chk_dir=$(echo $1 | grep '/')

 if [ "$chk_dir" = '' ]

 then

  PATH_CHANGELOG="*/$1"

 else

  PATH_CHANGELOG="$1"

 fi

 

 if [ -s ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog ]

 then 

  cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog | less 

 else 

  echo "ChangeLog not found."

  fi

}

if [ $# -gt 0 ] 

then 

 get_ChangeLog $app

else 

 echo "ChangeLog 0.5" 

 echo 

 echo "Usage:" 

 echo "  changelog [ app name ]" 

 echo 

fi

```

Per la visualizzazione di piu' changelog in una volta... Non so'...

Perche' risulterebbe tutto unico (quasi)

----------

## fedeliallalinea

 *_sys/sid wrote:*   

> Per la visualizzazione di piu' changelog in una volta... Non so'...
> 
> Perche' risulterebbe tutto unico (quasi)

 

No cambia solo ad ogni tasto q che schiacci. Provalo mette anche un errore che sta 2 secondi se non trova il pacchetto

```
#!/bin/bash

# Check PORTAGE_DIR in /etc/make.conf and in /etc/make.globals

# and check PORTDIR in /etc/make.conf and in /etc/make.globals

NORMAL='\033[0m'

RED='\033[1;31m'

GREEN='\033[1;32m'

if [ -f "/etc/make.conf" ]; then

 source /etc/make.conf

 if [ -f $PORTDIR ]; then

  if [ -f "/etc/make.conf" ]; then

   if [ -f $PORTDIR ]; then

    PORTDIR="/usr/portage"

   fi 

  fi

 fi

else

 if [ -f "/etc/make.conf" ]; then

  if [ -f $PORTDIR ]; then

   PORTDIR="/usr/portage"

  fi 

 fi

fi

get_ChangeLog() {

 chk_dir=$(echo $1 | grep '/')

 if [ "$chk_dir" = '' ]

 then

     PATH_CHANGELOG="*/$1"

 else

  PATH_CHANGELOG="$1"

 fi

 

 if [ -s ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog ]; then

  cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog | less

 else

  clear

  echo -e "$RED *$NORMAL $1 ChangeLog not found$NORMAL"

  sleep 2

 fi

}

if [ $# -gt 0 ]; then

   for app in $@; do

     get_ChangeLog $app

   done

else

   echo "ChangeLog 0.4"

   echo

   echo "Usage:"

   echo "  changelog [ app name ]"

   echo

fi 
```

----------

## shev

Ma il consiglio del developer Pythonhead v'è sfuggito o l'avete scartato volontariamente?

----------

## fedeliallalinea

 *shev wrote:*   

> Ma il consiglio del developer Pythonhead v'è sfuggito o l'avete scartato volontariamente?

 

Ma l'ha fatto solo che e' rimasta la linea PORTAGE_DIR="/usr/portage" . Comunque usa PORTDIR e non la variabile locale

----------

## shev

 *fedeliallalinea wrote:*   

>  *shev wrote:*   Ma il consiglio del developer Pythonhead v'è sfuggito o l'avete scartato volontariamente? 
> 
> Ma l'ha fatto solo che e' rimasta la linea PORTAGE_DIR="/usr/portage" . Comunque usa PORTDIR e non la variabile locale

 

 :Embarassed:  Scemo io, scusate. Avevo visto la variabile ancora presente e non avevo proseguito nella lettura. Mea culpa...

----------

## fedeliallalinea

 *shev wrote:*   

>  Scemo io, scusate. Avevo visto la variabile ancora presente e non avevo proseguito nella lettura. Mea culpa...

 

Ho editato l'ultimo mio post con script e ho tolto quella variabile  :Very Happy: 

----------

## _sys/sid

Io Toglierei quel 'clear' davanti al 'ChangeLog Not Found...' (a me' da fastidio)

PS: Il mio Prof. Di Sistemi (Sviluppatore Debian) Mi Ha Detto Che per programmi e tool di sistema che girano in console non si dovrebbe mai pulire lo schermo...

Non so' il motivo ma lui fa' cosi... e anche io...   :Very Happy: 

----------

## fedeliallalinea

 *_sys/sid wrote:*   

> PS: Il mio Prof. Di Sistemi (Sviluppatore Debian) Mi Ha Detto Che per programmi e tool di sistema che girano in console non si dovrebbe mai pulire lo schermo...
> 
> Non so' il motivo ma lui fa' cosi... e anche io...  

 

Ma questo per non cancellare qualche eventuale dato importante che viene scritto su shell ma visto che questo script non stampa niente di importante (a parte se non trova l'ebuild) si puo' lasciare. Almeno penso sia per questo

----------

## emix

 *fedeliallalinea wrote:*   

> Ma questo per non cancellare qualche eventuale dato importante che viene scritto su shell ma visto che questo script non stampa niente di importante (a parte se non trova l'ebuild) si puo' lasciare. Almeno penso sia per questo

 

Si, ma magari ti interessa ancora l'output di qualche comando che hai dato prima. Anche secondo me lo schermo non va mai cancellato.

----------

## fedeliallalinea

 *emix wrote:*   

> Si, ma magari ti interessa ancora l'output di qualche comando che hai dato prima. Anche secondo me lo schermo non va mai cancellato.

 

Ok vero ma allora mettere nello script qualche echo per andare a capo un po' di volte se no non si vede se non trova un changelog

----------

## _sys/sid

```

#!/bin/bash

# and check PORTDIR in /etc/make.conf and in /etc/make.globals

NORMAL='\033[0m'

RED='\033[1;31m'

GREEN='\033[1;32m'

if [ -f "/etc/make.conf" ]; then

 source /etc/make.conf

 if [ -f $PORTDIR ]; then

  if [ -f "/etc/make.globals" ]; then

   if [ -f $PORTDIR ]; then

    PORTDIR="/usr/portage"

   fi

  fi

 fi

else

 if [ -f "/etc/make.globals" ]; then

  if [ -f $PORTDIR ]; then

   PORTDIR="/usr/portage"

  fi

 fi

fi

get_ChangeLog() {

 chk_dir=$(echo $1 | grep '/')

 if [ "$chk_dir" = '' ]; then

     PATH_CHANGELOG="*/$1"

 else

  PATH_CHANGELOG="$1"

 fi

 

 if [ -s ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog ]; then

  cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog | less

 else

  echo -e "$RED *$NORMAL $1 ChangeLog not found$NORMAL"

  echo

  sleep 2

 fi

}

if [ $# -gt 0 ]; then

   for app in $@; do

     get_ChangeLog $app

   done

else

   echo "ChangeLog 0.6"

   echo

   echo "Usage:"

   echo "  changelog [ app name ]"

   echo

fi

```

Ho eliminato il clear e ho sistemato il make.globals...prima mettevo sempre make.conf

questo copia-incolla...  :Laughing: 

----------

## _sys/sid

```

#!/bin/bash

# and check PORTDIR in /etc/make.conf and in /etc/make.globals

NORMAL='\033[0m'

RED='\033[1;31m'

GREEN='\033[1;32m'

if [ -f "/etc/make.conf" ]; then

   source /etc/make.conf

   if [ -f $PORTDIR ]; then

      if [ -f "/etc/make.globals" ]; then

         if [ -f $PORTDIR ]; then

            PORTDIR="/usr/portage"

         fi

      fi

   fi

else

   if [ -f "/etc/make.globals" ]; then

      if [ -f $PORTDIR ]; then

         PORTDIR="/usr/portage"

      fi

   fi

fi

get_ChangeLog() {

   chk_dir=$(echo $1 | grep '/')

   if [ "$chk_dir" = '' ]; then

      PATH_CHANGELOG="*/$1"

   else

      PATH_CHANGELOG="$1"

   fi

 

   if [ -s ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog ]; then

      cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog | less

   else

      echo -e "$RED *$NORMAL $1 ChangeLog not found...${NORMAL}"

      echo

      sleep $2

   fi

}

if [ $# -gt 0 ]; then

   time=$(expr $# - 1)

   for app in $@; do

      get_ChangeLog ${app} ${time}

   done

else

   echo "ChangeLog 0.7"

   echo

   echo "Usage:"

   echo "   changelog [ app name ] ..."

   echo

fi

```

Una modifica al tempo...   :Laughing: 

----------

## _sys/sid

un paio di particolari stupidi...   :Laughing: 

```

#!/bin/bash

# and check PORTDIR in /etc/make.conf and in /etc/make.globals

NORMAL='\033[0m'

RED='\033[1;31m'

GREEN='\033[1;32m'

WHITE='\33[01;37m'

if [ -f "/etc/make.conf" ]; then

   source /etc/make.conf

   if [ -f ${PORTDIR} ]; then

      if [ -f "/etc/make.globals" ]; then

         if [ -f ${PORTDIR} ]; then

            PORTDIR="/usr/portage"

         fi

      fi

   fi

else

   if [ -f "/etc/make.globals" ]; then

      if [ -f ${PORTDIR} ]; then

         PORTDIR="/usr/portage"

      fi

   fi

fi

get_ChangeLog() {

   chk_dir=$(echo ${1} | grep '/')

   if [ "${chk_dir}" = '' ]; then

      PATH_CHANGELOG="*/${1}"

   else

      PATH_CHANGELOG="${1}"

   fi

 

   if [ -s ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog ]; then

      echo -e "${GREEN} *${NORMAL} '${1}' Changelog"

      cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog | less

   else

      echo -e "${RED} *${NORMAL} '${1}' ChangeLog Not Found..."

      sleep ${2}

   fi

}

if [ $# -gt 0 ]; then

   time=1

   if [ $# -eq 1 ]; then

      time=0

   fi

   

   for app in $@; do

      get_ChangeLog ${app} ${time}

   done

else

   echo "ChangeLog 0.8.3"

   echo

   echo -e "${WHITE} Usage:${NORMAL}"

   echo "    changelog [ app name ] [ ... ]"

   echo

   echo

   echo -e "${WHITE} Examples:${NORMAL}"

   echo "    changelog x11-wm/fluxbox"

   echo "    changelog fluxbox xorg-x11 mm-sources"

   echo

   echo -e "\033[1;33m *${NORMAL} Portage Dir: '${PORTDIR}'"

   echo

   echo

   echo "Report Bugs to <matteo_bertozzi@bsdmail.com>"

   echo

fi

```

----------

## fedeliallalinea

Non hai un sito dove potere metterlo? Se ce l'hai mettilo sullo spazio e al primo post metti un link a questo con la data dell'ultima modifica cosi' per me e' piu' facile aggiornare il gekit  :Very Happy: 

----------

## _sys/sid

Ok...

Adesso lo metto online...

http://gensid.altervista.org/changelog

----------

## _sys/sid

Qualche ritocchino e aggiunta l'opzione --dir='<dir>'

```

#!/bin/bash

# Gentoo (Portage) ChangeLog Viewer. 0.8.6

COLOR_DEFAULT='\033[0m'

COLOR_WHITE='\33[01;37m'

COLOR_LRED='\033[1;31m'

COLOR_LGREEN='\033[1;32m'

COLOR_LYELLOW='\033[1;33m'

SYMBOL_OK="${COLOR_LGREEN} *${COLOR_DEFAULT}"

SYMBOL_ER="${COLOR_LRED} *${COLOR_DEFAULT}"

SYMBOL_WR="${COLOR_LYELLOW} *${COLOR_DEFAULT}"

# Find $PORTDIR in /etc/make.conf or in /etc/make.globals...

# Default $PORTDIR = "/usr/portage"

if [ -f "/etc/make.conf" ]; then

   source /etc/make.conf

   if [ -f ${PORTDIR} ]; then

      if [ -f "/etc/make.globals" ]; then

         if [ -f ${PORTDIR} ]; then

            PORTDIR="/usr/portage"

         fi

      fi

   fi

else

   if [ -f "/etc/make.globals" ]; then

      if [ -f ${PORTDIR} ]; then

         PORTDIR="/usr/portage"

      fi

   fi

fi

# Print Help, Usage and Info...

chlogviewer_usage() {

   echo "ChangeLog Viewer 0.8.6"

   echo

   echo -e "${COLOR_WHITE} Usage:${COLOR_DEFAULT}"

   echo "    changelog [ app name ] [ ... ]"

   echo "    changelog --dir='<dir>' [ app name ] [ ... ]"

   echo

   echo -e "${SYMBOL_WR} Use Options '--dir=<dir>' for change ChangeLog find dir."

   echo

   echo

   echo -e "${COLOR_WHITE} Examples:${COLOR_DEFAULT}"

   echo "    changelog x11-wm/fluxbox"

   echo "    changelog fluxbox xorg-x11 mm-sources"

   echo "    changelog --dir='/usr/local/overlays' nitro-sources"

   echo

   echo -e "${SYMBOL_WR} Portage Dir: '${PORTDIR}'"

   echo

   echo

   echo "Report Bugs to <matteo_bertozzi@bsdmail.com>"

   echo

}

# 'Search' and 'print' ChangeLog.

get_ChangeLog() {

   chk_dir=$(echo ${1} | grep '/')

   if [ "${chk_dir}" = '' ]; then

      PATH_CHANGELOG="*/${1}"

   else

      PATH_CHANGELOG="${1}"

   fi

 

   if [ -s ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog ]; then

      echo -e "${SYMBOL_OK} '${1}' Changelog"

      cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog | less

   else

      echo -e "${SYMBOL_ER} '${1}' ChangeLog Not Found..."

      sleep ${2}

   fi

}

# M A I N

if [ $# -gt 0 ]; then

   time=1

   if [ $# -eq 1 ]; then

      time=0

   fi

   for argv in $@; do

      case "${argv}" in

         --dir=*) PORTDIR=$(echo ${argv} | cut -d '=' -f 2-)

                if [ $# -eq 2 ]; then

                  time=0

                fi

                break;;

         --help) chlogviewer_usage

               exit 0;;

      esac

   done

   

   # Loop for print ChangeLog.

   for app in $@; do

      if [ "$(echo ${app} | cut -d '=' -f 1-1)" != "--dir" ]; then

         get_ChangeLog ${app} ${time}

      fi

   done

else

   chlogviewer_usage

fi

```

----------

## _sys/sid

Sistemata la Funzione Usage...

```

#!/bin/bash

# Gentoo (Portage) ChangeLog Viewer. 0.8.7

COLOR_DEFAULT='\033[0m'

COLOR_WHITE='\33[01;37m'

COLOR_LRED='\033[1;31m'

COLOR_LGREEN='\033[1;32m'

COLOR_LYELLOW='\033[1;33m'

SYMBOL_OK="${COLOR_LGREEN} *${COLOR_DEFAULT}"

SYMBOL_ER="${COLOR_LRED} *${COLOR_DEFAULT}"

SYMBOL_WR="${COLOR_LYELLOW} *${COLOR_DEFAULT}"

# Find $PORTDIR in /etc/make.conf or in /etc/make.globals...

# Default $PORTDIR = "/usr/portage"

if [ -f "/etc/make.conf" ]; then

   source /etc/make.conf

   if [ -f ${PORTDIR} ]; then

      if [ -f "/etc/make.globals" ]; then

         if [ -f ${PORTDIR} ]; then

            PORTDIR="/usr/portage"

         fi

      fi

   fi

else

   if [ -f "/etc/make.globals" ]; then

      if [ -f ${PORTDIR} ]; then

         PORTDIR="/usr/portage"

      fi

   fi

fi

# Print Help, Usage and Info...

chlogviewer_usage() {

   echo "ChangeLog Viewer 0.8.7"

   echo

   echo -e "${COLOR_WHITE} Usage:${COLOR_DEFAULT}"

   echo "    ${0} [ app name ] [ ... ]"

   echo "    ${0} --dir='<dir>' [ app name ] [ ... ]"

   echo

   echo -e "${SYMBOL_WR} Use Options '--dir=<dir>' for change ChangeLog find dir."

   echo

   echo

   echo -e "${COLOR_WHITE} Examples:${COLOR_DEFAULT}"

   echo "    ${0} x11-wm/fluxbox"

   echo "    ${0} fluxbox xorg-x11 mm-sources"

   echo "    ${0} --dir='/usr/local/overlays' nitro-sources"

   echo

   echo -e "${SYMBOL_WR} Portage Dir: '${PORTDIR}'"

   echo

   echo

   echo "Report Bugs to <matteo_bertozzi@bsdmail.com>"

   echo

}

# 'Search' and 'print' ChangeLog.

get_ChangeLog() {

   chk_dir=$(echo ${1} | grep '/')

   if [ "${chk_dir}" = '' ]; then

      PATH_CHANGELOG="*/${1}"

   else

      PATH_CHANGELOG="${1}"

   fi

 

   if [ -s ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog ]; then

      echo -e "${SYMBOL_OK} '${1}' Changelog"

      cat ${PORTDIR}/${PATH_CHANGELOG}/ChangeLog | less

   else

      echo -e "${SYMBOL_ER} '${1}' ChangeLog Not Found..."

      sleep ${2}

   fi

}

# M A I N

if [ $# -gt 0 ]; then

   time=1

   if [ $# -eq 1 ]; then

      time=0

   fi

   for argv in $@; do

      case "${argv}" in

         --dir=*) PORTDIR=$(echo ${argv} | cut -d '=' -f 2-)

                if [ $# -eq 2 ]; then

                  time=0

                fi

                break;;

         --help) chlogviewer_usage

               exit 0;;

      esac

   done

   

   # Loop for print ChangeLog.

   for app in $@; do

      if [ "$(echo ${app} | cut -d '=' -f 1-1)" != "--dir" ]; then

         get_ChangeLog ${app} ${time}

      fi

   done

else

   chlogviewer_usage

fi

```

http://gensid.altervista.org/devel/dev-sh/viewcl/viewcl.sh

----------

## _sys/sid

0.8.9 Cambiato Indirizzo.. e fatto qualche modifica poco rilevante...

http://gensid.altervista.org/devel/dev-sh/viewcl/viewcl.sh

----------

## fedeliallalinea

Crea un nuovo post con solo viewcl con il tag [tool] che secondo me resta piu' chiaro

----------

