How can i put my workshop in this srcds

Hello,

I’ve got a linux server.How can i put my workshop in srcds_run ?
Please help me , thanks.

it’s my srcds file


#!/bin/sh
#
#       Copyright (c) 2004, Valve LLC. All rights reserved.
#
#	a wrapper script for the main Source engine dedicated server binary.
#	Performs auto-restarting of the server on crash. You can
#	extend this to log crashes and more.
#

# setup the libraries, local dir first!
export LD_LIBRARY_PATH=".:bin:$LD_LIBRARY_PATH"

# The srcds_run script should be at the top level of the game tree
# Make sure we are in that directory since the script assumes this is the case

cd "`dirname \"$0\"`"

if test `id -u` -eq 0; then
	echo
	echo
	echo "************** WARNING ***************"
	echo "Running the dedicated server as root  "
	echo "is highly discouraged. It is generally"
	echo "unnecessary to use root privileges to "
	echo "execute the dedicated server.         "
	echo "**************************************"
	echo
	echo
	timeout=10
	while test $timeout -gt 0; do
		echo -n "The server will continue to launch in $timeout seconds\r"
		timeout=`expr $timeout - 1`
		sleep 1
	done
fi

init() {
	# Initialises the various variables
	# Set up the defaults
	GAME=""
	DEBUG=""
	RESTART="yes"
	HL=./srcds_linux
	HL_DETECT=1
	TIMEOUT=10 # time to wait after a crash (in seconds)
	CRASH_DEBUG_MSG="email debug.log to linux@valvesoftware.com"
	GDB="gdb" # the gdb binary to run
	DEBUG_LOG="debug.log"
	PID_FILE="" # only needed it DEBUG is set so init later
	STEAM=""
	PID_FILE_SET=0
	STEAMERR=""
	SIGINT_ACTION="quit 0" # exit normally on sig int
	NO_TRAP=0
	AUTO_UPDATE=""
	STEAM_USER=""
	STEAM_PASSWORD=""
	STEAM_VERIFY=0
	PARAMS=$*
	
	# Remove any old default pid files
	# Cant do this as they may be still running
	#rm -f hlds.*.pid

	# use the $FORCE environment variable if its set
	if test -n "$FORCE" ; then
		# Note: command line -binary will override this
		HL=$FORCE
		HL_DETECT=0
	fi

	while test $# -gt 0; do
		case "$1" in
		"+map")
			MAP="$2"
			shift;;
		"-game")
			GAME="$2"
			shift ;;
		"-debug")
			DEBUG=1
			# Ensure that PID_FILE is set
			PID_FILE_SET=1
			if test -z "$PID_FILE"; then
				PID_FILE="hlds.$$.pid"
			fi ;;
		"-norestart")
			RESTART="" ;;
		"-pidfile")
			PID_FILE="$2"
			PID_FILE_SET=1
			shift ;;
		"-binary")
			HL="$2"
			HL_DETECT=0
			shift ;;
		"-timeout")
			TIMEOUT="$2"
			shift ;;
		"-gdb")
			GDB="$2"
			shift ;;
		"-debuglog")
			DEBUG_LOG="$2"
			shift ;;
		"-consolelog")
			CONSOLE_LOG="$2"
			shift ;;			
		"-autoupdate")
			AUTO_UPDATE="yes"
			RESTART="yes" ;;
		"-steamerr")
			STEAMERR=1 ;;
		"-ignoresigint")
			SIGINT_ACTION="" ;;
		"-notrap")
			NO_TRAP=1 ;;
		"-steambin")
			STEAM=$2
			shift ;;
		"-steamuser")
			STEAM_USER="$2";
			shift ;;
		"-steampass")
			STEAM_PASSWORD="$2";
			shift ;;
		"-steamverify")
			STEAM_VERIFY=1 ;;
		"-help")
			# quit with syntax
			quit 2
			;;
		esac
		shift
	done

	# Ensure we have a game specified
	if test -z "$GAME"; then
		GAME="tf"
		PARAMS="$PARAMS -game $GAME"
	fi

	# Check game directory
	if test ! -d "$GAME"; then
		echo "ERROR: Invalid game type '$GAME' sepecified."
		quit 1
	fi

	if test -z "$MAP"; then
		echo "WARNING: No map specified! Server may not heartbeat."
	fi

	if test 0 -eq "$NO_TRAP"; then
		# Set up the int handler
		# N.B. Dont use SIGINT symbolic value
		#  as its just INT under ksh
		trap "$SIGINT_ACTION" 2
	fi

	# Only detect the CPU if it hasnt been set with
	# either environment or command line
	if test "$HL_DETECT" -eq 1; then
		detectcpu
	fi

	if test ! -f "$HL"; then
		echo "ERROR: Source Engine binary '$HL' not found, exiting"
		quit 1
	elif test ! -x "$HL"; then
		# Could try chmod but dont know what we will be
		# chmoding so just fail.
		echo "ERROR: Source engine binary '$HL' not executable, exiting"
		quit 1
	fi

	# Setup debugging
	if test -n "$DEBUG" ; then
		#turn on core dumps :) (if possible)
		echo "Enabling debug mode"
		if test "unlimited" != `ulimit -c` && test "`ulimit -c`" -eq 0 ; then
			ulimit -c 2000
		fi
		GDB_TEST=`$GDB -v`
		if test -z "$GDB_TEST"; then
			echo "WARNING: Please install gdb first."
			echo "	goto http://www.gnu.org/software/gdb/ "
			DEBUG="" # turn off debugging cause gdb isn't installed
		fi
	fi

	if test -n "$STEAM_PASSWORD" && test -z "$STEAM_USER"; then
		echo "ERROR: You must set both the steam username and password."
		quit 1
	fi

	HL_CMD="$HL $PARAMS"
	if test -n "$CONSOLE_LOG" -a -x "bin/logger"; then
		HL_CMD="bin/logger $CONSOLE_LOG $HL_CMD"
	fi	
}

