diff --git a/Command/WebApp.hs b/Command/WebApp.hs index a3294911f9..e2442c37ec 100644 --- a/Command/WebApp.hs +++ b/Command/WebApp.hs @@ -16,12 +16,13 @@ import Assistant.Threads.WebApp import Utility.WebApp import Utility.ThreadScheduler import Utility.Daemon (checkDaemon) +import Init import qualified Command.Watch import Control.Concurrent.STM def :: [Command] -def = [oneShot $ noRepo firstRun $ +def = [oneShot $ noRepo firstRun $ dontCheck repoExists $ withOptions [Command.Watch.foregroundOption, Command.Watch.stopOption] $ command "webapp" paramNothing seek "launch webapp"] @@ -34,14 +35,15 @@ start :: Bool -> Bool -> CommandStart start foreground stopdaemon = notBareRepo $ do if stopdaemon then stopDaemon - else do + else ifM (isInitialized) ( go , liftIO firstRun ) + stop + where + go = do f <- liftIO . absPath =<< fromRepo gitAnnexHtmlShim ifM (checkpid <&&> checkshim f) $ ( liftIO $ openBrowser f , startDaemon True foreground $ Just openBrowser ) - stop - where checkpid = do pidfile <- fromRepo gitAnnexPidFile liftIO $ isJust <$> checkDaemon pidfile diff --git a/Init.hs b/Init.hs index bddcc696e0..8c000cc413 100644 --- a/Init.hs +++ b/Init.hs @@ -7,6 +7,7 @@ module Init ( ensureInitialized, + isInitialized, initialize, uninitialize ) where @@ -45,6 +46,10 @@ ensureInitialized = getVersion >>= maybe needsinit checkVersion , error "First run: git-annex init" ) +{- Checks if a repository is initialized. Does not check version for ugrade. -} +isInitialized :: Annex Bool +isInitialized = maybe Annex.Branch.hasSibling (const $ return True) =<< getVersion + {- set up a git pre-commit hook, if one is not already present -} gitPreCommitHookWrite :: Annex () gitPreCommitHookWrite = unlessBare $ do