Commits

Erik Southworth committed 11ebbce

use ionice IDLE with steam command

Comments (0)

Files changed (5)

+Changes in 45:
+  o Code Changes:
+    * Added: use ionice IDLE class schuduler to minimize disk thrashing.
+  o Doc Changes:
+    * various: Counter-Strike: Source now has its own depot at /css.
+
 Changes in 42:
   o Code Changes:
     * Fixed: syntax error with Bash 4 and here-documents. (fatal)
 
 * **boiler** keeps those annoying steam debug messages silent.
 
+* **boiler** uses ionice IDLE class schuduler by default to minimize disk
+  thrashing for other running gameservers.
+
 * **boiler** will read and output the contents of the steam.inf files. ``steam version``
 
 

doc/source/install-steam-boiler.rst

 2. Download Steam-Boiler and unpack the tarball. The **current** release
 distribution archive is: steam-boiler-|version|.tar.bz2.
 
-    * $ wget http://bitbucket.org/superstition/steam-boiler/downloads/steam-boiler-42.tar.bz2
+    * $ wget http://bitbucket.org/superstition/steam-boiler/downloads/steam-boiler-45.tar.bz2
     * $ tar -xvf steam-boiler-|version|.tar.bz2
 
 .. code-block:: none
 
-    [steam-boiler]$ wget http://bitbucket.org/superstition/steam-boiler/downloads/steam-boiler-42.tar.bz2
+    [steam-boiler]$ wget http://bitbucket.org/superstition/steam-boiler/downloads/steam-boiler-45.tar.bz2
     --23:00:58--  steam-boiler-|version|.tar.bz2
-               => `steam-boiler-42.tar.bz2'
+               => `steam-boiler-45.tar.bz2'
     Resolving bitbucket.org... 184.73.244.143
     Connecting to bitbucket.org|184.73.244.143|:80... connected.
     HTTP request sent, awaiting response... 302 FOUND
-    Location: http://cdn.bitbucket.org/superstition/steam-boiler/downloads/steam-boiler-42.tar.bz2 [following]
-    --23:00:58--  http://cdn.bitbucket.org/superstition/steam-boiler/downloads/steam-boiler-42.tar.bz2
-               => `steam-boiler-42.tar.bz2'
+    Location: http://cdn.bitbucket.org/superstition/steam-boiler/downloads/steam-boiler-45.tar.bz2 [following]
+    --23:00:58--  http://cdn.bitbucket.org/superstition/steam-boiler/downloads/steam-boiler-45.tar.bz2
+               => `steam-boiler-45.tar.bz2'
     Resolving cdn.bitbucket.org... 216.137.59.5, 216.137.59.30, 216.137.59.32, ...
     Connecting to cdn.bitbucket.org|216.137.59.5|:80... connected.
     HTTP request sent, awaiting response... 200 OK
 
     100%[================================================================>] 2,134,171     83.74K/s    ETA 00:00
 
-    23:01:30 (66.71 KB/s) - `steam-boiler-42.tar.bz2' saved [2134171/2134171]
+    23:01:30 (66.71 KB/s) - `steam-boiler-45.tar.bz2' saved [2134171/2134171]
 
-    [steam-boiler]$ tar -xvf steam-boiler-42.tar.bz2
-    steam-boiler-42/
-    steam-boiler-42/doc/
-    steam-boiler-42/doc/html/
+    [steam-boiler]$ tar -xvf steam-boiler-45.tar.bz2
+    steam-boiler-45/
+    steam-boiler-45/doc/
+    steam-boiler-45/doc/html/
     ...
-    steam-boiler-42/hldsupdatetool/hldsupdatetool
-    steam-boiler-42/wscript
-    steam-boiler-42/THANKS
+    steam-boiler-45/hldsupdatetool/hldsupdatetool
+    steam-boiler-45/wscript
+    steam-boiler-45/THANKS
     [steam-boiler]$
 
 3. Change directory to where the distribution software was unpacked,
 
 .. code-block:: none
 
-    [steam-boiler]$ cd steam-boiler-42
-    [steam-boiler-42]$ ./configure
-    Checking for WAF			     : /home/user/Source/steam-boiler/steam-boiler-42/waf
+    [steam-boiler]$ cd steam-boiler-45
+    [steam-boiler-45]$ ./configure
+    Checking for WAF			     : /home/user/Source/steam-boiler/steam-boiler-45/waf
     Checking for program find                : /usr/bin/find
     Checking for program getopt              : /usr/bin/getopt
     Checking for program install             : /usr/bin/install
     Checking for program ln                  : /bin/ln
     'configure' finished successfully (0.013s)
-    [steam-boiler-42]$ make
-    Waf: Entering directory `/home/user/Source/steam-boiler/steam-boiler-42/build'
+    [steam-boiler-45]$ make
+    Waf: Entering directory `/home/user/Source/steam-boiler/steam-boiler-45/build'
     [1/2] copy: src/boiler.in -> build/default/src/boiler
     [2/2] true: src/steam.6 src/boiler.6
-    Waf: Leaving directory `/home/user/Source/steam-boiler/steam-boiler-42/build'
+    Waf: Leaving directory `/home/user/Source/steam-boiler/steam-boiler-45/build'
     'build' finished successfully (0.049s)
