module Unison.Codebase.Editor.HandleInput.Cancel ( handleCancel, ) where import U.Codebase.Sqlite.ProjectBranch (ProjectBranch (..)) import Unison.Cli.Monad (Cli) import Unison.Cli.Monad qualified as Cli import Unison.Cli.MonadUtils qualified as Cli import Unison.Codebase.Editor.HandleInput.DeleteBranch (handleDeleteBranch2) import Unison.Codebase.Editor.Output qualified as Output import Unison.Codebase.ProjectPath (ProjectPathG (..)) import Unison.Prelude import Unison.Project (ProjectAndBranch (..)) handleCancel :: Cli () handleCancel :: Cli () handleCancel = do ProjectPath current <- Cli ProjectPath Cli.getCurrentProjectPath Bool -> Cli () -> Cli () forall (f :: * -> *). Applicative f => Bool -> f () -> f () when (Bool -> Bool not (ProjectPath current.branch.isUpdate Bool -> Bool -> Bool || ProjectPath current.branch.isUpgrade Bool -> Bool -> Bool || ProjectPath current.branch.isMerge)) do Output -> Cli () forall a. Output -> Cli a Cli.returnEarly (Pretty ColorText -> Output Output.Literal Pretty ColorText "There's no merge, update, or upgrade in progress.") ProjectAndBranch Project ProjectBranch -> Cli () handleDeleteBranch2 (Project -> ProjectBranch -> ProjectAndBranch Project ProjectBranch forall a b. a -> b -> ProjectAndBranch a b ProjectAndBranch ProjectPath current.project ProjectPath current.branch)