Add OSX standalone app license bundle, and arrange for the About page

to link to it.
This commit is contained in:
Joey Hess 2012-09-27 16:47:52 -04:00
parent ad5b35026e
commit a02d6b36d8
8 changed files with 44 additions and 8 deletions

View file

@ -16,6 +16,9 @@ import Utility.OSX
import System.Posix.Env
standaloneOSXAppBase :: IO (Maybe FilePath)
standaloneOSXAppBase = getEnv "GIT_ANNEX_OSX_APP_BASE"
{- The OSX git-annex.app does not have an installation process.
- So when it's run, it needs to set up autostarting of the assistant
- daemon, as well as writing the programFile, and putting a
@ -25,11 +28,10 @@ import System.Posix.Env
- it around, the paths this sets up won't break.
-}
ensureInstalled :: IO ()
ensureInstalled = do
e <- getEnv "GIT_ANNEX_OSX_APP_BASE"
case e of
Nothing -> return ()
Just base -> do
ensureInstalled = go =<< standaloneOSXAppBase
where
go Nothing = noop
go (Just base) = do
let program = base ++ "/bin/git-annex"
programfile <- programFile
createDirectoryIfMissing True (parentDir programfile)

View file

@ -9,15 +9,36 @@
module Assistant.WebApp.Documentation where
import Assistant.Common
import Assistant.WebApp
import Assistant.WebApp.Types
import Assistant.WebApp.SideBar
import Assistant.Install (standaloneOSXAppBase)
import Utility.Yesod
import Yesod
{- The full license info may be included in a file on disk that can
- be read in and displayed. -}
licenseFile :: IO (Maybe FilePath)
licenseFile = do
base <- standaloneOSXAppBase
return $ (</> "LICENSE") <$> base
getAboutR :: Handler RepHtml
getAboutR = bootstrap (Just About) $ do
sideBarDisplay
setTitle "About git-annex"
builtinlicense <- isJust <$> liftIO licenseFile
$(widgetFile "documentation/about")
getLicenseR :: Handler RepHtml
getLicenseR = do
v <- liftIO licenseFile
case v of
Nothing -> redirect AboutR
Just f -> bootstrap (Just About) $ do
sideBarDisplay
setTitle "License"
license <- liftIO $ readFile f
$(widgetFile "documentation/license")

View file

@ -2,6 +2,7 @@
/noscript NoScriptR GET
/noscript/auto NoScriptAutoR GET
/about AboutR GET
/about/license LicenseR GET
/config ConfigR GET
/config/repository RepositoriesR GET