#1876 Le 25/09/2015, à 21:31
- abach
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Voici l'output :
avconv version 11.2-6:11.2-1, Copyright (c) 2000-2014 the Libav developers
built on Jan 18 2015 05:12:33 with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu2)
[mpeg4 @ 0x1f59780] looks like this file was encoded with (divx4/(old)xvid/opendivx) -> forcing low_delay flag
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, avi, from '/home/abach/Vidéos/avions/Concorde.Air-France.Mai.2003.avi':
Duration: 00:38:29.48, start: 0.000000, bitrate: 2034 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 25 fps, 25 tbn, 30k tbc
Stream #0.1: Audio: mp3, 24000 Hz, 2 channels, s16p, 56 kb/s
[scale @ 0x1f6e880] The <w>:<h>:flags=<flags> option syntax is deprecated. Use either <w>:<h>:<flags> or w=<w>:h=<h>:flags=<flags>.
Output #0, flv, to '/home/abach/Vidéos/essai/Concorde.Air-France.Mai.2003.flv':
Il ne me crée pas le sous-répertoire.
Les chiens vous regardent tous avec vénération. Les chats vous toisent tous avec dédain. Il n’y a que les cochons qui vous considèrent comme leurs égaux. - Winston Churchill
Je suis parrain Linux
Hors ligne
#1877 Le 25/09/2015, à 21:42
- tiramiseb
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
tu n'as pas donné les valeurs des différentes variables et ça ne correspond pas à ton script que tu as montré plus haut...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#1878 Le 29/09/2015, à 08:16
- loutch
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonsoir à tous
Ayant découvert "MOC" je voudrais faire un script pour le lancer ainsi que son conky.
J'ai ajouté un racourci dans Lancelot ainsi que dans le gestionnaire de taches à icones et mocp se lance bien.
J'ai utilisé mon script pour audacious et modifié en conséquence mais j'ai un souci . Le script ne lance que le conkyrc mais pas moc je suis obliger de le lancer à la mano , et une fois moc et le conky lancés le script les ferme tout les deux .
Voici le script en question si quelqu'un @ une idée .Merci d'avance
#!/bin/bash
PROG_NAME1="conky -c /home/$USER/.conky/moc/conkyrc" # Nom du programme à démarrer/arrêter.
PROG_NAME2="/usr/bin/mocp" # Nom du programme à démarrer/arrêter.
PROCESSPID1=$(pgrep -f /home/$USER/.conky/moc/conkyrc) # Récupère le PID du processus.
PROCESSPID2=$(pgrep -f "usr/bin/mocp") # Récupére le PID du processus.
if [[ "$PROCESSPID1" != "" && "$PROCESSPID2" != "" ]]; then # Si les deux processus existe alors on le(s) kill.
kill $PROCESSPID1 && echo "Stop $PROG_NAME1 (PID: $PROCESSPID1)"
kill $PROCESSPID2 && echo "Stop $PROG_NAME2 (PID: $PROCESSPID2)"
else # Si aucun processus on démarre le programme.
kill $PROCESSPID1
$PROG_NAME1 &
echo "Start $PROG_NAME1"
kill $PROCESSPID2
$PROG_NAME2 &
echo "Start $PROG_NAME2"
if [[ "$PROCESSPID1" == "" || "$PROCESSPID2" == "" ]]; then # Si un des processus n'existe pas alors on le(s) kill.
kill $PROCESSPID1 && echo "Stop $PROG_NAME1 (PID: $PROCESSPID1)"
kill $PROCESSPID2 && echo "Stop $PROG_NAME2 (PID: $PROCESSPID2)"
echo "Il y a eu un souci au lancement tout a été coupé"
fi
fi
exit 0
@+
Hors ligne
#1879 Le 29/09/2015, à 08:29
- tiramiseb
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Salut loutch,
Pour les "echo" de ton script, ça donne quoi ? Qu'est-ce qui s'affiche, qu'est-ce qui ne s'affiche pas ?
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#1880 Le 29/09/2015, à 10:15
- loutch
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
salut tiramiseb
Conky et moc se lancent je viens de les voire en konsole lors d'un top ,mocp est à 0.3% mais la konsole n'est pas visible il ni a que le serveur qui est lancé .
Il faudrait que le script lance moc avec son interface dans la konsole mais j'arrive pas à trouvé comment faire .
En faite je viens de découvrir que le script fonctionne mais moc n'est pas visible sur le bureau.
@+
Dernière modification par loutch (Le 29/09/2015, à 10:17)
Hors ligne
#1881 Le 29/09/2015, à 11:21
- tiramiseb
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Ok, donc si j'ai bien compris, ton script fonctionne parfaitement bien mais tu veux exécuter la commande mocp dans un terminal (tu écris "konsole", donc j'imagine que tu es sous KDE et que tu veux utiliser Konsole) qui s'ouvrirait lorsque ce script s'exécute.
Ça devrait fonctionner avec ça
PROG_NAME2="/usr/bin/konsole -e /usr/bin/mocp" # Nom du programme à démarrer/arrêter.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#1882 Le 29/09/2015, à 12:06
- loutch
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Re
OOOUUUUUUUUUUUUUUUAAAAAAAAAAAIIIIIIIIII
SUPER t'es the King ça fonctionne au poil
encore MERCI et
@+
En plus je viens d'apprendre un truc .
Dernière modification par loutch (Le 29/09/2015, à 12:07)
Hors ligne
#1883 Le 03/10/2015, à 08:32
- Yvance77
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour,
Je recherche de l'aide pour un script qui me permettrait de mettre tous mes fichiers en lettres majuscules dans un dossier et incluant des sous-répertoires. Mais dans chaque sous-répertoires il y a une exclusion c'est à dire qu'il y a une fichier qui porte toujours le même nom et qui ne devra pas être réécrit.
.
Et truc supplémentaire - car il s'agit de fichier "audio flac." c'est qu'en plus cette nouvelle écriture se fasse dans les TAG audio. Si pas possible pas grave un soft comme easytag le fera.
L'arborescence est simple =
le dossier principal = "multimédia"
un autre dossier = FLAC
des sous dossiers = ALBUMS DES ARTISTES
dans chacun = tous les titres audio à renommer + un fichier à ne pas toucher
Cela représente peu ou prou 36 000 titres quand même
Merci de votre aide
A trop vouloir faire de l'économie un idéal, nous faisons l'économie de l'Idéal !
Manjaro 20.01 - Mate 64 bits
CM : MSI B550 Tomahawk -- Proc : Ryzen 3600 6 coeurs -- CG : ATI Radeon RX550 -- RAM : Kingstone DDR4
Hors ligne
#1884 Le 08/11/2015, à 23:37
- Compte anonymisé
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Mieux vaut tard que jamais !
#!/bin/bash
dossier="/tondossier"
exclusion="nomfichier"
for a in $(find "$dossier" ! -name "$exclusion")
do echo "$a" $(echo "$a"|tr '[:lower:]' '[:upper:]')
done
remplacer le dossier et note le fichier à exclure.
test le script il met dans la première colonne le nom actuel, dans la deuxième le nom modifié.
Si cela semble correspondre à ce que tu recherches remplace "echo" par "mv" et il effectuera le renommage !
pour le flac j'ai pas encore réfléchi, je verrai déjà si tu attends encore la réponse.
Dernière modification par Compte anonymisé (Le 08/11/2015, à 23:37)
#1885 Le 21/12/2015, à 16:54
- Morrisson
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Salut à tous,
Je viens de terminer un script qui, selon peut intéresser certaines personnes .
Introduction ( l'histoire du script ) : Le script permet d'ajouter des taggs en IDE 3 à des fichiers audio de type .flac en prenant appui sur un fichier texte ( extension .info) que l'on créer manuellement. Il ajoute notamment une image en icône . De plus, il s'occupe de renommer les fichiers : n° titre.flac.
Requis : eyeD3 et Imagick et un dossier avec un album en flac et une image en .jpg.
#!/bin/bash
#Indiquer le dossier
echo 'Dossier (chemin absolue) ?'
read Dossier
echo $Dossier
cd "$Dossier"
OLDIFS=$IFS;
IFS=$(echo -en "\n\b" );
for fileA in `(ls)`;do ## parcourir un ls avec des espaces.
echo "$fileA"
cd "$fileA"
###condition et vérification des inforamtions
# Récuperer les données de «*.info»
artiste=`sed -n '1p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
echo $artiste
album=`sed -n '2p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
echo $album
date=`sed -n '3p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
echo $date
genre=`sed -n '4p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
echo $genre
a=`sed -n '5p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
let " nbre = $a"
echo $nbre
######Pause pour voir si il y a des erreurs.
echo 'Informations corrects ?'
read attente1
###Ajouter la convertion d'images
#convertir et renommer l'image présente
mv *.jpg "$album.jpg"
convert *.jpg -resize 1000x1000\! "$album.jpg"
convert "$album.jpg" "$album.png"
#Ajouter les informations à chaque fichier
find . -maxdepth 1 -name "*.flac" -exec eyeD3 --remove-all {} \;
find . -maxdepth 1 -name "*.flac" -exec eyeD3 --to-v2.4 {} \;
for i in `seq 1 $nbre`; do
titre=`sed -n "$((5+i))p" *.info`
echo "$titre"
if [[ $i -lt 10 ]]; then ##Cas des 9 premiers chiffre 0^.
fichier=`find . -maxdepth 1 -name "0$i*"| cut -d / -f 2`
mv "$fichier" "$titre.flac"
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -a "$artiste" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -A "$album" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -n "0$i" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -N "$nbre" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -G "$genre" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -Y "$date" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 --add-image="$album.jpg":FRONT_COVER {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -i "$album.png" {} \; ###Message d'erreur «Directory does not exist: Mon Super Albums.png/»
else
fichier=`find . -maxdepth 1 -name "$i*"| cut -d / -f 2`
mv "$fichier" "$titre.flac"
find . -maxdepth 1 -name "$i*" -exec eyeD3 -a "$artiste" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 -A "$album" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 -n "$i" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 -N "$nbre" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 -G "$genre" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 -Y "$date" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 --add-image="$album.jpg":FRONT_COVER {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 -i "$album.png" {} \; ###Message d'erreur «Directory does not exist: Mon Super Albums.png/»
fi
done
rm "$album.png"
echo 'Voulez-vous continuer ?'
read attente1
cd ../
mv "$fileA" "$album"
mkdir "$artiste"
mv "$album" "$artiste"/
done
IFS=$OLDIFS;
#Afficher le message de fin
echo -e '..EEEE..N....N..DDD...\n..E.....N.N..N..D..D..\n..EEEE..N..N.N..D...D.\n..E.....N...NN..D..D..\n..EEEE..N....N..DDD...'
Le fichier .info doit être comme cela ->
:
Artiste= AaRON;
Album= Artificial Animals Riding On Neverland;
Date= 2007;
Genre= Synthpop;
Number Of Tracks= 13;
01 Endless Song
02 U-Turn (Lili)
03 O-Song
04 Mister K
05 Blow
06 Beautiful Scar
07 Strange Fruit
08 Angel Dust
09 War Flag
10 Lost Highway
11 Le Tunnel D'Or
12 Little Love
13 Last Night Thoughts
PS: je cherche un solution pour que le script n'affiche pas les retours des commandes de eyeD3. Si vous avez des suggestions faites les moi savoir .
#1886 Le 21/12/2015, à 18:15
- Compte anonymisé
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour,
en tout premier lieu, félicitation pour ton script.
Quelques questions/remarques,
La syntaxe du fichier info, on peut la retrouver ailleurs, ou c'est toi qui l'a faite ? Parce que c'est pas très "script friendly"
convert "$album.jpg" "$album.png"
ça n'a priori aucun intérêt et le fichier final aura les défauts du format jpeg sans ses avantages.
Et on peut optimiser/simplifier pas mal le script.
pour les retours eye3D il faut rediriger les messages stdin et stderr vers /dev/null (&> /dev/null)
Dernière modification par Compte anonymisé (Le 21/12/2015, à 18:16)
#1887 Le 21/12/2015, à 18:25
- navtex
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
bonjour
serait-il possible de faire un script relatif à qarte.En effet avec une connection passable le téléchargement n'aboutit pas.
aussi la premiere commande (par exemple)
rtmpdump --host cp363648.edgefcs.net --port 1935 --protocol rtmp --app ondemand --playpath 'mp4:am/tvguide/SAT/048760-004-A_HQ_2_VOF_02101588_MP4-800_AMM-Tvguide.mp4' -o /home/ser/arte/plus145067806801.fl
doit etre transformée ensuite en (+ -e)
rtmpdump -e --host cp363648.edgefcs.net --port 1935 --protocol rtmp --app ondemand --playpath 'mp4:am/tvguide/SAT/048760-004-A_HQ_2_VOF_02101588_MP4-800_AMM-Tvguide.mp4' -o /home/ser/arte/plus145067806801.fl
puis répétée souvent 5 ou 6 fois jusqu'à "complete"
Dernière modification par navtex (Le 21/12/2015, à 18:26)
Xubuntu sur CLEVO PA7 i5 32ram Jammy Jellyfish
ABientot sur le Libre
Hors ligne
#1888 Le 21/12/2015, à 18:50
- Compte anonymisé
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
quelque chose comme ça ?
while true;do rtmpdump -e --host cp363648.edgefcs.net --port 1935 --protocol rtmp --app ondemand --playpath 'mp4:am/tvguide/SAT/048760-004-A_HQ_2_VOF_02101588_MP4-800_AMM-Tvguide.mp4' -o /home/ser/arte/plus145067806801.fl;done
- l'option -e à l'air de marcher même si le fichier n'existe pas, donc pas besoin de 2 commandes séparées
PS : rtmpdump n'indique pas au shell que le téléchargement c'est bien terminé, alors il faut quitter avec CTRL-C
Dernière modification par Compte anonymisé (Le 21/12/2015, à 19:00)
#1889 Le 21/12/2015, à 20:31
- navtex
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
but mais de mémoire
rtmpdump -e
se plante à trouver le fichier à completer normalement crée par
rtmpdump --host....
Ps : ma premiere réaction
correction : ça marche ! j'ai du zapper ce matin ??
Dernière modification par navtex (Le 21/12/2015, à 20:41)
Xubuntu sur CLEVO PA7 i5 32ram Jammy Jellyfish
ABientot sur le Libre
Hors ligne
#1890 Le 21/12/2015, à 20:51
- navtex
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Je suis bête mais (c'est pour ma copine un peu simplette) ;
donc une commande qui ferait apparaitre
while true;do rtmpdump -e
dans un terminal, à compléter par un collé de l'adresse ?
Dernière modification par navtex (Le 21/12/2015, à 20:54)
Xubuntu sur CLEVO PA7 i5 32ram Jammy Jellyfish
ABientot sur le Libre
Hors ligne
#1891 Le 21/12/2015, à 21:17
- Morrisson
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Re
Donc pour le script pour les fichiers taggs, si j'ai bien compris pour l’icône, il n'y a pas besoin de convertir le .jpg en .pnj .
Mais sinon pour les redirections, cela m’intéresse vraiment de savoir comment faire car je ne sais pas dû tout et l'optimisation .
Ps: je suis pas un expert, c'est mon premier script de ma vie et l'idée du fichier d'info, c'est de moi
#1892 Le 22/12/2015, à 17:51
- Compte anonymisé
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@navtex
une fonction qui le fait automatiquement (à mettre à la fin de ~/.bashrc) ?
rt() { until [ "$a" = 1 ];do rtmpdump -e $*&&a=1;done }
et après au lieu d'écrire :
rtmpdump --host cp363648.edgefcs.net --port 1935 --protocol rtmp --app ondemand --playpath 'mp4:am/tvguide/SAT/048760-004-A_HQ_2_VOF_02101588_MP4-800_AMM-Tvguide.mp4' -o /home/ser/arte/plus145067806801.fl
tu écris :
rt --host cp363648.edgefcs.net --port 1935 --protocol rtmp --app ondemand --playpath 'mp4:am/tvguide/SAT/048760-004-A_HQ_2_VOF_02101588_MP4-800_AMM-Tvguide.mp4' -o /home/ser/arte/plus145067806801.fl
et ça te rajoutera automatiquement le -e et te fera une boucle !
EDIT : la boucle s’arrête finalement quand c'est fini.
Dernière modification par Compte anonymisé (Le 23/12/2015, à 12:26)
#1893 Le 22/12/2015, à 18:18
- Compte anonymisé
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@Morrisson
tu dois par exemple pouvoir remplacer ce passage :
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -a "$artiste" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -A "$album" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -n "0$i" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -N "$nbre" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -G "$genre" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -Y "$date" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 --add-image="$album.jpg":FRONT_COVER {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -i "$album.png" {} \;
par :
find . -maxdepth 1 -name "0$i*"|while read a
do
eyeD3 -a "$artiste" -A "$album" -n "0$i" -N "$nbre" -G "$genre" -Y "$date" --add-image="$album.jpg":FRONT_COVER -i "$album.png" "$a" &> /dev/null
done
qui devrait faire exactement la même chose, tu remarquera le "&> /dev/null" à la fin de la ligne eyeD3 qui dit de renvoyer les messages vers /dev/null (nulle part en faite)
#1894 Le 22/12/2015, à 18:27
- Compte anonymisé
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Pour ton fichier info je propose de le simplifier
artist=AaRON
album=Artificial Animals Riding On Neverland
year=2007
genre=Synthpop
track-total=13
01 Endless Song
02 U-Turn (Lili)
03 O-Song
04 Mister K
05 Blow
06 Beautiful Scar
07 Strange Fruit
08 Angel Dust
09 War Flag
10 Lost Highway
11 Le Tunnel D'Or
12 Little Love
13 Last Night Thoughts
comme ça pour extraire le nom de l'artiste
grep artist= fichier|cut -f2 -d"="
et le nom des champs est identique à ce qu'on peut retrouver dans l'ID3.
#1895 Le 22/12/2015, à 18:48
- navtex
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
qarte lancé en terminal , lors d'un téléchargement affiche
exécuter cette commande dans un terminal
rtmpdump --host etc..flv
du coup pour faire un simple copié-collé ,on peut : en enlevant le r du début et le v de la fin ,et c'est faisable en renommant la fonction "rt" en "tmpdump"
Si c'est assez net , j'en ferais part sur le topic de qarte . merci
Xubuntu sur CLEVO PA7 i5 32ram Jammy Jellyfish
ABientot sur le Libre
Hors ligne
#1896 Le 22/12/2015, à 19:09
- Compte anonymisé
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@navtex
tu peux appeler la fonction comme bon te semble (évite juste les noms déjà utilisé par d'autre programme )
#1897 Le 10/01/2016, à 16:51
- loutch
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Hello
J'ai trouvé sur ce fofo un script en lua pour pouvoir lancer deux ou plusieurs script.lua mais cela ne fonctionne pas rien ne se lance .
c'est pour remplacer ceci :
lua_load ~/.conky/blanc/baro.lua
lua_draw_hook_pre main
lua_load ~/.conky/blanc/textwriting.lua
lua_draw_hook_post draw_text
je l'appelle avec ceci:
lua_load ~/.conky/blanc/barotext.lua
lua_draw_hook_pre main
voici le code en question:
package.path = "/home/loutch/.conky/blanc/?.lua"
require 'baro' --for scriptA.lua ".lua" is not required here
require 'textwriting'
function conky_main()
lua_draw_hook_pre()
lua_draw_hook_post()
end
une idée où est mon problème?
@+
Dernière modification par loutch (Le 10/01/2016, à 16:54)
Hors ligne
#1898 Le 11/01/2016, à 14:41
- pguimier
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour voici des scripts pour le répertoire de script nautilus :
Convertir des fichiers svg en pdf (il faut inkscape) :
#!/bin/bash
scriptname=`basename $0`
# Determine wave type to convert to based on the name of the script
newext=`echo $scriptname | sed 's/inkscape.to.\(.\+\)/.\1/'`
logfile=`mktemp -t $script_name.XXXXXX`
tail -f $logfile | zenity --text-info --title="Converting sound to $newext" &
for svg in "$@"; do
oldext=$(echo $svg|sed 's/.*\.\(.\+\)/\1/')
if [ $oldext != "svg" ]
then
echo "Not a svg file" >> $logfile
continue
fi
# Determine target svg name
target=$(echo $svg|sed 's/\(.*\)\..\+/\1/')$newext
if [ -f "$target" ]
then
echo "File exists" >> $logfile
continue
fi
datefile=`date -r "$svg" +%Y%m%d%H%M`
echo "$svg -> $target" >> $logfile
inkscape -f "$svg" -d 90 -A "$target"
touch -t $datefile "$target"
done
echo done >> $logfile
rm -f $logfile
Convertir des fichiers svg en jpg (il faut inkscape ET image magick) :
#!/bin/bash
scriptname=`basename $0`
# Determine wave type to convert to based on the name of the script
newext=`echo $scriptname | sed 's/inkscape.to.\(.\+\)/.\1/'`
logfile=`mktemp -t $script_name.XXXXXX`
tail -f $logfile | zenity --text-info --title="Converting sound to $newext" &
for svg in "$@"; do
oldext=$(echo $svg|sed 's/.*\.\(.\+\)/\1/')
if [ $oldext != "svg" && $oldext != "pdf" ]
then
echo "Not a svg file" >> $logfile
continue
fi
# Determine target svg name
target=dac
target2=$(echo $svg|sed 's/\(.*\)\..\+/\1/')$newext
if [ -f "$target" ]
then
echo "File $target exists" >> $logfile
continue
fi
if [ -f "$target2" ]
then
echo "File $target2 exists" >> $logfile
continue
fi
datefile=`date -r "$svg" +%Y%m%d%H%M`
echo "$svg -> $target" >> $logfile
inkscape -f "$svg" -d 300 -e "$target"
touch -t $datefile "$target"
echo "$target -> $target2" >> $logfile
convert "$target" -quality 92 -density 90 -resample 150x150 -resize 850x710 "$target2"
touch -t $datefile "$target2"
rm "$target"
done
echo done >> $logfile
rm -f $logfile
Hors ligne
#1899 Le 15/01/2016, à 09:59
- loutch
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Hello
J'ai cette erreur en konsole j'ai bien changé de fonction mais je trouve pas laquelle donner.
Conky: llua_do_call: function conky_main execution failed: /home/loutch/.conky/blanc/barotext.lua:14: attempt to call global 'lua_draw_hook_pre' (a nil value)
Conky: llua_do_call: function conky_main execution failed: /home/loutch/.conky/blanc/barotext.lua:14: attempt to call global 'lua_draw_hook_pre' (a nil value)
@+
Hors ligne
#1900 Le 18/02/2016, à 18:41
- kholo
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour, je relance les scripteurs fous avec quelques trucs :
NB : d'abord la notation `une_fonction` est en train de disparaître au profit de "$(une_fonction)"
ensuite, voici un bout de script pour utiliser la gestion des ini (ou conf)
c'est à dire enregistrer et lire un fichier ini
suite de cette vieille discussion
#!/bin/bash
nomLogiciel="$(basename "$0")"
FONCTION="lecture et écriture de fichier ini ou conf"
VERSION="alpha"
echo "lancement $nomLogiciel..."
function _quitter {
# mettre ici tout ce qui sera nécessaire à la bonne fermeture
echo "--------------------------------
AVANT sauverIni le fichier ini contient :"
cat $fichierIni
# echo "$(sauverIni)" > "$nomLogiciel.ini" ;
sauverIni ;
echo "--------------------------------
APRES sauverIni le fichier ini contient :"
cat $fichierIni
exit 0
}
function parserLigneIni {
i=$@ ;
case $i in
# xxxxx=*) xxxxxx="${i#*=}" ;;
nomLogiciel=*) nomLogiciel="${i#*=}" ;;
FONCTION=*) FONCTION="${i#*=}" ;;
VERSION=*) VERSION="${i#*=}" ;;
une_valeur=*) une_valeur="${i#*=}" ;;
une_autre_valeur=*) une_autre_valeur="${i#*=}" ;;
une_troisieme=*) une_troisieme="${i#*=}" ;;
esac
}
function chargerIni {
# [ -f "$fichierIni" ] || \#
while read line ;
do
parserLigneIni "$line" ;
done < "$fichierIni" ;
}
function sauverIni {
echo "nomLogiciel=$nomLogiciel
FONCTION=$FONCTION
VERSION=$VERSION
une_valeur=$une_valeur
une_autre_valeur=$une_autre_valeur
une_troisieme=$une_troisieme
" > "$nomLogiciel.ini" ;
}
function _initialisation {
une_valeur="On peut changer le fichier ini puis"
une_autre_valeur="le relancer pour voir les changements"
une_troisieme="des espaces et des lettres accentuées àÂâêïù"
echo "Les valeurs AVANT chargerIni sont :
nomLogiciel=$nomLogiciel
FONCTION=$FONCTION
VERSION=$VERSION
une_valeur=$une_valeur
une_autre_valeur=$une_autre_valeur
une_troisieme=$une_troisieme
"
fichierIni="$nomLogiciel.ini"
echo "le nom du fichier ini est : $fichierIni"
chargerIni ;
echo "Les valeurs APRES chargerIni sont :
nomLogiciel=$nomLogiciel
FONCTION=$FONCTION
VERSION=$VERSION
une_valeur=$une_valeur
une_autre_valeur=$une_autre_valeur
une_troisieme=$une_troisieme
"
}
function _main {
_quitter
}
_initialisation
_main
echo "Ne doit pas s'afficher !"
exit 0
celui là c'est pour ranger tous les fichiers d'un dossier et ses sous dossiers
par type mime
il doit pouvoir s'améliorer en gérant plutôt les extensions
#!/bin/bash
nomLogiciel="$(basename "$0")" ;
# script pour réorganiser une arborescence rapidement
FONCTION="organiser les fichiers
en les rangeant dans des dossiers au nom des types mimes" ;
VERSION="0.7" ;
# NOTES DE VERSIONS
# ----------------------------------------------
#
# ----------------------------------------------
#
# Copyright (C) 22 Jan. 2011, Rombeaut Rodolphe
# http://scriptam.over-blog.com/
# Released into the public domain.
#
# modifié par kholo-informatique 2016
# www.kholo-informatique.fr
#********************************************************************
function creer_journal {
fichier_log="$nomLogiciel.log"
journal "$(date)
Ouverture de $nomLogiciel"
}
function journal {
./journal "$fichier_log" "$@"
}
creer_journal
# journal "Chargement..." "voir_journal"
function voir_journal {
journal "-----------------
FONCTION voir_journal $@
-----------------"
zenity --text-info \
--width=600 --height=450 \
--title="Fichier Journal" \
--filename=$"$fichier_log" \
--checkbox="vider le journal en quittant."
case $? in
0) rm -f "$fichier_log";
creer_journal
journal "RàZ Remise à zéro du journal !"
;;
1) journal "Sortie - voir_journal !" ;;
-1) journal "voir_journal - An unexpected error has occurred." ;;
esac
}
#********************************************************************
journal "lancement $nomLogiciel..." ;
#********************************************************************
# journal "Chargement..." ""_initialisation
function _initialisation {
journal "-----------------
FONCTION _initialisation
-----------------" ;
# Couleurs du texte affiché dans le shell
FUSHIA="\033[1;35m" ;
NOIR="\033[1;0m" ;
BLEU="\033[1;34m" ;
VERT="\033[1;32m" ;
ROUGE="\033[1;31m" ;
# dirOrigine="/répertoire à trier"
dirOrigine="$HOME" ;
# dirDestination="/répertoire de destination"
dirDestination="$HOME" ;
nbreDeFichiers=0 ;
fichierIni="$nomLogiciel.ini"
chargerIni ;
}
# journal "Chargement..." "chargerIni"
function chargerIni {
journal "-----------------
FONCTION chargement ini
-----------------" ;
# local x ;
while read line ;
do
journal "$line" ;
parserLigneIni "$line" ;
done < "$fichierIni" ;
journal "chargement terminé" ;
}
# journal "Chargement..." "_quitter"
function _quitter {
journal "-----------------
FONCTION _quitter
-----------------" ;
# mettre ici tout ce qui sera nescessaire à la bonne fermeture
sauverIni ;
exit 0
}
#********************************************************************
# journal "Chargement..." "parserLigneIni"
function parserLigneIni {
journal "-----------------
FONCTION parserLigneIni
-----------------" ;
i=$@ ;
journal "parseur $i" ;
case $i in
# xxxxx=*) xxxxxx="${i#*=}" ;;
dirOrigine=*) dirOrigine="${i#*=}" ;;
dirDestination=*) dirDestination="${i#*=}" ;;
esac
}
# journal "Chargement..." "sauverIni"
function sauverIni {
journal "-----------------
FONCTION sauverIni
-----------------" ;
echo "dirOrigine=$dirOrigine
dirDestination=$dirDestination
" > "$nomLogiciel.ini" ;
}
#********************************************************************
# journal "Chargement..." "range"
function range {
heuredebut=$(date +%s.%N) ;
# local ORIG=${ORIG%/} ;
# local DEST=${DEST%/} ;
local ORIG=${dirOrigine%/} ;
local DEST=${dirDestination%/} ;
find $ORIG/ -regextype "posix-extended" -depth -type f -regex ".*" | while read fichier ; do
((nbreDeFichiers++)) ;
a=$(file -ib "${fichier}") ;
journal "------------------------------------------------
en cours : $a" ;
[ -d "$DEST/${a%%/*}" ] || mkdir -p "$DEST/${a%%/*}" ;
mvfichierext=${fichier##*/} ;
mvfichier=${mvfichierext%%.*} ;
ext=${mvfichierext#*.} ;
journal "N° $nbreDeFichiers
fichier : $fichier
mvfichierext : $mvfichierext
mvfichier : $mvfichier
ext : $ext " ;
# sleep 2 ; #-pour prendre le temps de regarder !
[ "${fichier%/*}" != "$DEST/${a%%/*}" ] && {
[ -f "$DEST/${a%%/*}/${mvfichierext}" ] && {
b=1 ;
while [ -f "$DEST/${a%%/*}/${mvfichier}_copie${b}.${ext}" ] ; do ((b++)) ; done
mv "${fichier}" "$DEST/${a%%/*}/${mvfichier}_copie${b}.${ext}" ;
} || mv "${fichier}" "$DEST/${a%%/*}/${mvfichierext}" ;
}
journal "destination : $DEST/${a%%/*}" ;
duree="$(echo "$(date +%s.%N) - $heuredebut" | bc)" ;
journal "Traitement de $nbreDeFichiers fichiers en $duree secondes" ;
done
# supprimer les dossiers quand le travail est terminé
# find $ORIG/ -type d -exec rmdir 2>/dev/null {} \;
duree="$(echo "$(date +%s.%N) - $heuredebut" | bc)" ;
journal "Traitement de $nbreDeFichiers fichiers en $duree secondes" ;
}
#********************************************************************
# journal "Chargement..." "frm_principale"
function frm_principale {
journal "-----------------
FONCTION frm_principale
-----------------" ;
LAQUESTION="
---------------------------------------------------------------------
<b>Organisation de fichiers</b>
$FONCTION
Ce module <b>recherche des fichiers</b> selon un <b>modèle</b>
puis les <b>déplace</b>
depuis un <b>dossier origine</b> vers un <b>dossier destination</b>
" ;
local KA="Dossier Origine" ;
local KB="Dossier Destination" ;
local KC="Organiser " ;
local KD="" ;
local KE="" ;
local KF="" ;
local KG="" ;
local KH="" ;
local KI="journal" ;
local VA="$dirOrigine" ;
local VB="$dirDestination" ;
local VC="fichiers par type mime" ;
local VD="" ;
local VE="Valeur 9" ;
local VF="Valeur 6" ;
local VG="Valeur 7" ;
local VH="Valeur 8" ;
local VI="voir et RàZ" ;
zenity --list --width=600 --height=350 --text="$LAQUESTION" \
--ok-label="Sélectionner" \
--cancel-label="quitter" \
--hide-column 1 --column "" --column "choix" --column "valeur" \
1 "$KA" "$VA" \
2 "$KB" "$VB" \
0 "" "" \
3 "$KC" "$VC" \
0 "" "" \
9 "$KI" "$VI" ;
# 4 "$KD" "$VD" \
# 5 "$KE" "$VE" \
# 6 "$KF" "$VF" \
# 7 "$KG" "$VG" \
# 8 "$KH" "$VH" \ #
}
# journal "Chargement..." "frm_principale_parser"
function frm_principale_parser {
journal "-----------------
FONCTION frm_principale_parser
-----------------" ;
case $1 in
1) setDirOrigine ;;
2) setDirDestination ;;
3) range ;;
# 4) echo "rien encore" ;;
# 5) echo "rien encore" ;;
# 6) echo "rien encore" ;;
# 7) echo "rien encore" ;;
# 8) echo "rien encore" ;;
9) voir_journal ;;
0)
echo ""
;;
*)
quitter="1"
_quitter ;;
esac
}
#********************************************************************
# journal "Chargement..." "_main"
function _main {
journal "-----------------
FONCTION _main
-----------------" ;
menuchoice=$(frm_principale);
frm_principale_parser ${menuchoice%|*} # pour corriger le 1|1
if [ $quitter!="1" ] ; then
# on boucle tant que quitter est différent de 1
# pas de else car pas nescessaire ;°)
_main ;
fi
}
#********************************************************************
# journal "Chargement..." "setDirOrigine"
function setDirOrigine {
journal "-----------------
FONCTION setDirOrigine
-----------------" ;
local dirOrigineOld="$dirOrigine" ;
dirOrigine="$(zenity --file-selection --directory --filename="$dirOrigine/")" ;
if [ $? = 0 ] ;
then
journal "Le dirOrigine est ${dirOrigine}" ;
else
dirOrigine="$dirOrigineOld" ;
fi
}
# journal "Chargement..." "setDirDestination"
function setDirDestination {
journal "-----------------
FONCTION setDirDestination
-----------------" ;
local dirDestinationOld="$dirDestination" ;
dirDestination="$(zenity --file-selection --directory --filename="$dirDestination/")" ;
if [ $? = 0 ] ;
then
journal "dirDestination : ${dirDestination}" ;
else
dirDestination="$dirDestinationOld" ;
fi
}
# journal "Chargement..." "afficher_aide_ldc"
function afficher_aide_ldc {
echo "
-----------------------------------------------
exemples :
$nomLogiciel -[OPTIONS]
-----------------------------------------------
"
}
#********************************************************************
# journal "Chargement..." "parser_arguments_VARIABLES"
function parser_arguments_VARIABLES {
journal "-----------------
FONCTION parser_arguments_VARIABLES $@
-----------------"
# PARSER VARIABLES
local i
for i in $@ ;
do
case $i in
-h|-H|--help) afficher_aide_ldc ;;
# fiche=*) fiche="${i#*=}" ;;
fichier_rch=*) fichier_rch="${i#*=}" ;;
esac
done
}
# journal "Chargement..." "parser_arguments_ACTION"
function parser_arguments_ACTION {
journal "-----------------
FONCTION parser_arguments_ACTION $@
-----------------"
local i
for i in $@
do
case $i in
-r|--range) range ;;
# *) journal "$i - unknown option" ;;
esac
done
}
#********************************************************************
# journal "Chargement..." "EDITION_IN"
function EDITION_IN {
journal "-----------------
FONCTION EDITION_IN $@
-----------------"
_initialisation
_main
}
# journal "Chargement..." "EDITION_OUT"
function EDITION_OUT {
journal "-----------------
FONCTION EDITION_OUT
-----------------"
parser_arguments_VARIABLES "$@"
_initialisation
parser_arguments_ACTION "$@"
}
# ********************************************************************
if [ "$#" -eq 0 ]; then
journal "mode_edition=TRUE -> IN"
mode_edition="TRUE"
EDITION_IN
else
journal "mode_edition=FALSE -> OUT"
mode_edition="FALSE"
EDITION_OUT "$@"
fi
# ********************************************************************
exit 0
Pour les GUI vite faits avec une liste de choix j'ai ce genre de chose avec zenity list
je remet un exemple que j'ai mis sur le forum pour lancer des jeux dans Mame
#!/bin/bash
# ----------------------------------------------
nomLogiciel="$(basename "$0")"
FONCTION="lancement de jeux avec Mame"
VERSION="alpha"
# NOTES DE VERSIONS
#
# ----------------------------------------------
# à mettre au début d'un fichier bash
# pas encore géré
# PID=$$
# FIFO=/tmp/FIFO${PID}
# mkfifo ${FIFO}
# ----------------------------------------------
echo "lancement $nomLogiciel..."
declare -a GAME_NAME ;
declare -a GAME_PATH ;
declare -a GAME_ARGS ;
function _journal {
fichier_log="$nomLogiciel.log"
if [ -f "$fichier_log" ];
then
echo "..."
else
echo "Création du fichier de log : $fichier_log"
touch "$fichier_log";
fi
}
echo "ouverture du journal"
_journal
function journal {
echo "$@" >> $fichier_log
}
# journal "Chargement..." "voir_journal"
function voir_journal {
journal "-----------------
FONCTION voir_journal $@
-----------------"
zenity --text-info \
--width=600 --height=450 \
--title="Fichier Journal" \
--filename=$"$fichier_log" \
--checkbox="vider le journal en quittant."
case $? in
# 0) 2>/dev/NULL > "$fichier_log";
0) rm -f "$fichier_log" ;
_journal
journal "RàZ Remise à zéro du journal !"
;;
1) journal "Sortie - voir_journal !" ;;
-1) journal "voir_journal - An unexpected error has occurred." ;;
esac
}
# journal "Chargement..." "_initialisation"
function _initialisation {
journal "*******************initialisation*******************"
quitter="0"
journal "VARIABLES"
MAME="/usr/games/mame"
LAQUESTION="<b>$nomLogiciel</b>
--------------------------------------------------
Ce module est une liste de choix de jeux Mame
--------------------------------------------------
le double clic sur un choix pour lancer un jeu
sélection avec les flèches puis entrée aussi
echap pour quitter
" ;
#-------------------------------------------------------------
GAME_NAME[0]="Nom" ;
GAME_PATH[0]="Chemin" ;
GAME_ARGS[0]="Arguments" ;
#-------------------------------------------------------------
# METTRE LA LISTE ET LES PARAMETRAGES DES JEUX ICI
# ATTENTION ZENITY EST TRES CHATOUILLEUX
# IL N'AIME PAS LES LES VARIBLES QUI COMMENCENT PAR UN TIRET "-"
# SOLUTION : METTRE UN ESPACE
#-------------------------------------------------------------
GAME_NAME[1]="makaimurg" ;
GAME_PATH[1]="/home/mame/roms/makaimurg" ;
# METTRE LES DIFFERENTES CONF A COMMENTER OU DECOMMENTER
# GAME_ARGS[1]=" -resolution 1900x1080 -waitvsync -cheat -autosave" ; # CONFIG MAXI
GAME_ARGS[1]=" -resolution 1400x1050 -waitvsync -cheat -autosave" ; # CONFIG DEFAUT
# GAME_ARGS[1]=" -resolution 1024x768 -waitvsync -cheat -autosave" ; # CONFIG MINI
#-------------------------------------------------------------
GAME_NAME[2]="Jeux 2" ;
GAME_PATH[2]="/chemin/vers/jeux2" ;
GAME_ARGS[2]="arguments de Jeux 2" ;
#-------------------------------------------------------------
GAME_NAME[3]="Jeux 3" ;
GAME_PATH[3]="/chemin/vers/jeux3" ;
GAME_ARGS[3]="arguments de Jeux 3" ;
#-------------------------------------------------------------
GAME_NAME[4]="Jeux 4" ;
GAME_PATH[4]="/chemin/vers/jeux4" ;
GAME_ARGS[4]="arguments de Jeux 4" ;
#-------------------------------------------------------------
GAME_NAME[5]="Jeux 5" ;
GAME_PATH[5]="/chemin/vers/jeux5" ;
GAME_ARGS[5]="arguments de Jeux 5" ;
#-------------------------------------------------------------
GAME_NAME[6]="Jeux 6" ;
GAME_PATH[6]="/chemin/vers/jeux6" ;
GAME_ARGS[6]="arguments de Jeux 6" ;
#-------------------------------------------------------------
GAME_NAME[7]="Jeux 7" ;
GAME_PATH[7]="/chemin/vers/jeux7" ;
GAME_ARGS[7]="arguments de Jeux 7" ;
#-------------------------------------------------------------
GAME_NAME[8]="Jeux 8" ;
GAME_PATH[8]="/chemin/vers/jeux8" ;
GAME_ARGS[8]="arguments de Jeux 8" ;
#-------------------------------------------------------------
GAME_NAME[9]="Jeux 9" ;
GAME_PATH[9]="/chemin/vers/jeux9" ;
GAME_ARGS[9]="arguments de Jeux 9" ;
#-------------------------------------------------------------
}
# journal "Chargement..." "_quitter"
function _quitter {
journal "_quitter"
# mettre ici tout ce qui sera nescessaire à la bonne fermeture
exit 0
}
# journal "Chargement..." "frm_principale"
function frm_principale {
journal "*******************frm_principale*******************"
zenity --list --width=600 --height=430 --text="$LAQUESTION" \
--ok-label="Sélectionner" \
--cancel-label="quitter" \
--hide-column 1 --column "" --column "${GAME_NAME[0]}" --column "${GAME_ARGS[0]}" \
1 "${GAME_NAME[1]}" "${GAME_ARGS[1]}" \
0 "" "" \
2 "${GAME_NAME[2]}" "${GAME_ARGS[2]}" \
3 "${GAME_NAME[3]}" "${GAME_ARGS[3]}" \
4 "${GAME_NAME[4]}" "${GAME_ARGS[4]}" \
5 "${GAME_NAME[5]}" "${GAME_ARGS[5]}" \
6 "${GAME_NAME[6]}" "${GAME_ARGS[6]}" \
7 "${GAME_NAME[7]}" "${GAME_ARGS[7]}" \
8 "${GAME_NAME[8]}" "${GAME_ARGS[8]}" \
9 "${GAME_NAME[9]}" "${GAME_ARGS[9]}" \
0 "" "" \
100 "journal" "voir les logs" \
101 "aide" "texte aide" ;
}
# journal "Chargement..." "frm_principale_parser"
function frm_principale_parser {
journal "*******************frm_principale_parser*******************"
journal "frm_principale_parser : $1"
case $1 in
# 1) lanceur "$1" ;;
[1-9]) lanceur $1 ;;
100) voir_journal ;;
101) voir_aide ;;
0) echo "" ;;
*) # quitter="1" ;
_quitter ;;
esac
}
# journal "Chargement..." "lanceur"
function lanceur {
nombre=$1
echo "lancement de ${GAME_NAME[$nombre]}"
# $MAME "${GAME_PATH[9]}" "${GAME_ARGS[9]}"
}
# journal "Chargement..." "_main"
function _main {
journal "_main"
menuchoice=$(frm_principale);
frm_principale_parser ${menuchoice%|*} # pour corriger le 1|1
if [ $quitter!="1" ] ; then
#on boucle tant que quitter est différent de 1
#pas de else car pas nescessaire ;°)
_main
fi
}
# journal "Chargement..." "voir_aide"
function voir_aide {
echo "
ce script crée un fichier journal avec un .log
les fonction _journal et journal
un appel de journal fonctionnera comme echo
_initialisation porte bien son nom
il est lancé avant main
mettre les jeux dedans selon le modèle laissé
_main
la boucle permet de relancer l'interface principale
chaque fois qu'une action est terminée
frm_principale
lance zenity et retournera le numéro de ligne sélectionnée
frm_principale_parser
effectuera une action selon la réponse donnée par frm_principale
_quitter
permet de fermer plus proprement son application
"
}
# #-initialisation
_initialisation
_main
exit 0
bon code !
Hors ligne