40ecf58d4b
This does not change the overall license of the git-annex program, which was already AGPL due to a number of sources files being AGPL already. Legally speaking, I'm adding a new license under which these files are now available; I already released their current contents under the GPL license. Now they're dual licensed GPL and AGPL. However, I intend for all my future changes to these files to only be released under the AGPL license, and I won't be tracking the dual licensing status, so I'm simply changing the license statement to say it's AGPL. (In some cases, others wrote parts of the code of a file and released it under the GPL; but in all cases I have contributed a significant portion of the code in each file and it's that code that is getting the AGPL license; the GPL license of other contributors allows combining with AGPL code.)
52 lines
1.6 KiB
Haskell
52 lines
1.6 KiB
Haskell
{- items that a command can act on
|
|
-
|
|
- Copyright 2016 Joey Hess <id@joeyh.name>
|
|
-
|
|
- Licensed under the GNU AGPL version 3 or higher.
|
|
-}
|
|
|
|
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
|
|
|
|
module Types.ActionItem where
|
|
|
|
import Key
|
|
import Types.Transfer
|
|
import Git.FilePath
|
|
|
|
data ActionItem
|
|
= ActionItemAssociatedFile AssociatedFile
|
|
| ActionItemKey
|
|
| ActionItemBranchFilePath BranchFilePath
|
|
| ActionItemFailedTransfer Transfer TransferInfo
|
|
|
|
class MkActionItem t where
|
|
mkActionItem :: t -> ActionItem
|
|
|
|
instance MkActionItem AssociatedFile where
|
|
mkActionItem = ActionItemAssociatedFile
|
|
|
|
instance MkActionItem Key where
|
|
mkActionItem _ = ActionItemKey
|
|
|
|
instance MkActionItem BranchFilePath where
|
|
mkActionItem = ActionItemBranchFilePath
|
|
|
|
instance MkActionItem (Transfer, TransferInfo) where
|
|
mkActionItem = uncurry ActionItemFailedTransfer
|
|
|
|
actionItemDesc :: ActionItem -> Key -> String
|
|
actionItemDesc (ActionItemAssociatedFile (AssociatedFile (Just f))) _ = f
|
|
actionItemDesc (ActionItemAssociatedFile (AssociatedFile Nothing)) k = serializeKey k
|
|
actionItemDesc ActionItemKey k = serializeKey k
|
|
actionItemDesc (ActionItemBranchFilePath bfp) _ = descBranchFilePath bfp
|
|
actionItemDesc (ActionItemFailedTransfer _ i) k =
|
|
actionItemDesc (ActionItemAssociatedFile (associatedFile i)) k
|
|
|
|
actionItemWorkTreeFile :: ActionItem -> Maybe FilePath
|
|
actionItemWorkTreeFile (ActionItemAssociatedFile (AssociatedFile af)) = af
|
|
actionItemWorkTreeFile _ = Nothing
|
|
|
|
actionItemTransferDirection :: ActionItem -> Maybe Direction
|
|
actionItemTransferDirection (ActionItemFailedTransfer t _) = Just $
|
|
transferDirection t
|
|
actionItemTransferDirection _ = Nothing
|