module Main(main) where import CAStore.Command (runCommand) import CAStore.Command.Autocomplete (generateAutocompletions) import CAStore.Config (finalConfig) import CAStore.Program (Program, runProgram, getCommand, getAutocomplete) import CAStore.Program.IO.Text (err) import CAStore.Program.Storage (initialise) main :: IO () main = finalConfig >>= flip runProgram defaultProgram defaultProgram :: Program () defaultProgram = do initialise getAutocomplete >>= \case True -> generateAutocompletions False -> getCommand >>= either err runCommand