]> git.pld-linux.org Git - packages/jstun.git/commitdiff
- init script
authorpawelz <pawelz@pld-linux.org>
Fri, 25 Feb 2011 22:27:46 +0000 (22:27 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
- better shell wrapper
- rel 1

Changed files:
    jstun.init -> 1.1
    jstun.sh -> 1.1
    jstun.spec -> 1.3
    jstun.sysconfig -> 1.1

jstun.init [new file with mode: 0644]
jstun.sh [new file with mode: 0644]
jstun.spec
jstun.sysconfig [new file with mode: 0644]

diff --git a/jstun.init b/jstun.init
new file mode 100644 (file)
index 0000000..482d6e1
--- /dev/null
@@ -0,0 +1,110 @@
+#!/bin/sh
+#
+# jstun        Java based STUN server.
+#
+# chkconfig:   345 89 11
+#
+# description: jstun Java based STUN server.
+#
+# processname: jstun
+# config:
+# pidfile:             /var/run/jstun.pid
+#
+# $Id$
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+       if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+               msg_network_down "jstun"
+               exit 1
+       fi
+else
+       exit 0
+fi
+
+STUN_PORT1=3478
+STUN_PORT2=3479
+
+# Get service config - may override defaults
+[ -f /etc/sysconfig/jstun ] && . /etc/sysconfig/jstun
+
+ARGS="$STUN_PORT1 $STUN_IPADDRESS1 $STUN_PORT2 $STUN_IPADDRESS2"
+
+start() {
+       # Check if the service is already running?
+       if [ -f /var/lock/subsys/jstun ]; then
+               msg_already_running "jstun"
+               return
+       fi
+
+       msg_starting "jstun"
+       daemon /usr/sbin/jstun --daemon --pidfile=/var/run/jstun.pid $ARGS
+       RETVAL=$?
+       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/jstun
+}
+
+stop() {
+       if [ ! -f /var/lock/subsys/jstun ]; then
+               msg_not_running "jstun"
+               return
+       fi
+
+       # Stop daemons.
+       msg_stopping "jstun"
+       PID=/var/run/jstun.pid
+       killproc --pidfile /var/run/jstun.pid jstun -TERM
+       wait $(cat /var/run/jstun.pid)
+       rm -f /var/lock/subsys/jstun
+}
+
+condrestart() {
+       if [ ! -f /var/lock/subsys/jstun ]; then
+               msg_not_running "jstun"
+               RETVAL=$1
+               return
+       fi
+
+       stop
+       sleep 1
+       start
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  restart)
+       stop
+       sleep 1
+       start
+       ;;
+  try-restart)
+       condrestart 0
+       ;;
+  reload)
+       reload
+       ;;
+  force-reload)
+       condrestart 7
+       ;;
+  status)
+       status jstun
+       RETVAL=$?
+       ;;
+  *)
+       msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}"
+       exit 3
+esac
+
+exit $RETVAL
diff --git a/jstun.sh b/jstun.sh
new file mode 100644 (file)
index 0000000..3d65d88
--- /dev/null
+++ b/jstun.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+help() {
+cat << __EOT__
+Usage: jstun [--daemon] [--pidfile=FILE] PORT1 IP1 PORT2 IP2
+__EOT__
+}
+
+while [ "$1" ]; do
+               case "$1" in
+                               --daemon)
+                                       DAEMONIZE="Yes, please do."
+                                       ;;
+                               --help)
+                                       help
+                                       exit
+                                       ;;
+                               --pidfile=*)
+                                       PIDFILE=${1#--pidfile=}
+                                       ;;
+                               --*)
+                                       echo "jstun: invalid option '$1'." >&2
+                                       help
+                                       exit 1
+                                       ;;
+                               *)
+                                       ARGV="$ARGV $1"
+                                       ;;
+               esac
+               shift
+done
+
+. /usr/share/java-utils/java-functions
+
+CLASSPATH=$(build-classpath jstun slf4j-api slf4j-jdk14)
+MAIN_CLASS=de.javawi.jstun.test.demo.StunServer
+
+if [ "$DAEMONIZE" ]; then
+       PIDFILE=${PIDFILE:-"$(mktemp)"}
+       (
+               trap 'pid=$(cat '$PIDFILE' 2>/dev/null); [ "$pid" ] && kill $pid' TERM INT EXIT
+               [ "$PIDFILE" ] && echo '$$' > $PIDFILE
+               set_javacmd
+               $JAVACMD -classpath $CLASSPATH $MAIN_CLASS $ARGV &
+               PID=$!
+               echo $PID > $PIDFILE
+               wait $PID
+               rm $PIDFILE
+       ) &
+else
+       run ${1:+"$@"}
+fi
index 9bb2cef842a871af646acac7e3019b5e2dfae5fd..07b656f371423b2210f7ed767c276eebc141df8d 100644 (file)
@@ -1,6 +1,3 @@
-# TODO:
-# - init scripts
-#
 # Conditional build:
 %bcond_without source          # don't build source jar
 
