diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-06-08 15:04:15 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-06-08 15:04:15 -0400 |
commit | a5681bf82cb2f43c4615529fb5eca3dd1f15268a (patch) | |
tree | d49ef2805c93f144f283e5d8209b44e0bb03ad65 /Annex | |
parent | cb25507c65962391a5061c1915541008d930df46 (diff) |
also avoid crashing in most circumstances if unable to determine the username
Mostly the username is only used for the git committer or other display
purposes, and we can just fall back to a dummy value in these cases.
The only remaining place where an error is thrown is when starting local
pairing, which needs the username to be known.
Diffstat (limited to 'Annex')
-rw-r--r-- | Annex/Environment.hs | 4 | ||||
-rw-r--r-- | Annex/Init.hs | 10 |
2 files changed, 6 insertions, 8 deletions
diff --git a/Annex/Environment.hs b/Annex/Environment.hs index a066e9ab0..4f0fda986 100644 --- a/Annex/Environment.hs +++ b/Annex/Environment.hs @@ -33,7 +33,7 @@ checkEnvironment = do checkEnvironmentIO :: IO () checkEnvironmentIO = whenM (isNothing <$> myUserGecos) $ do - username <- myUserName + username <- either (const "unknown") id <$> myUserName ensureEnv "GIT_AUTHOR_NAME" username ensureEnv "GIT_COMMITTER_NAME" username where @@ -52,7 +52,7 @@ ensureCommit :: Annex a -> Annex a ensureCommit a = either retry return =<< tryNonAsync a where retry _ = do - name <- liftIO myUserName + name <- liftIO $ either (const "unknown") id <$> myUserName setConfig (ConfigKey "user.name") name setConfig (ConfigKey "user.email") name a diff --git a/Annex/Init.hs b/Annex/Init.hs index e12a8bc80..08dd91a71 100644 --- a/Annex/Init.hs +++ b/Annex/Init.hs @@ -52,13 +52,11 @@ genDescription (Just d) = return d genDescription Nothing = do reldir <- liftIO . relHome =<< liftIO . absPath =<< fromRepo Git.repoPath hostname <- fromMaybe "" <$> liftIO getHostname -#ifndef mingw32_HOST_OS let at = if null hostname then "" else "@" - username <- liftIO myUserName - return $ concat [username, at, hostname, ":", reldir] -#else - return $ concat [hostname, ":", reldir] -#endif + v <- liftIO myUserName + return $ concat $ case v of + Right username -> [username, at, hostname, ":", reldir] + Left _ -> [hostname, ":", reldir] initialize :: Maybe String -> Maybe Version -> Annex () initialize mdescription mversion = do |