blob: 5c5a428d5982f3b9c0ce439612eaf2b7bc04134d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
{- git-annex data types
- -}
module Types where
-- annexed filenames are mapped into keys
type Key = String
-- this structure represents a key/value backend
data Backend = Backend {
-- name of this backend
name :: String,
-- converts a filename to a key
getKey :: GitRepo -> FilePath -> IO (Maybe Key),
-- stores a file's contents to a key
storeFileKey :: GitRepo -> FilePath -> Key -> IO Bool,
-- retrieves a key's contents to a file
retrieveKeyFile :: Key -> FilePath -> IO Bool,
-- removes a key
removeKey :: Key -> IO Bool
}
-- a git repository
data GitRepo = GitRepo {
top :: FilePath,
bare :: Bool
}
-- git-annex's runtime state
data State = State {
repo :: GitRepo,
gitconfig :: GitConfig
}
data GitConfig = GitConfig {
annex_name :: String,
annex_numcopies :: Int,
annex_backends :: [Backend]
}
|