diff options
author | Joey Hess <joey@kitenet.net> | 2013-04-17 12:02:44 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-04-17 12:02:44 -0400 |
commit | 7a22f710c5719b0a2694d90f695ee854a75bf946 (patch) | |
tree | a5d7479ab18706b0b99e0d3419e6835d40d0e461 /Build/InstallDesktopFile.hs | |
parent | ddeb07578cf496bb8a390965eee7e4fe6e81cbc4 (diff) |
split out library
Diffstat (limited to 'Build/InstallDesktopFile.hs')
-rw-r--r-- | Build/InstallDesktopFile.hs | 79 |
1 files changed, 1 insertions, 78 deletions
diff --git a/Build/InstallDesktopFile.hs b/Build/InstallDesktopFile.hs index c01557414..36d60d0d1 100644 --- a/Build/InstallDesktopFile.hs +++ b/Build/InstallDesktopFile.hs @@ -10,84 +10,7 @@ module Main where -import Utility.Exception -import Utility.FreeDesktop -import Utility.Path -import Utility.Monad -import Locations.UserConfig -import Utility.OSX -import Assistant.Install.AutoStart - -import Control.Applicative -import System.Directory -import System.Environment -import System.Posix.User -import System.Posix.Files -import System.FilePath -import Data.Maybe - -{- The command can be either just "git-annex", or the full path to use - - to run it. -} -desktop :: FilePath -> DesktopEntry -desktop command = genDesktopEntry - "Git Annex" - "Track and sync the files in your Git Annex" - False - (command ++ " webapp") - ["Network", "FileTransfer"] - -autostart :: FilePath -> DesktopEntry -autostart command = genDesktopEntry - "Git Annex Assistant" - "Autostart" - False - (command ++ " assistant --autostart") - [] - -systemwideInstall :: IO Bool -systemwideInstall = isroot <||> destdirset - where - isroot = do - uid <- fromIntegral <$> getRealUserID - return $ uid == (0 :: Int) - destdirset = isJust <$> catchMaybeIO (getEnv "DESTDIR") - -inDestDir :: FilePath -> IO FilePath -inDestDir f = do - destdir <- catchDefaultIO "" (getEnv "DESTDIR") - return $ destdir ++ "/" ++ f - -writeFDODesktop :: FilePath -> IO () -writeFDODesktop command = do - datadir <- ifM systemwideInstall ( return systemDataDir, userDataDir ) - writeDesktopMenuFile (desktop command) - =<< inDestDir (desktopMenuFilePath "git-annex" datadir) - - configdir <- ifM systemwideInstall ( return systemConfigDir, userConfigDir ) - installAutoStart command - =<< inDestDir (autoStartPath "git-annex" configdir) - -writeOSXDesktop :: FilePath -> IO () -writeOSXDesktop command = do - installAutoStart command =<< inDestDir =<< ifM systemwideInstall - ( return $ systemAutoStart osxAutoStartLabel - , userAutoStart osxAutoStartLabel - ) - -install :: FilePath -> IO () -install command = do -#ifdef darwin_HOST_OS - writeOSXDesktop command -#else - writeFDODesktop command -#endif - ifM systemwideInstall - ( return () - , do - programfile <- inDestDir =<< programFile - createDirectoryIfMissing True (parentDir programfile) - writeFile programfile command - ) +import Build.InstallDesktopFile main :: IO () main = getArgs >>= go |