Add threema-env and fix threema-vpn

This commit is contained in:
Fabian Hauser 2021-05-06 12:27:02 +02:00
parent 8f56cf5a99
commit 2769751b2e

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { pkgs, config, ... }:
let let
passbemenu = pkgs.writeScriptBin "passbemenu" '' passbemenu = pkgs.writeScriptBin "passbemenu" ''
@ -29,24 +29,34 @@ let
#!${pkgs.stdenv.shell} #!${pkgs.stdenv.shell}
set -eo pipefail set -eo pipefail
SERVICE=openvpn-threema.service SERVICE=openvpn-threema
SERVICE_EXEC="${config.systemd.services.openvpn-threema.serviceConfig.ExecStart}"
if [[ "$1" == "restart" ]]; then exec sudo ${pkgs.openvpn}/sbin/openvpn''${SERVICE_EXEC#@* openvpn}
ACTION=restart
elif [[ "$1" == "start" ]]; then '';
ACTION=start threema-env = pkgs.writeScriptBin "threema-env" ''
elif [[ "$1" == "stop" ]]; then #!/usr/bin/env bash
ACTION=stop set -eo pipefail
elif [[ "$1" == "status" ]]; then
ACTION=status # Nix shell might fail on some PWDs, so go to home
elif [[ "$1" == "tail" ]]; then cd $HOME
sudo journalctl -f -u $SERVICE
exit 0 ENV_NAME="$1"
else ENV_FILE="$HOME/shares/cloud.threema.ch/envs/''${ENV_NAME}.nix"
echo "Usage: vpn (start|stop|restart|status|tail)" COMMAND="$2"
exit 254
if [ -z "$ENV_NAME" ]; then
echo "Error: No env name provided" >&2
exit 2
fi fi
sudo systemctl $ACTION $SERVICE if [ ! -f "$ENV_FILE" ]; then
echo "Error: Env file does not exist" >&2
exit 3
fi
echo "Starting '$COMMAND' in env '$ENV_FILE'"
${pkgs.nix}/bin/nix-shell ''${ENV_FILE} --run "$COMMAND"
''; '';
in { home-manager.users.fhauser.home.packages = [ passbemenu threema-vpn ]; } in { home-manager.users.fhauser.home.packages = [ passbemenu threema-vpn threema-env ]; }