ardour/tools/videotimeline/install_video_tools.sh
Robin Gareus a366fba7d0 refine video-tools installer:
* arch/platform detection
* curl progress-bar
2013-04-20 14:52:18 +02:00

147 lines
3.4 KiB
Bash
Executable File

#!/bin/sh
TARGETDIR="$1"
if test -z "$(which curl)"; then
echo "This script requires 'curl' - please install it" >&2
exit 1
fi
###############################################################################
### look-up architecture
case $(uname -m) in
i[3456789]86|x86|i86pc)
echo "Architecture is x86"
MULTIARCH="i386"
;;
x86_64|amd64|AMD64)
echo "Architecture is x86_64"
MULTIARCH="x86_64"
;;
*)
echo
echo "ERROR: Unknown architecture `uname -m`" >&2
exit 1
;;
esac
case $(uname) in
Linux|linux)
MULTIARCH="${MULTIARCH}-linux-gnu"
;;
*)
echo
echo "ERROR: Platform `uname` is not supported by this script" >&2
exit 1
;;
esac
echo "Multiarch triplet is '$MULTIARCH'"
###############################################################################
### install target directory
checkdir () {
DUT="$1"
CHECKPATH="${2:-yes}"
ECHO="${3:-echo}"
if test -z "$DUT"; then
echo "-1"
return
fi
if test ! -d "$DUT"; then
$ECHO "ERROR: '$DUT' is not a directory'"; >&2
echo "-1"
return
fi
if test ! -w "$DUT"; then
$ECHO "ERROR: no write permissions for '$DUT'" >&2
echo "-1"
return
fi
echo $PATH | grep -q "$DUT"
if test $? != 0; then
if test "$CHECKPATH" != "yes"; then
$ECHO "WARNING: '$DUT' is not in \$PATH" >&2
else
$ECHO "ERROR: '$DUT' is not in \$PATH" >&2
echo "-1"
return
fi
fi
echo 0
}
while test $(checkdir "$TARGETDIR" no) != 0 ; do
ARDOUR=$(ls -td /opt/Ardour* 2>/dev/null | head -n 1)
if test -n "${ARDOUR}" -a $(checkdir "${ARDOUR}/bin" no true) = 0; then
echo -n "found ardour installation in '${ARDOUR}/bin'. Install there? [Y|n] "
read a;
if test "$a" != "n" -a "$a" != "N"; then
TARGETDIR="${ARDOUR}/bin"
continue
fi
fi
if test $(checkdir "/usr/bin" yes true) = 0; then
echo -n "Can write to '/usr/bin' Install there? [Y|n] "
read a;
if test "$a" != "n" -a "$a" != "N"; then
TARGETDIR="/usr/bin"
continue
fi
fi
if test $(checkdir "${HOME}/bin" yes true) = 0; then
echo -n "Found '${HOME}/bin' in PATH. Install there? [Y|n] "
read a;
if test "$a" != "n" -a "$a" != "N"; then
TARGETDIR="${HOME}/bin"
continue
fi
fi
if test $(checkdir "/usr/local/bin" yes true) = 0; then
echo -n "Can write to '/usr/local/bin' Install there? [Y|n] "
read a;
if test "$a" != "n" -a "$a" != "N"; then
TARGETDIR="/usr/local/bin"
continue
fi
fi
echo
echo "ERROR: Cannot find a suitable installation directory" >&2
echo "run: $0 /install/path/bin" >&2
echo "'/install/path/bin' must be an existing directory and should be in \$PATH" >&2
exit 1
done
###############################################################################
### actual install procedure
echo "installing video-tools to '${TARGETDIR}'."
cd "$TARGETDIR" || exit 1
HARVID_VERSION=$(curl -s http://ardour.org/files/video-tools/harvid_version.txt)
echo "Downloading harvid-${MULTIARCH}-${HARVID_VERSION}."
curl -L --progress-bar \
http://ardour.org/files/video-tools/harvid-${MULTIARCH}-${HARVID_VERSION}.tgz \
| tar -x -z --exclude=README --exclude=harvid.1 --strip-components=1 || exit 1
XJADEO_VERSION=$(curl -s http://ardour.org/files/video-tools/xjadeo_version.txt)
echo "Downloading xjadeo-${MULTIARCH}-${XJADEO_VERSION}."
curl -L --progress-bar \
http://ardour.org/files/video-tools/xjadeo-${MULTIARCH}-${XJADEO_VERSION}.tgz \
| tar -x -z --exclude=README --exclude=xjadeo.1 --strip-components=1 || exit 1
mv xjadeo xjremote
echo "ardour video tools installed successfully."