git-annex-shell gcryptsetup command
This was the least-bad alternative to get dedicated key gcrypt repos working in the assistant.
This commit is contained in:
parent
245d5590c9
commit
bddfbef8be
4 changed files with 65 additions and 23 deletions
35
Command/GCryptSetup.hs
Normal file
35
Command/GCryptSetup.hs
Normal file
|
@ -0,0 +1,35 @@
|
|||
{- git-annex command
|
||||
-
|
||||
- Copyright 2013 Joey Hess <joey@kitenet.net>
|
||||
-
|
||||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
||||
module Command.GCryptSetup where
|
||||
|
||||
import Common.Annex
|
||||
import Command
|
||||
import Annex.UUID
|
||||
import qualified Remote.GCrypt
|
||||
import qualified Git
|
||||
|
||||
def :: [Command]
|
||||
def = [dontCheck repoExists $ noCommit $
|
||||
command "gcryptsetup" paramValue seek
|
||||
SectionPlumbing "sets up gcrypt repository"]
|
||||
|
||||
seek :: [CommandSeek]
|
||||
seek = [withStrings start]
|
||||
|
||||
start :: String -> CommandStart
|
||||
start gcryptid = next $ next $ do
|
||||
g <- gitRepo
|
||||
u <- getUUID
|
||||
gu <- Remote.GCrypt.getGCryptUUID True g
|
||||
if u == NoUUID && gu == Nothing
|
||||
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"
|
Loading…
Add table
Add a link
Reference in a new issue