-    [steam-boiler-42]$ sudo make install
-    /home/user/Source/steam-boiler/steam-boiler-42/waf install
-    Waf: Entering directory `/home/user/Source/steam-boiler/steam-boiler-42/build'
+    [steam-boiler-45]$ sudo make install
+    /home/user/Source/steam-boiler/steam-boiler-45/waf install
+    Waf: Entering directory `/home/user/Source/steam-boiler/steam-boiler-45/build'
     * installing hldsupdatetool/hldsupdatetool as /usr/local/share/steam-boiler/hldsupdatetool
     * installing build/default/src/boiler as /usr/local/bin/boiler
     * symlink /usr/local/bin/steam (-> boiler)
     * installing src/steam.6 as /usr/local/share/man/man6/steam.6
     * installing src/boiler.6 as /usr/local/share/man/man6/boiler.6
-    Waf: Leaving directory `/home/user/Source/steam-boiler/steam-boiler-42/build'
+    Waf: Leaving directory `/home/user/Source/steam-boiler/steam-boiler-45/build'
     'install' finished successfully (0.148s)
-    [steam-boiler-42]$
+    [steam-boiler-45]$
 
 .. hint::
 
 #!/bin/sh
 # boiler - steam program wrapper
 # Generated from boiler.in; do not edit by hand.
-# Erik Southworth, 2008,2009,2010 (s6v)
+# Erik Southworth, 2008,2009,2010,2011 (dvs)
 
 # 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
 : ${INSTALL_DIR="${INSTALL} --directory"}
 : ${INSTALL_DATA="${INSTALL} --mode=644"}
 : ${INSTALL_PROGRAM="${INSTALL}"}
+: ${IONICE="ionice -c 3"}
 : ${REMOVE="rm"}
 : ${REMOVE_EMPTY_DIR="rmdir"}
 : ${SYMLINK="ln --symbolic --force --no-dereference"}
   -i, --info                beta help information
   -m, --manual              output manual text
   -v, --verbose             verbose operation
+  -n, --noionice            disable ionice operation
 EOT
 )
 
 	# policy: acceptable options
-	_short_opts=c:g:d:hVwb:imv
-	_long_opts=command:,game:,dir:,verify_all,retry,username:,password:,remember_password,help,version,wipe,beta:,info,manual,verbose
+	_short_opts=c:g:d:hVwb:imvn
+	_long_opts=command:,game:,dir:,verify_all,retry,username:,password:,remember_password,help,version,wipe,beta:,info,manual,verbose,noionice
 
 	# disable shell errexit
 	if test -o errexit; then set +e; _errexit=1; fi
 	if [ $? != 0 ]; then echo "Try \`${BIN} --help' for more information." >/dev/stderr; exit 1; fi
 
 	# opt flags
-	opt_is_help= opt_is_verbose= opt_has_update= opt_has_game= opt_has_dir= opt_is_wipe= opt_is_version=
+	opt_is_help= opt_is_verbose= opt_has_update= opt_has_game= opt_has_dir= opt_is_wipe= opt_is_version= opt_is_noionice=
 
 	# parse options
 	eval set -- "${_opts}"
 	    -i|--info) betainfo;;
 	    -m|--manual) manual;;
 	    -v|--verbose) opt_is_verbose=1; shift;;
+	    -n|--noionice) opt_is_noionice=1; shift;;
 	       --) shift; break;;
 	    *) echo "internal error: uncaught option \`${1}'" >/dev/stderr; exit 2;;
 	    esac
 {
 	_check_steambin_install
 	_check_steam_installdir
+	test ${opt_is_noionice} && IONICE=
 	test ! ${operation_is_silent} && _command_feedback
 
 	# retry N times if there is an update/failure
 	    [ $i -gt 0 ] && test ! ${operation_is_silent} && echo "+ Retrying command ..."
 
 	    if test ${operation_is_silent}; then
-		("${STEAMBIN}" "${cmd[@]}" &>/dev/null)
+		($IONICE "${STEAMBIN}" "${cmd[@]}" &>/dev/null)
 	    elif test ${opt_is_verbose}; then
-		("${STEAMBIN}" "${cmd[@]}")
+		($IONICE "${STEAMBIN}" "${cmd[@]}")
 	    else
-		("${STEAMBIN}" "${cmd[@]}" 2>/dev/null)
+		($IONICE "${STEAMBIN}" "${cmd[@]}" 2>/dev/null)
 	    fi
 
 	    if [ $? -eq 0 ]; then break; fi
 # cmd feedback
 _command_feedback()
 {
-	echo "+ steam ${cmd[@]}"
+	if test ${opt_is_noionice}; then
+	    echo "+ steam ${cmd[@]}"
+	else
+	    echo "+ ${IONICE} steam ${cmd[@]}"
+	fi
 }
 
 # symlink for -autoupdate option
 #! /usr/bin/env python
 # encoding: utf-8
 # Geany 0.19
-# Erik Southworth, 2009,2010 (s6v)
+# Erik Southworth, 2009,2010,2011 (dvs)
 
 import Options
 import os
 APPNAME = 'steam-boiler'
 
 NAME = 'Steam Boiler'
-VERSION = '42'
+VERSION = '45'
 BUGREPORT = 'http://bitbucket.org/superstition/steam-boiler/issues/'
 HOMEPAGE = 'http://bitbucket.org/superstition/steam-boiler/wiki/'
-RELEASE = '2009,2010'
-REVISION = '05 December 2010'
+RELEASE = '2009,2010,2011'
+REVISION = '15 October 2011'
 
 top = '.'
 out = 'build'