mit
which josm
kannst Du herausbekommen, welches Programm gestartet wird, wenn Du den
Befehl eingibst.

Hier ist ein Script, das es irgendwo auch im WIki oder so gibt (genau
weiss ich nicht mehr, wo es her ist), ich weiss auch nicht, ob es da
mittlerweile eine neue Version gibt, es funktioniert aber. Der erste
Teil sind Konfigurationen, wo Du einstellen kannst, welche Version Du
verwenden willst, etc. Dieses Programm liegt bei mir unter
/usr/bin/josm (ist evtl. nicht der beste Ort dafür, geht aber,
mittlerweile würde ich es wohl eher unter /usr/local/bin legen,
wichtig ist nur, dass es wo liegt, wo das Verzeichnis im Suchpfad
enthalten ist ($PATH), das kannst Du mit `echo $PATH` prüfen):

#!/bin/bash
#
# Copyright (C) 2009 "Cobra" from <http://www.openstreetmap.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#
# Startup-script for josm:
#   - aktualisiert josm falls nötig auf die aktuelle Version von
latest oder tested (einstellbar)
#   - sichert alte Versionen (sehr hilfreich, wenn die neue Version
nicht funktioniert wie gewünscht)
#   - erlaubt es, eine alte Version zu starten (per josm -r [revision])
#   - übergibt alle Argumente an JOSM, nützlich um einen oder mehrere
Dateien direkt in JOSM zu öffnen
#   - setzt Umgebungsvariablen, übergibt die passenden Parameter an
Java und sorgt dafür, dass alsa benutzt wird
#
# Konfiguration (unter diesem Kommentarblock):
#   - Verzeichnis für die gespeicherten josm-Versionen anpassen, falls gewünscht
#   - josm-Variante wählen (latest/tested)
#   - Anzahl der gesicherten Versionen anpassen, falls gewünscht
#   - Wird compiz (3D-Desktop) benutzt? Dann bitte die entsprechende
Zeile auskommentieren
#   - Menge des für josm verfügbaren Speichers anpassen
#   - Wer andere Parameter für java oder josm ändern möchte, kann das
in der letzten Zeile tun
#
# Benutzung:
#   josm [-lr] [revision] [DATEI(EN)]
#
#   Optionem:
#   -l  alle gespeicherten josm-Versionen ausgeben und beenden
#   -r  die angegebene Version von josm starten, als Argument entweder
eine (lokal vorhandene) Revisionsnummer angeben oder "last" für die
vorletzte gespeicherte
#
# ToDo:
#   - add possibility to configure a proxy and to select a certain
version of java
#   - add possibility to select an older revision and run it
#   - add possibility to select -tested instead of -latest revision
#   - detect automatically if compiz is running
#   - detect if aoss is available, if not, return warning and start without it
#   - add some help (e.g. via --help)
#

# Wo soll das josm-archiv gespeichert werden?
dir=~/bin/josm-archive
# Welche Variante von josm soll genutzt werden? "tested" ist die
neueste mehr oder weniger stabile Version, "latest" kann teilweise
schwere Fehler haben, daher ist hier Vorsicht angesagt!
version=latest
# Wie viele alte Versionen sollen gesichert werden?
numbackup=3
# Zeit in Sekunden, die wget bis zu einem erneuten Versuch bzw.
Abbruch warten soll; bei langsamen Verbindungen diesen Wert erhöhen
timeout=10
# Maximale Anzahl an Versuchen, eine Verbindung herzustellen
retries=2
# Falls compiz eingesetzt wird, muss die nächste Zeile auskommentiert werden
#export AWT_TOOLKIT=MToolkit
# Wie viel Speicher soll für josm maximal zur Verfügung stehen?
mem=2024M

cd $dir

# parse arguments
set -- `getopt "hlr:" "$@"` || {
      echo "Benutzung: `basename $0` [-h] [-l] [-r revision] [Dateien]" 1>&2
      exit 1
}
override_rev=0
latestrev=-1
while :
do
      case "$1" in
           -h) echo "Benutzung: `basename $0` [-h] [-l] [-r revision]
[Dateien]"; exit 0 ;;
           -l) echo Verfügbare josm-Versionen: ; ls josm*.jar | cut -d
'-' -f 2 | cut -d '.' -f 1 ; exit 0 ;;
           -r) shift; override_rev=1; latestrev="$1" ;;
           --) break ;;
      esac
      shift
done
shift

# parse special revision argument "last" for using next to last revision
if [ $override_rev -eq 1 -a $latestrev = last ]
  then
    latestrev=`ls josm*.jar | cut -d '-' -f 2 | cut -d '.' -f 1 | tail
-n 2 | head -n 1`
fi

# if $dir doesn't exist, create it (initial setup):
if [ -d $dir ]; then :
  else mkdir -p $dir; echo "directory $dir does not exist; creating it..."
fi

# get revision number of newest local version:
if ls josm-*.jar > /dev/null;
  then latestlocalrev=`ls josm*.jar | cut -d '-' -f 2 | cut -d '.' -f
1 | tail -n 1`
  else latestlocalrev=0
fi

# get revision number of backed up versions
oldestrev=`ls josm*.jar | cut -d '-' -f 2 | cut -d '.' -f 1 | head -n 1`

# count backed up versions
numsaved=`ls josm*.jar | grep -c ''`

if [ $override_rev -eq 1 ]
  # check if desired revision is available:
  then
    if ls josm*.jar | cut -d '-' -f 2 | cut -d '.' -f 1 | grep $latestrev
      then
        echo forcing use of revision $latestrev
      else
        echo revision $latestrev not found! Use `basename $0` -l to
display a list of available revisions. exiting.
        exit 1
    fi
  else
    # get revision number of desired version
    latestrev=`wget -qO - --tries=$retries --timeout=$timeout
http://josm.openstreetmap.de/version | grep $version | cut -d ' ' -f
2`
    if [ ${latestrev:=0} -eq 0 ]
      then echo could not get version from server, working in offline mode
    fi

    # download current revision of josm if newest local revision is
older than the current revision of josm on the server
    if [ $latestrev -eq 0 ]
      then
        echo working offline, using latest local version...
        latestrev=$oldestrev
      else
      if [ $latestlocalrev -lt $latestrev ]
        then
          echo latest local version is $latestlocalrev, latest
available version is $latestrev - starting download...
          wget -O $dir/josm-$latestrev.jar -N
http://josm.openstreetmap.de/download/josm-$version.jar
          # delete oldest file if enough newer ones are present
          if [ $numsaved -gt $numbackup ]
            then rm $dir/josm-$oldestrev.jar
          fi
        else echo local version $latestlocalrev is already uptodate
      fi
    fi
fi

# start josm: use alsa instead of oss, enable 2D-acceleration, set
maximum amount of memory used for josm to $mem MB and pass all
arguments to josm:
cd $OLDPWD
echo starting josm...
java -jar -Xmx$mem $dir/josm-$latestrev.jar $* &


# ENDE SCRIPT

Gruß Martin

_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an