Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/01/2006, à 01:57

ZeBob

Mon premier script bash terminé!

Il sert à remplacer la musique enregistrée avec streamripper que l'on n'aime pas par un fichier vide. De cette manière streamripper ne réenregistre pas cette musique et on gagne de la place.
Dites moi ce que vous en pensez, si je dois faire des améliorations... Merci
Si vous savez où je peux le publier aussi... smile

#!/bin/bash
#################################################################
#                                                               #
#       DESCRIPTION                                             #
#   StreamManager: script which delete non-wanted songs         #
#   recorded by streamripper and which create a blank file      #
#   with the same name in order to not re-record it.            #
#                                                               #
#################################################################
#################################################################
#                                                               #
#       INFO                                                    #
# Author : ZeBob - zebob.m AT gmail DOT com                     #
# Licence : GNU GPL                                             #
# Dependency                                                    #
#    zenity                                                     #
# History                                                       #  
#    22.01.2006 : v0.1                                          #
# Install                                                       #
#    Put in ~/.gnome2/nautilus-scripts/                         #
#    In a console :                                             #
#       chmod u+x ~/.gnome2/nautilus-scripts/streammanager      #
# Use                                                           #
#    Select files to delete in Nautilus or just run the script  #
#    to list all music files in the folder                      #
# Todo                                                          #
#    More localization                                          #
#    Add a zenity progress dialog when loading files            #
# Known bugs                                                    #
#    Don't work for file beginning with '-'                     #
#                                                               #
#################################################################

version="0.1"

#################################################################
#    TRADUCTIONS (todo)                                         #
#################################################################

        ###### English #####
titre="StreamManager "$version""
choisir="Choose the files you want to delete and replace by blank files."
colonne="Files"
efface=" has been deleted and replaced."

case $LANG in
        ###### French #####
fr* )
	titre="StreamManager "$version""
	choisir="Choississez les fichiers que vous voulez supprimer et remplacer par des versions vides."
	colonne="Fichiers"
	efface=" a été supprimé et remplacé."
	
	###### Add others #####
esac

#################################################################
#    VARIABLES                                                  #
#################################################################

liste=			#array with selected files or the folder where the script is run
liste_choisie=		#array with selected files after the zenity dialog
fichier_a_supprimer=	#variable with the current file to delete
resultat=		#variable which contains the results
sm_dir="$HOME/.Trash/streammanager" #the path of the deleted files

#################################################################
#    PROGRAM                                                    #
#################################################################

if [ $# -eq 0 ]; then #check if there is files in command line parameter, if not select all the file in the folder
	for fichier in *
	do	
		#check if the file is: writeable, ogg or mp3
		if [ -w "${fichier}" ]; then
			if [ "$(file -bi "${fichier}")" == "application/ogg" \
		-o "$(file -bi "${fichier}")" == "audio/mpeg" ]; then 
				liste=("${liste[@]}" "TRUE" "${fichier}") #then put all files in an array
			fi
		fi		
		
	done
else
	for fichier
	do
		if [ -w "${fichier}" ]; then				#same as above
			if [ "$(file -bi "${fichier}")" == "application/ogg" \
		-o "$(file -bi "${fichier}")" == "audio/mpeg" ]; then 
				liste=("${liste[@]}" "TRUE" "${fichier}")
			fi
		fi
	done
fi

#show a zenity dialog with files in order to choose which to delete
liste_choisie=$(zenity --title="${titre}" --width=640 --height=480 --list --text="${choisir}" --checklist \
 --separator=";" --column="   " --column="${colonne}" "${liste[@]:1}")

if [ -n "${liste_choisie}" ]; then
	
	if [ ! -e $sm_dir ]; then #check if the streammanager folder exists in the trash
		mkdir $sm_dir
	elif [ ! -d $sm_dir ]; then
		rm $sm_dir
		mkdir $sm_dir
	fi

	IFS=";"	
	for fichier_a_supprimer in ${liste_choisie[@]}
	do
		mv "${fichier_a_supprimer}" "${sm_dir}/${fichier_a_supprimer}"	 #move the file to trash
		touch "${fichier_a_supprimer}" #create a blank file with the same name
		resultat=("${resultat[@]}" "${fichier_a_supprimer}${efface}")
	done
	unset resultat[0]
	zenity --title="${titre}" --text="" --width=640 --height=480  --list --column="${colonne}" "${resultat[@]}"
	
fi

exit 0

Dernière modification par ZeBob (Le 25/01/2006, à 20:32)

Hors ligne

#2 Le 23/01/2006, à 09:29

mrf

Re : Mon premier script bash terminé!

LOL, j'ai jamais vu un script bash comme ça big_smile:D

Chez moi, il n'y a pas de commentaires, et pas de structure et tout pour connaitre les variables ..etc big_smile

Chapi chapo

#3 Le 23/01/2006, à 09:42

yeKcim

Re : Mon premier script bash terminé!

Pour ma part je suis aggréablement surpris de constater que nous programons de la meme façon, plein de commentaires partout, un explicatif au départ, plein de # pour faire des barres... Heureux de constater que la lisibilité des scripts n'est pas que mon obsession. On pourrait peut-etre le mettre sur gscript si tu veux. Envoie moi un mail si tu le veux.


Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr

Hors ligne

#4 Le 23/01/2006, à 12:10

ZeBob

Re : Mon premier script bash terminé!

Les commentaires ça vient de mes mon habitude de script dos, et aussi du fait que je me retrouve perdu quand je les relis. Et ça fait plus propre.
Par contre pour la partie traduction je me suis inspiré de scripts sur g-script.
Mais sinon pour le code en lui-même, y'a des trucs qui paraissent farfelus ?

Hors ligne

#5 Le 06/04/2006, à 11:47

kabdz08

Re : Mon premier script bash terminé!

moi aussi je commence à programmer et le fait de bien commenter le script me plait !


windows ou Linux ? hum.... that's the question !

Hors ligne

#6 Le 06/04/2006, à 11:58

Fy

Re : Mon premier script bash terminé!

kabdz08 a écrit :

moi aussi je commence à programmer et le fait de bien commenter le script me plait !

Bien commenter ne signifit pas trop commenter roll

Script sympatique et utile, merci.

Hors ligne