#!/usr/bin/env bash set -euo pipefail steam_root="$(readlink -e "$HOME/.steam/steam" || true)" if [[ -z "$steam_root" ]]; then steam_root="${XDG_DATA_HOME:-$HOME/.local/share}/Steam" fi target="${steam_root}/ubuntu12_64/steamwebhelper_sniper_wrap.sh" target_dir="${target%/*}" state_dir="${XDG_STATE_HOME:-$HOME/.local/state}/deckless/steam" session_state="${state_dir}/session.env" original_wrapper="${state_dir}/steamwebhelper_sniper_wrap.sh.original" [[ -d "$target_dir" ]] || exit 0 [[ -f "$target" ]] || exit 0 [[ -f "$session_state" ]] || exit 0 mkdir -p "$state_dir" if ! grep -Fq 'deckless-managed steam webhelper wrapper' "$target" 2>/dev/null && [[ ! -f "$original_wrapper" ]]; then cp -a "$target" "$original_wrapper" fi tmp_wrapper="$(mktemp "${target_dir}/.steamwebhelper_sniper_wrap.sh.XXXXXX")" trap 'rm -f "$tmp_wrapper"' EXIT printf -v session_state_q '%q' "$session_state" cat >"$tmp_wrapper" <exec ./steamwebhelper \${extra_args[*]} \${forwarded_args[*]}" echo "" exec ./steamwebhelper "\${extra_args[@]}" "\${forwarded_args[@]}" EOF if [[ ! -f "$target" ]] || ! cmp -s "$tmp_wrapper" "$target"; then chmod 0755 "$tmp_wrapper" mv -f "$tmp_wrapper" "$target" fi