How do I start vassal in Linux?

There was actually a point to showing how one can pipe-line several small applications into a larger whole. That’s really the power of the command line. But of course, you are right that it is simpler, albeit less pædagogical :smile:

Will you add these small files to the distribution? Perhaps with a script like (named e.g., desktop-integration.sh or something like that)

#!/bin/sh 

dest=/usr/local
mode=install

usage() {
   echo "Usage: $0 [install|uninstall] [--user|--system|--destination PREFIX]"
}

while test $# -gt 0 ; do 
    case $1 in 
     -h|--help)  usage ; exit 0 ;; 
     install) mode=install ;; 
     uninstall) mode=uninstall ;; 
     -u|--user) dest=$HOME/.local ;;
     -s|--system) dest=/usr/local ;; 
     -d|--destination) dest=$2 ; shift ;; 
     *) echo "$0: Unknown argument: $1" ; exit 1 ;; 
    esac
    shift 
done 

if test "x$mode" == "xinstall" ; then
  EXEC_PATH=$(realpath "$0")
  INSTALL_DIR=$(dirname "${EXEC_PATH}")

  sed "s|$$INSTALL_DIR|$INSTALL_DIR|" < vassal.desktop > tmp.desktop
  sed "s|$$INSTALL_DIR|$INSTALL_DIR|" < applications-x-vassal.xml > tmp.xml   
  mkdir -p $dest/applications
  mkdir -p $dest/mime/packages
  mkdir -p $dest/bin
  mv tmp.desktop $dest/applications/vassal.desktop
  mv tmp.xml     $dest/mime/packages/application-x-vassal.xml 
  update-mime-database $dest/mime
  update-desktop-database $dest/
  (cd $dest/bin && ln -s $EXEC_PATH vassal)
else
  rm -f $dest/mime/packages/application-x-vassal.xml
  rm -f $dest/applications/vassal.desktop
  rm -f $dest/bin/vassal
  rmdir -p --ignore-fail-on-non-empty $dest/applications
  rmdir -p --ignore-fail-on-non-empty $dest/mime/packages
  rmdir -p --ignore-fail-on-non-empty $dest/bin
fi

A user can then easily install the integration - either system-wide or for the user only.

Yours,
Christian