[[!comment format=mdwn username="david" avatar="http://cdn.libravatar.org/avatar/22c2d800db6a7699139df604a67cb221" subject="first attempt" date="2020-05-16T23:44:41Z" content=""" This isn't very general, but it seems to work [[!format haskell \"\"\" bareMirror :: String -> String -> Property DebianLike bareMirror dir url = propertyList (\"bare mirror of \" ++ url ++ \" in \" ++ dir ) $ props & Git.installed & Git.bareRepo dir (User \"root\") Git.SharedAll & Git.repoConfigured dir (\"remote.origin.url\", url) & Git.repoConfigured dir (\"remote.origin.mirror\", \"true\") & Git.repoConfigured dir (\"remote.origin.fetch\", \"+refs/*:refs/*\") & Cmd.cmdProperty \"git\" [\"-C\", dir, \"fetch\", \"origin\" ] `changesFileContent` (dir \"HEAD\") \"\"\"]] """]]