35 lines
		
	
	
		
			983 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			983 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| set -e
 | |
| 
 | |
| if [ $# -lt 1 ]; then
 | |
| 	echo "Usage: $0 <hostname> [ssh-options]"
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| if [[ "$*" == *" -- "* ]]; then
 | |
| 	exec /bin/ssh "$@"
 | |
| fi
 | |
| 
 | |
| [ -z "$WSCOMPAT_MASTER" ] && WSCOMPAT_MASTER="$(whoami)"
 | |
| read -r -d '' init_cmd << WSCOMPAT_EOF_9oqn7IVF || true
 | |
| 	export WS_IS_COMPAT=1
 | |
| 	export WSCOMPAT_MASTER="$WSCOMPAT_MASTER"
 | |
| 	export WSCOMPAT_DIR="/tmp/wscompat_${WSCOMPAT_MASTER}_\$(whoami)"
 | |
| 	rm -rf "\$WSCOMPAT_DIR" && mkdir -p "\$WSCOMPAT_DIR" && chmod 700 "\$WSCOMPAT_DIR"
 | |
| cat << 'WSCOMPAT_EOF_84EbM3la' > "\$WSCOMPAT_DIR/profile"
 | |
| $(
 | |
| 	sed 's/WSCOMPAT_EOF_/WSCOMPAT_EOF__/g' "$WSCOMPAT_DIR/profile"
 | |
| 	for file in "$WSCOMPAT_DIR/profile"*.sh; do
 | |
| 		if [ -f "$file" ]; then
 | |
| 			sed 's/WSCOMPAT_EOF_/WSCOMPAT_EOF__/g' "$file"
 | |
| 		fi
 | |
| 	done
 | |
| )
 | |
| WSCOMPAT_EOF_84EbM3la
 | |
| 	. \$WSCOMPAT_DIR/profile
 | |
| 	# pam, systemd - wrap in login shell
 | |
| 	exec /bin/bash --login --norc --noprofile -c "exec /bin/bash --rcfile \"\$WSCOMPAT_DIR/bashrc\""
 | |
| WSCOMPAT_EOF_9oqn7IVF
 | |
| 
 | |
| exec /bin/ssh -t "$@" "$init_cmd"
 |