syntax () {
	# Prints script syntax

	echo "Syntax:"
	echo "$0 [-game <game>] [-debug] [-norestart] [-pidfile]"
	echo "	[-binary <binary>]"
	echo "	[-timeout <number>] [-gdb <gdb>] [-autoupdate]"
	echo "	[-steambin] [-steamerr] [-ignoresigint] [-steamuser <username>]"
	echo "	[-steampass <password>] [-steamverify] [-debuglog <logname>]"
	echo "Params:"
	echo "-game <game>        	Specifies the <game> to run. [Default: $DEFAULT_GAME]"
	echo "-debug              	Run debugging on failed servers if possible."
	echo "-debuglog <logname>	Log debug output to this file."
	echo "-consolelog <logname>	Log console output to this file."
	echo "-norestart          	Don't attempt to restart failed servers."
	echo "-pidfile <pidfile>  	Use the specified <pidfile> to store the server pid."
	echo "-binary <binary>    	Use the specified binary ( no auto detection ). [Default: $HL]"
	echo "-timeout <number>   	Sleep for <number> seconds before restarting"
	echo "			a failed server."
	echo "-gdb <gdb>          	Use <dbg> as the debugger of failed servers."
	echo "-steambin <path>	Path to steam binary."
	echo "-steamerr     	  	Quit on steam update failure."
	echo "-steamuser <username>	Use this username for steam updates."  
	echo "-steampass <password>	Use this password for steam updates" 
	echo "			(-steamuser must be specified as well)."
	echo "-steamverify		Force steam to verify the install on updates"
	echo "-ignoresigint       	Ignore signal INT ( prevents CTRL+C quitting"
	echo "			the script )."
	echo "-notrap             	Don't use trap. This prevents automatic"
	echo "			removal of old lock files."
	echo ""
	echo "Note: All parameters specified as passed through to the server"
	echo "including any not listed."
}

debugcore () {
	# Debugs any core file if DEBUG is set and
	# the exitcode is none 0

	exitcode=$1

	if test $exitcode -ne 0; then
		if test -n "$DEBUG" ; then 
			echo "bt" > debug.cmds;
			echo "info locals" >> debug.cmds;
			echo "info registers" >> debug.cmds
			echo "info sharedlibrary" >> debug.cmds
			echo "disassemble" >> debug.cmds
			echo "info frame" >> debug.cmds;  # works, but gives an error... must be last
			echo "----------------------------------------------" >> $DEBUG_LOG
			echo "CRASH: `date`" >> $DEBUG_LOG
			echo "Start Line: $HL_CMD" >> $DEBUG_LOG

			# check to see if a core was dumped
			if test -f core ; then
				CORE="core"
			elif test -f core.`cat $PID_FILE`; then
				CORE=core.`cat $PID_FILE`
			elif test -f "$HL.core" ; then
				CORE="$HL.core"
			fi
			
			if test -n "$CORE"; then
				$GDB $HL $CORE -x debug.cmds -batch >> $DEBUG_LOG
			fi
		
			echo "End of Source crash report" >> $DEBUG_LOG
			echo "----------------------------------------------" >> $DEBUG_LOG
			echo $CRASH_DEBUG_MSG
			rm debug.cmds
		else
			echo "Add \"-debug\" to the $0 command line to generate a debug.log to help with solving this problem"
		fi
	fi
}

detectcpu() {
	# Attempts to auto detect the CPU
	echo "Auto detecting CPU"

	if test "Linux" = `uname`; then
		HL=./srcds_linux
		echo "Using default binary: $HL"
	elif test "FreeBSD" = `uname`; then
		HL=./srcds_linux
		echo "Using default binary: $HL"
	elif test "Darwin" = `uname`; then
		echo "Using OSX binary."
		HL=./srcds_osx
	else
		echo "Using default binary: $HL"
	fi
}

update() {
	updatesingle
}

locatesteam() {
	OLDPATH=${PATH}
	PATH=..:.:${PATH}
	STEAM=`which steam 2&gt;/dev/null`
	if test "$?" -gt 0; then
		echo "WARNING: Failed to locate steam binary."
	else
		echo "INFO: Located steam: $STEAM"
	fi
	PATH=${OLDPATH}
}

