aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/dot_local/bin/executable_snxctl-chromium
blob: d52ddfbcf9c58a5ee1621e58e31d8a798bbf1784 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh
# snxctl-chromium: `snxctl connect` with the flatpak ungoogled-chromium as
# the SAML browser. Bypasses LibreWolf's loopback HTTPS-upgrade + LNA block
# that prevent snx-rs's 127.0.0.1:7779 SAML callback from completing.
#
# How it works
# ------------
# A tracked drop-in
# (~/.config/systemd/user/snx-rs.service.d/10-chromium-saml.conf) prepends
# ~/.local/share/snx-rs/bin to the daemon's PATH. That directory contains
# an `xdg-open` shim that flatpak-runs ungoogled-chromium. snx-rs uses the
# `opener` crate which spawns `xdg-open` — the shim wins.
#
# This script just makes sure the daemon picks up the override (it only
# loads Environment= at start time, so a freshly-edited drop-in needs a
# daemon-reload + service restart) and then runs `snxctl connect`.
set -eu

SERVICE=snx-rs.service

if ! systemctl --user cat "$SERVICE" >/dev/null 2>&1; then
  printf '%s: %s is not a known user unit; aborting.\n' "${0##*/}" "$SERVICE" >&2
  exit 1
fi

current_path=$(systemctl --user show -p Environment --value "$SERVICE")
case "$current_path" in
  *"$HOME/.local/share/snx-rs/bin"*) ;;
  *)
    echo "${0##*/}: applying chromium SAML drop-in (daemon-reload + restart)…" >&2
    systemctl --user daemon-reload
    systemctl --user restart "$SERVICE"
    sleep 1
    ;;
esac

exec snxctl connect "$@"