summaryrefslogtreecommitdiff
path: root/doc/forum/integration_with_gitolite
diff options
context:
space:
mode:
authordavid2018-08-25 17:16:48 +0000
committeradmin2018-08-25 17:16:48 +0000
commit83f48e1f33c0c7f1b22b2d79b960caffab7b94f7 (patch)
treed268f5dea18852d5f03480972fe29ca262f92d58 /doc/forum/integration_with_gitolite
parentea04b871e93a80b4828e5bef8bf1fe2180c43b54 (diff)
Added a comment: getting closer
Diffstat (limited to 'doc/forum/integration_with_gitolite')
-rw-r--r--doc/forum/integration_with_gitolite/comment_4_acaa1d125ea406c2a5617a4effc4b115._comment33
1 files changed, 33 insertions, 0 deletions
diff --git a/doc/forum/integration_with_gitolite/comment_4_acaa1d125ea406c2a5617a4effc4b115._comment b/doc/forum/integration_with_gitolite/comment_4_acaa1d125ea406c2a5617a4effc4b115._comment
new file mode 100644
index 00000000..3a02b96e
--- /dev/null
+++ b/doc/forum/integration_with_gitolite/comment_4_acaa1d125ea406c2a5617a4effc4b115._comment
@@ -0,0 +1,33 @@
+[[!comment format=mdwn
+ username="david"
+ avatar="http://cdn.libravatar.org/avatar/22c2d800db6a7699139df604a67cb221"
+ subject="getting closer"
+ date="2018-08-25T17:16:48Z"
+ content="""
+maybe I suffer from Haskell blindness, but I didn't see how you handled keys
+
+here's my latest revision
+[[!format haskell \"\"\"
+gitoliteKeys :: User -> [(FilePath, String)] -> Property UnixLike
+gitoliteKeys user@(User username) keys = property' (\"set up gitolite keys for \" ++ username) $ \w -> do
+ home <- liftIO (User.homedir user)
+ ensureProperty w $ go home
+ where
+ go :: FilePath -> Property UnixLike
+ go home = installKeys keys
+ `onChange` recompile
+ `requires` File.dirExists keydir
+ where
+ keydir = home </> \".gitolite/keydir/zzz/propellor\"
+ recompile = Cmd.userScriptProperty user [ \"gitolite ../triggers/post-compile/ssh-authkeys\"
+ , \"gitolite ../triggers/post-compile/ssh-authkeys-shell-users bremner\"
+ ]
+ `changesFile` (home </> \"gitolite/.ssh/authorized_keys\")
+ installKeys :: [(FilePath, String)] -> Property UnixLike
+ installKeys [] = doNothing
+ installKeys ((path, content):rest) = File.hasContent (keydir </> path ++ \".pub\") [content]
+ `before` installKeys rest
+\"\"\"]]
+
+It still has one piece of hardcoding in it (the shell user bremner)
+"""]]