Add threema-env and fix threema-vpn
This commit is contained in:
parent
8f56cf5a99
commit
2769751b2e
1 changed files with 28 additions and 18 deletions
|
@ -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 ]; }
|
||||
|
|
Loading…
Add table
Reference in a new issue