module Knives.SysNet where import Utils import CommandLine import Control.Monad (when) knifeSysNet :: SysNetOptions -> IO () knifeSysNet SysNetOptions { activateSN , enableSN , deactivateSN , disableSN , reactivateSN} | isExclusiveOr [ activateSN , enableSN , deactivateSN , disableSN , reactivateSN] = do when activateSN activate when enableSN enable when deactivateSN deactivate when disableSN disable when reactivateSN reactivate | otherwise = putStrLn("You must specify one and only one option for SysNet.") where socket = "systemd-networkd.socket" service = "systemd-networkd.service" activate = do systemctl_ ["start", socket] systemctl_ ["start", service] enable = do systemctl_ ["start", socket] systemctl_ ["enable", "--now", service] deactivate = do systemctl_ ["stop", socket] systemctl_ ["stop", service] disable = do systemctl_ ["stop", socket] systemctl_ ["disable", "--now", service] reactivate = do systemctl_ ["restart", socket] systemctl_ ["restart", service]