Live Support My forum, my way! Il forum dei newsgroup: Linux » [pubblico] Script per creare sfondi XML ricorsivi (Gnome)
My forum, my way! Il forum dei newsgroup
Fast Uncompromising Discussions.Newsgroup FUDforum will get your users talking.

Loading
Utenti      F.A.Q.    Registrati    Login    Home
Home » Computer » Linux » [pubblico] Script per creare sfondi XML ricorsivi (Gnome)
[pubblico] Script per creare sfondi XML ricorsivi (Gnome) [messaggio #38679] lun, 16 maggio 2011 01:46
Carlo MILIANO  è attualmente disconnesso Carlo MILIANO
Messaggi: 12
Registrato: aprile 2011
Junior Member
Dopo essermi scaricato 3 Gb o giù di lì di sfondi, divisi per
categorie, mi sono trovato ad avere decine e decine di sottodirectory
contenenti sfondi diversi.
Non ho però trovato qualcosa che lavorasse in automatico e
ricorsivamente: le utility per generare XML che ho trovato in rete
sono più o meno interattive e non ricorsive, adatte a volumi ridotti
di files e/o directories.
Ho pensato quindi di creare uno script bash per automatizzare la
creazione di sfondi XML (tipo Cosmos, per intenderci) sotto Gnome.
Lo script è ricorsivo e, alla fine, ogni directory contiene un file
<directory>_walls.xml
La durata della slide e della transizione sono personalizzabili

N.B.: lo script originale utilizza una piccola utility per verificare
che i parametri siano correttamente valorizzati, ma in questo script
ho omesso il controllo mettendoci il commento davanti

PS: apprezzo consigli su modi e/o comandi più efficienti

------------------------
#!/bin/bash
# usage: $0 <directory> <duration> <transition>
# duration and transition are expressed in seconds.decimals
# e.g.:
# $ $0 thatdir 1795.0 5.0
#

PROGRAM="$(echo $0 | sed 's/.*\///')"

WORKDIR="$1"
DURATION="$2"
TRANSITION="$3"

# check parameters
# . needed WORKDIR "missing working directory"
# . needed DURATION "missing static duration"
# . needed TRANSITION "missing transition duration"

function static () (
cat <<__EOF__
<static>
<duration>$DURATION</duration>
<file>$1</file>
</static>
__EOF__
)

function transition () (
cat <<__EOF__
<transition>
<duration>$TRANSITION</duration>
<from>$1</from>
<to>$2</to>
</transition>
__EOF__
)

cd $WORKDIR
WALL="$WORKDIR""_walls.xml"
DIRPATH="$(pwd)"

cat >"$WALL" <<__EOF__
<background>
<starttime>
<year>2009</year>
<month>08</month>
<day>04</day>
<hour>00</hour>
<minute>00</minute>
<second>00</second>
</starttime>
<!-- This animation will start at midnight. -->
__EOF__

(for FILE in *; do
# normalize filename to lowecase, remove spaces - insert any
additional normalization constraint here
FILE_NEW="${FILE,,}"
FILE_NEW="${FILE_NEW/ /_}"
# check to avoid moving a dir within itself, or a file onto
itself
if [ "$FILE" != "$FILE_NEW" ] ; then
mv "$FILE" "$FILE_NEW"
fi
FILE="$FILE_NEW"
if [ -d "$FILE" ]; then
# recurse subdir
$PROGRAM "$FILE" "$DURATION" "$TRANSITION"
fi
done ;
# loop only thru image files
IMAGES="*jpg *jpeg *png *tiff *gif"
ls $IMAGES 2>/dev/null) | while read FILE ; do
FILE="$DIRPATH/$FILE"
echo $FILE
(if [ "$OLDFILE" != "" ] ; then
transition $OLDFILE $FILE
fi
static $FILE) >>"$WALL"
OLDFILE="$FILE"
done
echo "</background>" >>"$WALL"
Argomento precedente:Autorizzazioni per mount penna USB
Argomento successivo:Nuova versione di skype (beta)
Vai al forum:
  


Ora corrente: mar apr 23 10:18:15 CEST 2024

Tempo totale richiesto per generare la pagina: 0.03075 secondi
.:: Contatti :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Live Support