diff options
author | Joey Hess <joey@kitenet.net> | 2014-01-26 16:37:27 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-01-26 16:37:27 -0400 |
commit | f4a0908ce1fa79247d5cd8362f942dbbc6f22a85 (patch) | |
tree | 72964730caa44e8c0ab97f4ccdd7538c67254d0e | |
parent | da0b9c92faa431199589d2d9ea98ea60af6a333f (diff) |
re-add
-rw-r--r-- | CmdLine/GitAnnexShell/Fields.hs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/CmdLine/GitAnnexShell/Fields.hs b/CmdLine/GitAnnexShell/Fields.hs new file mode 100644 index 000000000..e71f2c2a0 --- /dev/null +++ b/CmdLine/GitAnnexShell/Fields.hs @@ -0,0 +1,35 @@ +{- git-annex-shell fields + - + - Copyright 2012 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module CmdLine.GitAnnexShell.Fields where + +import Common.Annex +import qualified Annex + +import Data.Char + +{- A field, stored in Annex state, with a value sanity checker. -} +data Field = Field + { fieldName :: String + , fieldCheck :: String -> Bool + } + +getField :: Field -> Annex (Maybe String) +getField = Annex.getField . fieldName + +remoteUUID :: Field +remoteUUID = Field "remoteuuid" $ + -- does it look like a UUID? + all (\c -> isAlphaNum c || c == '-') + +associatedFile :: Field +associatedFile = Field "associatedfile" $ \f -> + -- is the file a safe relative filename? + not (isAbsolute f) && not ("../" `isPrefixOf` f) + +direct :: Field +direct = Field "direct" $ \f -> f == "1" |