#!/bin/sh # # Ein ls für MP3 Dateien # siehe http://wiki.tcl.tk/12619 # \ exec tclsh $0 $@ package require opt source mp3InfoReader.tcl proc println { datei } { puts -nonewline [ format "%40s" [ file tail $datei ]] if {[string match [file extension $datei] .mp3]} { if [catch {::mp3InfoReader::mp3InfoReader $datei info} err] { # keine Fehlerausgabe } else { #parray info puts -nonewline [format "\t\\[0;1m«%30s»\\[0m " $info(title) ] foreach var { artist album genre year duration bitRate } { if { $::options($var) } { puts -nonewline \t$info($var) } } } } puts stdout "" } tcl::OptProc main { {?dir? "." "Verzeichniss mit MP3-Dateien" } {-artist "gibt Künstler aus"} {-bitRate "gibt BitRate aus"} {-duration "gibt Länge aus"} {-genre "gibt Genre aus"} {-year "gibt Jahr aus"} {-album "gibtAlbum aus" } {-l "Langes Listenformat verwenden"} } { foreach var { artist album bitRate duration genre year } { set ::options($var) [set $var] if {$l} { set ::options($var) 1 } } if {! [file isdirectory $dir]} { puts stderr "Eingabe $dir ist kein Verzeichnis" exit 1 } foreach datei [glob [file join $dir *]] { println $datei } } # hier wird das Skript gestartet if [catch { eval main $argv } err ] { puts stderr $err exit 1 }