updatesingle() {
	# Run the steam update
	# exits on failure if STEAMERR is set

	if test -n "$AUTO_UPDATE"; then
		if test -z "$STEAM"; then
			locatesteam
		fi
		if test -f "$STEAM" -a -x "$STEAM"; then
			echo "Updating server using Steam."
			DEPOT_ROOT=".."
			DEPOT_NAME=$GAME

			if test "$GAME" = "cstrike"; then
				DEPOT_NAME="Counter-Strike Source";
			fi
			
			if test "$GAME" = "cstrike_beta"; then
				DEPOT_NAME="cssbeta";				
			fi

			if test "$GAME" = "dod"; then
				DEPOT_NAME="dods";
			fi

			CMD="$STEAM -command update -dir $DEPOT_ROOT"; 
			if test 1 -eq "$STEAM_VERIFY"; then
				CMD="$CMD -verify_all"
			fi
			if test -n "$STEAM_USER"; then
				CMD="$CMD -username $STEAM_USER";
			fi 
			if test -n "$STEAM_PASSWORD"; then
				CMD="$CMD -password $STEAM_PASSWORD";
			fi 

			$CMD -game "$DEPOT_NAME"
			if test $? -ne 0; then
				if test -n "$STEAMERR"; then
					echo "`date`: Steam Update failed, exiting."
					quit 1
				else
					echo "`date`: Steam Update failed, ignoring."
					return 0
				fi
			fi
		else
			if test -n "$STEAMERR"; then
				echo "ERROR: Could not locate steam binary:$STEAM, exiting.";
				quit 1
			else
				echo "WARNING: Could not locate steam binary:$STEAM, ignoring.";
				return 0
			fi
		fi
	fi

	return 1
}
	
run() {
	# Runs the steam update and server
	# Loops if RESTART is set
	# Debugs if server failure is detected
	# Note: if RESTART is not set then
	# 1. DEBUG is set then the server is NOT exec'd
	# 2. DEBUG is not set the the server is exec'd

	if test -n "$RESTART" ; then
		echo "Server will auto-restart if there is a crash."

		#loop forever
		while true
		do
			# Update if needed
			update

			# Run the server
			$HL_CMD
			retval=$?
			if test $retval -eq 0 && test -z "$AUTO_UPDATE"; then
				break; # if 0 is returned then just quit
			fi

			debugcore $retval

			echo "`date`: Server restart in $TIMEOUT seconds"

			# don't thrash the hard disk if the server dies, wait a little
			sleep $TIMEOUT
		done # while true 
	else
		# Update if needed
		update

		# Run the server
		if test -z "$DEBUG"; then
			# debug not requested we can exec
			exec $HL_CMD
		else
			# debug requested we can't exec
			$HL_CMD
			debugcore $?
		fi
	fi
}

quit() {
	# Exits with the give error code, 1
	# if none specified.
	# exit code 2 also prints syntax
	exitcode="$1"

	# default to failure
	if test -z "$exitcode"; then
		exitcode=1
	fi

	case "$exitcode" in
	0)
		echo "`date`: Server Quit" ;;
	2)
		syntax ;;
	*)
		echo "`date`: Server Failed" ;;
	esac

	# Remove pid file
	if test -n "$PID_FILE" && test -f "$PID_FILE" ; then
		# The specified pid file
		rm -f $PID_FILE
	fi

	# reset SIGINT and then kill ourselves properly
	trap - 2
	kill -2 $$
}

# Initialise
init $*

# Run
run

# Quit normally
quit 0


Why exactly do you want to put your workshop there? Are you trying to get clients to download your workshopp? If so you’re doing it wrong.

I want to download all addons automatically to server

You can’t and you don’t have to.

How to Run it ? I can’t access linux.I can access only server files

Follow the link xd sent. After that make a lua file under lua/autorun/server

In it you’ll do the following:


resource.AddWorkshop( "191834918" ) -- The number represents the workshop Id

/* I reccomend adding commentary after a line
   just so it looks more organized and you can
   tell which addon is which
*/

resource.AddWorkshop( "134134134" ) -- Ex: TTT Commands
resource.AddWorkshop( "123134134" ) -- Some Player Model

i have srcds_run and srcds_linux

i added lua file

Extract the addons .gma file then upload the addons manually
You can use resource.AddWorkshop to make clients download the content (if any).

How can i download addons to my server ? (Automatically)
My upload speed is slow

Look at my other post. I told you exactly what to do, you don’t touch srcds_run at all

You can tell your server to mount and refer to a collection of workshop addons by adding the collection ID on the command line of the server.

You can tell the client to download those addon automatically by using resource.AddWorkshop(“idnumber”) in Lua (server-side).

i asked it.how can i do this

This can be achieved by placing a line of text in the file “init.lua”.

That line of text is comprised of a set of letters. The letters you need are:

r, e, s, o, u, r, c, e, ., A, d, d, W, o, r, k, s, h, o, p, (, ", ", ).

Between the two ‘"’ characters, you need to write the ID number of the Workshop Addon. You can find this in Steam by showing the URL when you are viewing the information about the addon you want to include.

I hope this leaves little confusion.