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