slitaz-dev-tools rev 287

Add tazcraft utility, Makefile and cgi interface
author Christophe Lincoln <pankso@slitaz.org>
date Sat Mar 18 23:31:46 2017 +0100 (2017-03-18)
parents d88854cffc10
children 712d319dda48
files tazcraft/Makefile tazcraft/README tazcraft/cgi-bin/minecraft.png tazcraft/cgi-bin/tazcraft.cgi tazcraft/data/minecraft.desktop tazcraft/images/minecraft.png tazcraft/tazcraft
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/tazcraft/Makefile	Sat Mar 18 23:31:46 2017 +0100
     1.3 @@ -0,0 +1,24 @@
     1.4 +# Makefile for Tazcraft
     1.5 +#
     1.6 +
     1.7 +PACKAGE=tazcraft
     1.8 +PREFIX?=/usr
     1.9 +DESTDIR?=
    1.10 +
    1.11 +all:
    1.12 +
    1.13 +# Installation
    1.14 +
    1.15 +install:
    1.16 +	install -m 0755 -d $(DESTDIR)$(PREFIX)/bin
    1.17 +	install -m 0755 -d $(DESTDIR)$(PREFIX)/share/applications
    1.18 +	install -m 0755 -d $(DESTDIR)$(PREFIX)/share/pixmaps
    1.19 +	install -m 0755 $(PACKAGE) $(DESTDIR)$(PREFIX)/bin
    1.20 +	install data/minecraft.desktop $(DESTDIR)$(PREFIX)/share/applications
    1.21 +	install images/minecraft.png $(DESTDIR)$(PREFIX)/share/pixmaps
    1.22 +
    1.23 +# Uninstallation
    1.24 +
    1.25 +uninstall:
    1.26 +	rm -f $(DESTDIR)$(PREFIX)/bin/$(PACKAGE)
    1.27 +
     2.1 --- a/tazcraft/README	Thu Mar 16 19:42:28 2017 +0100
     2.2 +++ b/tazcraft/README	Sat Mar 18 23:31:46 2017 +0100
     2.3 @@ -1,9 +1,12 @@
     2.4  
     2.5 -Minecraft custom tools for SliTaz GNU/Linux
     2.6 +Minecraft custom tools for SliTaz GNU/Linux. Tazcraft can install and run Minecraft server
     2.7 +as well as getting the client and starting to play. It can also optionaly install the Java
     2.8 +Runtime Environement (JRE)
     2.9  
    2.10  
    2.11  Server configuration
    2.12  --------------------
    2.13 +Config file: server.properties
    2.14  
    2.15  gamemode=
    2.16  	0 - Survival
     3.1 Binary file tazcraft/cgi-bin/minecraft.png has changed
     4.1 --- a/tazcraft/cgi-bin/tazcraft.cgi	Thu Mar 16 19:42:28 2017 +0100
     4.2 +++ b/tazcraft/cgi-bin/tazcraft.cgi	Sat Mar 18 23:31:46 2017 +0100
     4.3 @@ -1,7 +1,72 @@
     4.4  #!/bin/sh
     4.5  #
     4.6 +# tazcraft.cgi - A Minecraft server info/admin CGI interface
     4.7 +#
     4.8 +# Authors: Kayam Lincoln-Vazquez, Christophe Lincoln
     4.9 +# Copyright (C) 2017 SliTaz GNU/Linux - BSD License
    4.10 +#
    4.11  . /usr/lib/slitaz/httphelper.sh
    4.12  header
    4.13  
    4.14 -echo "Comming soon..."
    4.15 +home="/home/minecraft"
    4.16 +server="$home/server"
    4.17 +config="$server/server.properties"
    4.18 +
    4.19 +# Get a value in
    4.20 +get_value() {
    4.21 +	val=$(grep ^${1}= ${config} | cut -d "=" -f 2)
    4.22 +	cat << EOT
    4.23 +<tr>
    4.24 +	<td>$1</td>
    4.25 +	<td>$val</td>
    4.26 +</tr>
    4.27 +EOT
    4.28 +}
    4.29 +
    4.30 +# HTML header
    4.31 +cat << EOT
    4.32 +<!DOCTYPE html>
    4.33 +<html>
    4.34 +<head>
    4.35 +	<meta charset="utf-8" />
    4.36 +	<title>Tazcraft</title>
    4.37 +	<link rel="stylesheet" href="/style.css" />
    4.38 +</head>
    4.39 +<body>
    4.40 +<header>
    4.41 +	<div id="logo"></div>
    4.42 +	<div id="network">
    4.43 +		<a href="http://play.slitaz.me">play.SliTaz.me</a>
    4.44 +		<a href="http://www.slitaz.org">SliTaz.org</a>
    4.45 +	</div>
    4.46 +	<h1>Tazcraft Server</h1>
    4.47 +</header>
    4.48 +
    4.49 +<div id="content">
    4.50 +<h2>Welcome to Tazcraft</h2>
    4.51 +<p>A SliTaz GNU/Linux Minecraft server</p>
    4.52 +<pre>
    4.53 +<img src="minecraft.png" alt="*" />Server address: <b>play.slitaz.org</b>
    4.54 +</pre>
    4.55 +<h3>Configuration</h3>
    4.56 +<table>
    4.57 +	<thead>
    4.58 +		<td>$(gettext "Variable")</td>
    4.59 +		<td>$(gettext "Value")</td>
    4.60 +	</thead>
    4.61 +EOT
    4.62 +
    4.63 +for var in gamemode server-port level-name; do
    4.64 +	get_value ${var}
    4.65 +done
    4.66 +
    4.67 +# HTML footer
    4.68 +cat << EOT
    4.69 +</table>
    4.70 +
    4.71 +</div>
    4.72 +<footer></footer>
    4.73 +</body>
    4.74 +</htnl>
    4.75 +EOT
    4.76  exit 0
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/tazcraft/data/minecraft.desktop	Sat Mar 18 23:31:46 2017 +0100
     5.3 @@ -0,0 +1,6 @@
     5.4 +[Desktop Entry]
     5.5 +Type=Application
     5.6 +Name=Minecraft
     5.7 +Exec=tazcraft -p
     5.8 +Icon=minecraft
     5.9 +Categories=Game;
     6.1 Binary file tazcraft/images/minecraft.png has changed
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/tazcraft/tazcraft	Sat Mar 18 23:31:46 2017 +0100
     7.3 @@ -0,0 +1,138 @@
     7.4 +#!/bin/sh
     7.5 +#
     7.6 +# tazcraft - Your Minecraft server tiny configuration tool
     7.7 +#
     7.8 +# Authors: Kayam Lincoln-Vazquez, Christophe Lincoln
     7.9 +# Copyright (C) 2017 SliTaz GNU/Linux - BSD License
    7.10 +#
    7.11 +. /lib/libtaz.sh
    7.12 +
    7.13 +version="1.11.2"
    7.14 +home="/home/minecraft"
    7.15 +server="$home/server"
    7.16 +config="$server/server.properties"
    7.17 +
    7.18 +server_jar="minecraft_server.${version}.jar"
    7.19 +client_jar="Minecraft.jar"
    7.20 +client_path="$HOME/.local/share/minecraft/$client_jar"
    7.21 +spigot_jar="spigot-${version}.jar"
    7.22 +
    7.23 +java_version="8u121"
    7.24 +java_id="218821"
    7.25 +java_md5="e9e7ea248e2c4826b92b3f075a80e441"
    7.26 +java_tarball="jre-$java_version-linux-i586.tar.gz"
    7.27 +
    7.28 +# Prefer Sun Java JRE but let user use icedtea6-jre
    7.29 +java="$home/jre/bin/java"
    7.30 +if [ ! -x "$java" ]; then
    7.31 +	java="/usr/bin/java"
    7.32 +fi
    7.33 +
    7.34 +#
    7.35 +# Functions
    7.36 +#
    7.37 +help() {
    7.38 +	cat << EOT
    7.39 +
    7.40 +$(colorize 032 Usage:) $(basename $0) command
    7.41 +
    7.42 +$(colorize 032 Commands:)
    7.43 +  -d  downlaod      Download the Minecraft server
    7.44 +  -s  start         Start your Minecraft server
    7.45 +  -p  play          Launch the Minecraft client
    7.46 +  -j  java          Install Sun Java Runtime Environment
    7.47 +  -i  info          Display server and java informations
    7.48 +
    7.49 +$(colorize 032 Options:)
    7.50 +  --gui             Run the server with a graphical user interface
    7.51 +
    7.52 +EOT
    7.53 +}
    7.54 +
    7.55 +# Check if Java is installed
    7.56 +check_java() {
    7.57 +	if [ ! -x "$java" ]; then
    7.58 +		colorize 031 "Can't fin Java Runtime Environment (JRE)"; return 1
    7.59 +	fi
    7.60 +}
    7.61 +
    7.62 +# Get a value in
    7.63 +get_value() {
    7.64 +	val=$(grep ^${1}= ${config} | cut -d "=" -f 2)
    7.65 +	echo -n "$1"; indent 15 ": $val"
    7.66 +}
    7.67 +
    7.68 +#
    7.69 +# Commands
    7.70 +#
    7.71 +case "$1" in
    7.72 +
    7.73 +	-d|downlaod)
    7.74 +		if [ ! -f "$server/$jar" ]; then
    7.75 +			echo "Downloading Minecraft..."
    7.76 +			mkdir -p ${server}
    7.77 +			wget --no-check-certificate \
    7.78 +				https://s3.amazonaws.com/Minecraft.Download/versions/${version}/minecraft_server.${version}.jar \
    7.79 +				-O ${server}/minecraft_server.${version}.jar
    7.80 +		else
    7.81 +			colorize 032 "Minecraft is already downladed :-)"
    7.82 +		fi ;;
    7.83 +	
    7.84 +	-s|start)
    7.85 +		check_java || exit 1
    7.86 +		colorize 032 "Starting Minecraft server..."
    7.87 +		[ ! "$gui" ] && opts="nogui"
    7.88 +		cd ${server}
    7.89 +		${java} -Xmx1024M -Xms1024M -jar ${server_jar} ${opts} ;;
    7.90 +	
    7.91 +	-p|play)
    7.92 +		if [ ! -f "$client_path" ]; then
    7.93 +			dest_dir="$(dirname $client_path)"
    7.94 +			mkdir -p ${dest_dir}
    7.95 +			xterm -e "wget \
    7.96 +				http://s3.amazonaws.com/Minecraft.Download/launcher/${client_jar} \
    7.97 +				-O $client_path"
    7.98 +		fi
    7.99 +		${java} -jar ${client_path} & ;;
   7.100 +	
   7.101 +	-j|java)
   7.102 +		if [ ! -x "$home/jre/bin/java" ]; then
   7.103 +			echo "Installing Java Runtime Environment ($java_version)..."
   7.104 +			
   7.105 +			# Already downloaded
   7.106 +			if [ ! -f "$home/$java_tarball" ]; then
   7.107 +				wget \
   7.108 +					http://javadl.oracle.com/webapps/download/AutoDL?BundleId=${java_id}_${java_md5} \
   7.109 +					-O ${home}/${java_tarball}
   7.110 +			fi
   7.111 +			
   7.112 +			echo "Extracting: ${java_tarball}..."
   7.113 +			tar xzf ${home}/${java_tarball} -C ${home}  || exit 1
   7.114 +			rm -rf jre 2>/dev/null && mv ${home}/jre*_*/ ${home}/jre
   7.115 +			
   7.116 +		else
   7.117 +			colorize 032 "Java Runtime Environment is installed"
   7.118 +			${java} -version
   7.119 +		fi ;;
   7.120 +	
   7.121 +	-i|info)
   7.122 +		newline
   7.123 +		colorize 032 "Minecraft Server"
   7.124 +		echo "Version : $version"
   7.125 +		echo "Home    : $home"
   7.126 +		
   7.127 +		colorize 032 "Server properties"
   7.128 +		for var in server-port level-name; do
   7.129 +			get_value ${var}
   7.130 +		done
   7.131 +		
   7.132 +		if check_java; then
   7.133 +			colorize 032 "Java Runtime Environment"
   7.134 +			echo "Java: $java"
   7.135 +			${java} -version
   7.136 +		fi
   7.137 +		newline ;;
   7.138 +	
   7.139 +	*) help ;;
   7.140 +esac
   7.141 +exit 0