@@ -10,11 +7,14 @@ Summary:     A Java-based STUN server
 Summary(pl.UTF-8):     Serwer STUN napisany w języku Java.
 Name:          jstun
 Version:       0.7.3
-Release:       0.1
+Release:       1
 License:       GPL v2 or Apache v2
 Group:         Development/Languages/Java
 Source0:       http://jstun.javawi.de/%{name}-%{version}.src.tar.gz
 # Source0-md5: 0e2e0c5d52ba339a33472fc3a492e96d
+Source1:       %{name}.sysconfig
+Source2:       %{name}.init
+Source3:       %{name}.sh
 URL:           http://jstun.javawi.de
 BuildRequires: ant
 BuildRequires: jar
@@ -24,9 +24,12 @@ BuildRequires:       rpmbuild(macros) >= 1.300
 %if %{with source}
 BuildRequires: rpmbuild(macros) >= 1.555
 %endif
+BuildRequires: rpmbuild(macros) >= 1.228
 BuildRequires: sed >= 4.0
+Requires(post,preun):  /sbin/chkconfig
 Requires:      java-slf4j
 Requires:      jpackage-utils
+Requires:      rc-scripts
 BuildArch:     noarch
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -57,16 +60,6 @@ Kod źródłowy %{name}.
 %prep
 %setup -q -n STUN
 
-cat > jstun.sh << '__EOF__'
-#!/bin/sh
-
-. %{_datadir}/java-utils/java-functions
-
-CLASSPATH=$(build-classpath jstun slf4j-api slf4j-jdk14)
-MAIN_CLASS=de.javawi.jstun.test.demo.StunServer
-run ${1:+"$@"}
-__EOF__
-
 %build
 export JAVA_HOME="%{java_home}"
 
@@ -87,6 +80,9 @@ rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT%{_javadir}
 install -d $RPM_BUILD_ROOT%{_sbindir}
 
+install -d $RPM_BUILD_ROOT/etc/sysconfig
+install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
+
 # jars
 cp -a target/%{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
 ln -s %{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
@@ -95,15 +91,31 @@ ln -s %{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
 install -d $RPM_BUILD_ROOT%{_javasrcdir}
 cp -a %{name}.src.jar $RPM_BUILD_ROOT%{_javasrcdir}/%{name}.src.jar
 
-install jstun.sh $RPM_BUILD_ROOT%{_sbindir}/jstun
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+install %{SOURCE3} $RPM_BUILD_ROOT%{_sbindir}/jstun
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post
+/sbin/chkconfig --add %{name}
+%service %{name} restart
+
+%preun
+if [ "$1" = "0" ]; then
+       %service -q %{name} stop
+       /sbin/chkconfig --del %{name}
+fi
+
+
 %files
 %defattr(644,root,root,755)
 %{_javadir}/%{name}.jar
 %{_javadir}/%{name}-%{version}.jar
 %attr(755,root,root) %{_sbindir}/jstun
+%attr(754,root,root) /etc/rc.d/init.d/%{name}
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
 
 %if %{with source}
 %files source
diff --git a/jstun.sysconfig b/jstun.sysconfig
new file mode 100644 (file)
index 0000000..9ae5bd4
--- /dev/null
@@ -0,0 +1,6 @@
+# You need to public IP addresses
+STUN_IPADDRESS1=x.x.x.x
+STUN_IPADDRESS2=y.y.y.y
+
+# STUN_PORT1=3478
+# STUN_PORT2=3479
This page took 1.180088 seconds and 4 git commands to generate.