mkmkv/bin/mkmkv.sh

69 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
set -x
getparams() {
SOURCE_DIR=$1
BASENAME=$2
find $SOURCE_DIR -name "$BASENAME-*.srt" | while read srt
do
SRTBASENAME=`basename "$srt"`
LANG=`echo "$SRTBASENAME" | sed -e 's/^\(.*\)\-\([a-z]\{3\}\)\.srt$/\2/'`
echo " --language 0:$LANG \"`ls "$srt"`\""
done
}
# TODO : read parameters
#SOURCE_DIR=`pwd`
#TARGET_DIR=`pwd`
SOURCE_FILE=$1
TARGET_DIR=`pwd`
VIDEO_LANG=$2
FILE=`basename "$SOURCE_FILE"`
echo "file=$FILE"
SOURCE_DIR=`dirname "$SOURCE_FILE"`
echo "source_dir=$SOURCE_DIR"
BASENAME=`echo "$FILE" | sed -e 's/^\(.*\)\.avi/\1/'`
echo "basename=$BASENAME"
PARAMS="-o \"$TARGET_DIR/$BASENAME.mkv\""
if [ -n "$VIDEO_LANG" ]
then PARAMS="$PARAMS --language 0:$VIDEO_LANG --language 1:$VIDEO_LANG"
fi
PARAMS="$PARAMS \"$SOURCE_FILE\""
SRTPARAMS=`getparams "$SOURCE_DIR" "$BASENAME"`
echo "$PARAMS $SRTPARAMS" | xargs mkvmerge
# * call mkvmerge to build new mkvfile
# * move file to dest folder
# * remove source files (avi file and subtitles)
# * update database (insert)