[FFmpeg-devel] [RFC][PATCH] Tool to sort files a bit

Michael Niedermayer michaelni
Sat Oct 9 21:59:09 CEST 2010


On Sat, Oct 09, 2010 at 08:42:38PM +0200, Stefano Sabatini wrote:
> On date Saturday 2010-10-09 19:52:52 +0200, Michael Niedermayer encoded:
> > On Sat, Oct 09, 2010 at 11:23:30AM +0200, Stefano Sabatini wrote:
> > > On date Saturday 2010-10-09 00:12:17 +0200, Michael Niedermayer encoded:
> > > > Hi
> > > > 
> > > > The attached script creates directories and symlinks for multimedia files
> > > > based on container and codec in the file. I hope ive not done this work
> > > > redundantly
> > > > it needs to be checked by someone who knows shell escaping to make it
> > > > secure ive made no attempt at making it secure.
> > > > 
> > > > Also if people are ok with it id like to commit this so more people can work on
> > > > it, iam not an expert on shell programming ...
> > > > 
> > > > yes its intended to help with incoming / samples maybe at some point or even
> > > > to help people sort their personal file collections
> > > > 
> > > > 
> > > > commit ca9a964c2eba0ba6cda767cfe2d74b80c245dd4c
> > > > Author: Michael Niedermayer <michaelni at gmx.at>
> > > > Date:   Fri Oct 8 23:58:51 2010 +0200
> > > > 
> > > >     Tool to analyze multimedia files and create directories and symlinks for the
> > > >     container type and codecs in each file that point back to the file.
> > > > 
> > > > diff --git a/tools/jauche_sortierer.sh b/tools/jauche_sortierer.sh
> > > > new file mode 100755
> > > > index 0000000..517353f
> > > > --- /dev/null
> > > > +++ b/tools/jauche_sortierer.sh
> > > > @@ -0,0 +1,19 @@
> > > > +#!/bin/sh
> > > > +#GPL
> > > > +#TODO
> > > > +#add pixelformat/sampleformat into the path of the codecs
> > > > +
> > > > +FFP=../ffprobe
> > > > +TMP=./misthaufen
> > > 
> > > The name of the script and of $TMP are weird, as already noted...
> > 
> > I like the name of the script.
> 
> It looks like French, but I won't argue with that, if it makes you
> feel happier that's allright...

ok, commited it


> 
> > > Also $TMP should contain at least the pid, in order to avoid conflicts
> > > with other concurrent instances of the script, so I suggest:
> > > TMP=$TMPDIR/$(basename $0)-$$
> > 
> > fixed differently, your variant is insecure
> > 
> > 
> > > 
> > > > +TARGET=$1
> > > > +shift
> > > > +
> > > > +for v do
> > > 
> > > what is v?
> > 
> > I probably dont understand your question
> > its a variable
> 
> I mean... how it is passed to the script (is the user supposed to set
> v=FILE1 FILE2 ...) or what?

help for
for: for NAME [in WORDS ... ;] do COMMANDS; done
    The `for' loop executes a sequence of commands for each member in a
    list of items.  If `in WORDS ...;' is not present, then `in "$@"' is
    assumed.  For each element in WORDS, NAME is set to that element, and
    the COMMANDS are executed.


> 
> > > > +    BASE=`basename $v`
> > > > +    echo $v | egrep -i '(public|private)' >/dev/null && echo Warning $v may be private
> > > > +    $FFP $v 2> $TMP
> > > > +    FORM=`(grep 'Input #0, ' -m1 $TMP || echo 'Input #0, unknown') | sed 's/Input #0, \([a-zA-Z0-9_]*\).*/\1/' `
> > > 
> > > Since we're using ffprobe the parsing can be simplified a lot (and
> > > made more robust), using ffprobe -show_streams -show_format, also it
> > > should make trivial to add support for other features like pixfmts,
> > > samplefmts, codec tags.
> > 
> > robuster yes, simpler iam not so sure
> > but suggestion or better patches are welcome if you know how to do it simpler
> 
> uhm... I suppose perl is not acceptable?

if you want to write a better script in perl this is welcome
the only goal is to make cleaning up and organizing incoming simpler and more
fun. So if you have fun writing this in perl do it ...
I for example have fun nameing scripts like this one ;)

just keep in mind that the files are random things people upload and everything
from filename to content is designed to root the system, odd special characters
in the filename must not do nasty things

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Many things microsoft did are stupid, but not doing something just because
microsoft did it is even more stupid. If everything ms did were stupid they
would be bankrupt already.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20101009/e1e928f8/attachment.pgp>



More information about the ffmpeg-devel mailing list