X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=extras%2Fanalyser%2Fzsh_completion.sh;h=a380a9088aadedd870f8fa0cf1f9bae2df54d088;hb=6987c696afae74624552f26b1d5f445e974b5d52;hp=f691e344a032657f142b9c5900a2ec22f7801278;hpb=532b6e4cfe04d691846ffc7d87ce8b7b32103081;p=vlc diff --git a/extras/analyser/zsh_completion.sh b/extras/analyser/zsh_completion.sh index f691e344a0..a380a9088a 100755 --- a/extras/analyser/zsh_completion.sh +++ b/extras/analyser/zsh_completion.sh @@ -15,93 +15,82 @@ case $HOST in SUFFIX=so ;; *) - echo WARNING: Unknown platform: \'$HOST\' + echo "WARNING: Unknown platform: \'$HOST\', can't check for libraries" ;; esac -if test -z "$SUFFIX"; then - echo "ERROR: unknown suffix for shared objects -Please run \"SUFFIX=xxx $0\" -where xxx is the shared object extension on your platform." - exit 1 -fi - #Distributors can run BUILDDIR=XXX ./zsh_completion.sh -if test -z "$BUILDDIR"; then - BUILDDIR=../../ -fi +[ -z "$BUILDDIR" ] && BUILDDIR=../../ + +VLC_PLUGIN_PATH="$BUILDDIR" +export VLC_PLUGIN_PATH function find_libvlc { - for i in $BUILDDIR/src/.libs/libvlc.$SUFFIX $BUILDDIR/src/libvlc.$SUFFIX; do - test -e $i && LIBVLC=$i && return 0 + [ -z "$SUFFIX" ] && return 0 # linking will fail if lib isn't found + for i in $BUILDDIR/lib/.libs/libvlc.$SUFFIX $BUILDDIR/lib/libvlc.$SUFFIX; do + [ -e $i ] && LIBVLC=$i && return 0 done return 1 } -while test -z "$LIBVLC"; do +function find_libvlccore { + [ -z "$SUFFIX" ] && return 0 # linking will fail if lib isn't found + for i in $BUILDDIR/src/.libs/libvlccore.$SUFFIX $BUILDDIR/src/libvlccore.$SUFFIX; do + [ -e $i ] && LIBVLCCORE=$i && return 0 + done + return 1 +} + +while [ -z "$LIBVLC" ]; do if ! find_libvlc; then - /bin/echo -n "Please enter the directory where you built vlc: " + printf "Please enter the directory where you built vlc: " read BUILDDIR fi done -echo "libvlc found !" +if ! find_libvlccore; then + echo "libvlccore not found !" + exit 1 +fi -LD_LIBRARY_PATH=$BUILDDIR/src/.libs +export LD_LIBRARY_PATH=$BUILDDIR/src/.libs:$BUILDDIR/lib/.libs +CXXFLAGS="$CXXFLAGS -g -O0" -if test -e ../../extras/contrib/config.mak -a ! "`grep HOST ../../extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "$HOST"; then - echo "contribs found !" - CPPFLAGS="-I../../extras/contrib/include" +if [ -e ../../extras/contrib/config.mak -a ! "`grep HOST ../../extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "$HOST" ]; then + CXXFLAGS="-I../../extras/contrib/include" fi -if test -z "$CXX"; then - CXX=g++ -fi +[ -z "$CXX" ] && CXX=g++ -ZSH_BUILD="$CXX $CPPFLAGS $CXXFLAGS -D__LIBVLC__ -DHAVE_CONFIG_H -I$BUILDDIR -I$BUILDDIR/include -I../../include zsh.cpp $LIBVLC -o zsh_gen" +ZSH_BUILD="$CXX $CXXFLAGS -DHAVE_CONFIG_H -I$BUILDDIR -I$BUILDDIR/include -I../../include zsh.cpp $LIBVLC $LIBVLCCORE -o zsh_gen" -echo "Building zsh completion generator ... " echo $ZSH_BUILD echo eval $ZSH_BUILD || exit 1 -echo "Generating zsh completion ..." -if ! ./zsh_gen --plugin-path=$BUILDDIR >_vlc 2>/dev/null; then - echo "ERROR: the generation failed.... :( +printf "Generating zsh completion in _vlc ... " + +VLC_PLUGIN_PATH=$BUILDDIR/modules +if ! ./zsh_gen >_vlc 2>/dev/null; then + echo " +ERROR: the generation failed.... :( Please press enter to verify that all the VLC modules are shown" read i - ./zsh_gen --plugin-path=$BUILDDIR -vvv --list + ./zsh_gen -vv --list echo " If they are shown, press enter to see if you can debug the problem -It will be reproduced by running \"./zsh_gen --plugin-path=$BUILDDIR -vvv\"" +It will be reproduced by running \"./zsh_gen -vv\"" read i - ./zsh_gen --plugin-path=$BUILDDIR -vvv - exit 1 -fi - -echo "zsh completion is `echo \`wc -l _vlc\`` lines long !" - -test -z "$NOINSTALL" || exit 0 -#Distributors can run NOINSTALL=mg ./zsh_completion.sh - -if ! /usr/bin/which zsh >/dev/null 2>&1; then - echo "ERROR: zsh not found, you'll have to copy the _vlc file manually" + ./zsh_gen -vv exit 1 fi -test -z "$ZSH_FPATH" && ZSH_FPATH=`zsh -c "echo \\$fpath|cut -d\" \" -f1"` -if test -z "$ZSH_FPATH"; then - echo "ERROR: Could not find a directory where to install completion -Please run \"ZSH_FPATH=path $0\" -where path is the directory where you want to install completion" - exit 1 -fi +echo "done" -echo "completion will be installed in $ZSH_FPATH , using root privileges -Press Ctrl+C to abort installation, and copy _vlc manually" -read i -echo "Installing completion ..." -sudo sh -c "chown 0:0 _vlc && chmod 0644 _vlc && mv _vlc $ZSH_FPATH" || exit 1 +ZSH_FPATH=`echo $fpath|cut -d\ -f1` +[ -z "$ZSH_FPATH" ] && exit 0 # don't know where to install -echo "zsh completion for VLC successfully installed :) -Restart running zsh instances, or run \"compinit\" to start using it." +echo " +You should now copy _vlc to $ZSH_FPATH and then +remove ~/.zcompdump and restart your running zsh instances, +or run \"compinit\" to start using vlc completion immediately."