Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

26 lines (20 sloc) 0.772 kb
module SignaturePlugin (plugin) where
-- This plugin replaces $SIG$ with the username and timestamp
-- of the last edit, prior to saving the page in the repository.
import Network.Gitit.Interface
import Data.Maybe (fromMaybe)
import Data.DateTime
import Control.Monad
plugin :: Plugin
plugin = PreCommitTransform replacedate
replacedate :: String -> PluginM String
replacedate [] = return ""
replacedate ('$':'S':'I':'G':'$':xs) = do
datetime <- liftIO $ getCurrentTime
mbuser <- askUser
let username = case mbuser of
Nothing -> "???"
Just u -> uUsername u
let sig = "-- " ++ username ++ " (" ++ formatDateTime "%c" datetime ++ ")"
liftM (sig ++ ) $ replacedate xs
replacedate (x:xs) = liftM (x : ) $ replacedate xs
Jump to Line
Something went wrong with that request. Please try again.