xref: /JGit/org.eclipse.jgit.pgm/jgit.sh (revision df81c56524e578f569ea12854526c1461ac6e42d)
1#!/bin/sh
2# Copyright (C) 2008-2009, Google Inc.
3# Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
4# and other copyright owners as documented in the project's IP log.
5#
6# This program and the accompanying materials are made available
7# under the terms of the Eclipse Distribution License v1.0 which
8# accompanies this distribution, is reproduced below, and is
9# available at http://www.eclipse.org/org/documents/edl-v10.php
10#
11# All rights reserved.
12#
13# Redistribution and use in source and binary forms, with or
14# without modification, are permitted provided that the following
15# conditions are met:
16#
17# - Redistributions of source code must retain the above copyright
18#   notice, this list of conditions and the following disclaimer.
19#
20# - Redistributions in binary form must reproduce the above
21#   copyright notice, this list of conditions and the following
22#   disclaimer in the documentation and/or other materials provided
23#   with the distribution.
24#
25# - Neither the name of the Eclipse Foundation, Inc. nor the
26#   names of its contributors may be used to endorse or promote
27#   products derived from this software without specific prior
28#   written permission.
29#
30# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
31# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
32# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
33# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
34# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
35# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
36# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
37# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
38# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
39# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
41# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
42# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43
44cmd=
45for a in "$@"
46do
47	case "$a" in
48	-*) continue ;;
49	*)  cmd=$a; break; ;;
50	esac
51done
52
53use_pager=
54case "$cmd" in
55blame)    use_pager=1 ;;
56diff)     use_pager=1 ;;
57log)      use_pager=1 ;;
58esac
59
60this_script=`which "$0" 2>/dev/null`
61[ $? -gt 0 -a -f "$0" ] && this_script="$0"
62cp=$this_script
63
64platform="`uname`"
65if [ -n "$JGIT_CLASSPATH" ]
66then
67	cp_sep=:
68	# On Windows & MingW use ";" to separate classpath entries
69	[ "${platform#MINGW}" != "$platform" ] && cp_sep=";"
70	cp="$cp$cp_sep$JGIT_CLASSPATH"
71fi
72
73# Cleanup paths for Cygwin.
74#
75case "$platform" in
76CYGWIN*)
77	cp=`cygpath --windows --mixed --path "$cp"`
78	;;
79Darwin)
80	if [ -e /System/Library/Frameworks/JavaVM.framework ]
81	then
82		java_args+='
83			-Dcom.apple.mrj.application.apple.menu.about.name=JGit
84			-Dcom.apple.mrj.application.growbox.intrudes=false
85			-Dapple.laf.useScreenMenuBar=true
86			-Xdock:name=JGit
87			-Dfile.encoding=UTF-8
88		'
89	fi
90	;;
91esac
92
93CLASSPATH="$cp"
94export CLASSPATH
95
96java=java
97if [ -n "$JAVA_HOME" ]
98then
99	java="$JAVA_HOME/bin/java"
100fi
101
102if [ -n "$use_pager" ]
103then
104	use_pager=${GIT_PAGER:-${PAGER:-less}}
105	[ cat = "$use_pager" ] && use_pager=
106fi
107
108if [ -n "$use_pager" ]
109then
110	LESS=${LESS:-FSRX}
111	export LESS
112
113	"$java" $java_args org.springframework.boot.loader.JarLauncher "$@" | $use_pager
114	exit
115else
116  exec "$java" $java_args org.springframework.boot.loader.JarLauncher "$@"
117  exit 1
118fi
119