Use nix option for yate config reload #21

Manually merged
echtnurich merged 2 commits from fix-yate-reload into main 2025-02-04 19:07:38 +01:00

View file

@ -45,11 +45,6 @@
}; };
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.yate}/bin/yate -c /etc/yate -e /etc/yate/share"; ExecStart = "${pkgs.yate}/bin/yate -c /etc/yate -e /etc/yate/share";
ExecReload= ''
${pkgs.git}/bin/git config --global --add safe.directory /var/lib/yate
/usr/bin/env GIT_SSH_COMMAND=\\"${pkgs.openssh}/bin/ssh -i /run/secrets/git_clone_key\\" ${pkgs.git}/bin/git -C /var/lib/yate fetch --all
/usr/bin/env GIT_SSH_COMMAND=\\"${pkgs.openssh}/bin/ssh -i /run/secrets/git_clone_key\\" ${pkgs.git}/bin/git -C /var/lib/yate reset --hard origin/main
'';
Type="simple"; Type="simple";
Restart="always"; Restart="always";
User="yate"; User="yate";
@ -60,16 +55,24 @@
wantedBy = [ "default.target" ]; wantedBy = [ "default.target" ];
requires = [ "network-online.target" ]; requires = [ "network-online.target" ];
preStart = '' preStart = ''
echo \"\n\" >> /run/secrets/git_clone_key echo "\n" >> /run/secrets/git_clone_key
sleep 5 sleep 5
id
echo "$(stat -c '%U' /var/lib/yate/.git) owns /var/lib/yate/.git"
SSH_SUCCESS=1 SSH_SUCCESS=1
${pkgs.openssh}/bin/ssh -q -i /run/secrets/git_clone_key forgejo@git.hamburg.ccc.de 2> /var/lib/yate/SSH_CHECK_LOG || SSH_SUCCESS=0 ${pkgs.openssh}/bin/ssh -q -i /run/secrets/git_clone_key forgejo@git.hamburg.ccc.de 2> /var/lib/yate/SSH_CHECK_LOG || SSH_SUCCESS=0
if [ $SSH_SUCCESS = 1 ]; then if [[ $SSH_SUCCESS = 1 && $(stat -c '%U' /var/lib/yate/.git) == *yate* ]]; then
rm -rf /var/lib/yate/* rm -rf /var/lib/yate/*
rm -rf /var/lib/yate/.* rm -rf /var/lib/yate/.*
env GIT_SSH_COMMAND=\"${pkgs.openssh}/bin/ssh -i /run/secrets/git_clone_key\" ${pkgs.git}/bin/git clone forgejo@git.hamburg.ccc.de:CCCHH/yate-config.git /var/lib/yate env GIT_SSH_COMMAND="${pkgs.openssh}/bin/ssh -i /run/secrets/git_clone_key" ${pkgs.git}/bin/git clone forgejo@git.hamburg.ccc.de:CCCHH/yate-config.git /var/lib/yate
${pkgs.git}/bin/git -C /var/lib/yate config --add safe.directory \"/var/lib/yate\" ${pkgs.git}/bin/git -C /var/lib/yate config --add safe.directory "/var/lib/yate"
fi fi
''; '';
reload= ''
id
${pkgs.git}/bin/git config --global --add safe.directory /var/lib/yate
/usr/bin/env GIT_SSH_COMMAND="${pkgs.openssh}/bin/ssh -i /run/secrets/git_clone_key" ${pkgs.git}/bin/git -C /var/lib/yate fetch --all
/usr/bin/env GIT_SSH_COMMAND="${pkgs.openssh}/bin/ssh -i /run/secrets/git_clone_key" ${pkgs.git}/bin/git -C /var/lib/yate reset --hard origin/master
'';
}; };
} }