From e5729ffd44bef0b19d81dba7523a72a92ab213e0 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 2 Nov 2013 20:15:40 -0400 Subject: Fix enabling of gcrypt repository accessed over ssh; git-annex-shell gcryptsetup had a bug that caused it to fail with permission denied. --- Command/GCryptSetup.hs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'Command/GCryptSetup.hs') diff --git a/Command/GCryptSetup.hs b/Command/GCryptSetup.hs index a27e470c1..bdd770f15 100644 --- a/Command/GCryptSetup.hs +++ b/Command/GCryptSetup.hs @@ -23,13 +23,17 @@ seek = [withStrings start] start :: String -> CommandStart start gcryptid = next $ next $ do - g <- gitRepo u <- getUUID + when (u /= NoUUID) $ + error "gcryptsetup refusing to run; this repository already has a git-annex uuid!" + + g <- gitRepo gu <- Remote.GCrypt.getGCryptUUID True g - if u == NoUUID && gu == Nothing + let newgu = genUUIDInNameSpace gCryptNameSpace gcryptid + if gu == Nothing || gu == Just newgu then if Git.repoIsLocalBare g then do void $ Remote.GCrypt.setupRepo gcryptid g return True else error "cannot use gcrypt in a non-bare repository" - else error "gcryptsetup permission denied" + else error "gcryptsetup uuid mismatch" -- cgit v1.2.3