diff options
author | Joey Hess <joey@kitenet.net> | 2013-02-10 14:52:54 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-02-10 14:52:54 -0400 |
commit | 516d4899d3ea7e12ee9b408160b36190b8c2d3f2 (patch) | |
tree | ad34ef74d632b07a20b6dec6850d5b9e4a14b289 /Annex/UUID.hs | |
parent | 9b7a1ea41832f30e4d2f707a02df34ccedfcb69f (diff) |
Now uses the Haskell uuid library, rather than needing a uuid program.
Been meaning to do this for some time; Android port was last straw.
Note that newer versions of the uuid library have a Data.UUID.V4 that
generates random UUIDs slightly more cleanly, but Debian has an old version
of the library, so I do it slightly round-about.
Diffstat (limited to 'Annex/UUID.hs')
-rw-r--r-- | Annex/UUID.hs | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/Annex/UUID.hs b/Annex/UUID.hs index b20d94125..c36861bbe 100644 --- a/Annex/UUID.hs +++ b/Annex/UUID.hs @@ -6,7 +6,7 @@ - UUIDs of remotes are cached in git config, using keys named - remote.<name>.annex-uuid - - - Copyright 2010-2011 Joey Hess <joey@kitenet.net> + - Copyright 2010-2013 Joey Hess <joey@kitenet.net> - - Licensed under the GNU GPL version 3 or higher. -} @@ -24,20 +24,17 @@ module Annex.UUID ( import Common.Annex import qualified Git import qualified Git.Config -import qualified Build.SysConfig as SysConfig import Config +import qualified Data.UUID as U +import System.Random + configkey :: ConfigKey configkey = annexConfig "uuid" -{- Generates a UUID. There is a library for this, but it's not packaged, - - so use the command line tool. -} +{- Generates a random UUID, that does not include the MAC address. -} genUUID :: IO UUID -genUUID = gen . lines <$> readProcess command params - where - gen [] = error $ "no output from " ++ command - gen (l:_) = toUUID l - (command:params) = words SysConfig.uuid +genUUID = UUID . show <$> (randomIO :: IO U.UUID) {- Get current repository's UUID. -} getUUID :: Annex UUID |