/izpack-dist/src/main/resources/bin/start.sh
https://github.com/maslovalex/izpack · Shell · 125 lines · 72 code · 15 blank · 38 comment · 12 complexity · 36e173b031a5aa8d011920a24d51289d MD5 · raw file
- #!/usr/bin/env bash
- # ShellScript
- # - to detect a desktop and their native
- # File/WebBrowser such as Konqueror (KDE) or Nautilus/Epiphany (Gnome)
- # Or
- # - to detect a browser from the mozilla family
- # The first prefered one will open the given $1 document
- # which should be a web url (http://host.domain.com/path/index.html) or a
- # local file like file:///local/folder/document.html
- # Note: Tested on SuSE, Fedora an Mandriva Linux and Solaris 9 with kde, gnome or a mozilla installed
- #
- # This is licensed as part of
- # IzPack - Copyright 2001-2005 Julien Ponge, All Rights Reserved.
- #
- # http://izpack.org/
- # http://izpack.codehaus.org/
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #
- # Usage:
- #
- # ./start.sh http://izpack.org/
- #
- # author marc.eppelmann@gmx.de
- # $Id$
- #
- function usage() {
- echo "Launch an url with the browser."
- echo ""
- echo "Usage : "
- echo " ./start.sh http://izpack.org/"
- }
- function detectDesktop() {
- if [[ "$DISPLAY" = "" ]]; then
- return 1
- fi
- local LC_ALL=C
- local clients
- if ! clients=`xlsclients`; then
- # TODO: should we fall back to using ps?
- return 1
- fi
- if echo "$clients" | grep -qE '(gnome-panel|nautilus|metacity)'; then
- echo gnome
- elif echo "$clients" | grep -qE '(kicker|slicker|karamba|kwin)'; then
- echo kde
- else
- echo other
- fi
- return 1
- }
- function lookForRunningGecko(){
- if command -v firefox &>/dev/null; then
- tempfile=`mktemp`
-
- firefox -remote "ping()" 2> $tempfile
-
- if [ -s $tempfile ]; then
- rm $tempfile
- echo "none" # is not running :-)
- return 1
- else
- rm $tempfile
- echo firefox # is running :-)
- return 0
- fi
- fi # firefox "$1"
- if command -v mozilla &>/dev/null; then
- #if mozilla -remote "ping()"
- if command mozilla -remote "ping()" &>/dev/null; then
- echo mozilla # is running :-)
- return 0
- fi
- fi
- echo "none"
-
- return 1
- }
- if [[ $# = 0 ]]
- then
- usage
- exit 1
- fi
- desktop=`detectDesktop`
- gecko=`lookForRunningGecko`
- echo "found Desktop: $desktop"
- echo "found Gecko: $gecko"
- if [[ "$gecko" = "none" ]]; then # try open a new instance if found:
- if command -v firefox &>/dev/null; then
- firefox "$1" &
- elif command -v mozilla &>/dev/null; then
- mozilla "$1" &
- elif [[ "$desktop" = "gnome" ]] && command -v gnome-open &>/dev/null; then
- gnome-open "$1" &
- elif [[ "$desktop" = "kde" ]]; then
- kfmclient exec "$1" &
- else
- exit 1
- fi
- else
- echo "Launching: $gecko"
- $gecko -remote "openurl($1)" &
- fi