{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MonoLocalBinds #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeApplications #-}
module Aura.Commands.O ( displayOrphans, adoptPkg ) where
import Aura.Core (Env(..), orphans, sudo)
import Aura.Pacman (pacman)
import Aura.Types
import Aura.Utils (putTextLn)
import Data.Generics.Product (field)
import Data.Set.NonEmpty (NESet)
import RIO
displayOrphans :: IO ()
displayOrphans = orphans >>= traverse_ (putTextLn . view (field @"name"))
adoptPkg :: NESet PkgName -> RIO Env ()
adoptPkg pkgs = sudo . liftIO . pacman $ ["-D", "--asexplicit"] <> asFlag pkgs