packages feed

swiss-army-knife-1.1.0.2: lib/Knives/Sleep.hs

{-# LANGUAGE OverloadedStrings #-}

module Knives.Sleep where

import System.Process
import CommandLine

knifeSleep :: SleepOptions -> IO ()
knifeSleep optsS = do
  putStrLn $ "Put the machine to sleep." ++ show (secondsToSleep optsS)
  case (secondsToSleep optsS) of
    Just secs -> do putStrLn $ "sleep in " ++ show secs ++ " seconds."
                    _n <- readProcess "sleep" [show secs] ""
                    return ()
    Nothing  ->  putStrLn "sleep immediatly"
  _nn <-  readProcess "systemctl" ["suspend", "-i"] ""
  return ()