module Azubi.Systems.Gentoo where

import Azubi.Core.Context
import Azubi.Core.Revertable
import Azubi.Core.Command

import Azubi.Commands.Install

data Gentoo = Gentoo
            | GentooRevert

instance Context Gentoo where
  label _ = "Gentoo system"

instance Revertable Gentoo where
  isRevert GentooRevert = True
  isRevert Gentoo       = False

  toggleRevert GentooRevert = Gentoo
  toggleRevert Gentoo       = GentooRevert

instance Installed Gentoo where
    isInstalled _ package = BoolCommand $
        "`eix -e " ++ package ++ " | head -n1 | cut -d' ' -f 1` == '[I]'"
    doInstall   _ package = [ SuperUserShellCommand $ "emerge " ++ package ]
    doUnInstall _ package = [ SuperUserShellCommand $ "emerge --unmerge " ++ package ]