aboutsummaryrefslogtreecommitdiff
path: root/Build/InstallDesktopFile.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-04-17 12:02:44 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-04-17 12:02:44 -0400
commit7a22f710c5719b0a2694d90f695ee854a75bf946 (patch)
treea5d7479ab18706b0b99e0d3419e6835d40d0e461 /Build/InstallDesktopFile.hs
parentddeb07578cf496bb8a390965eee7e4fe6e81cbc4 (diff)
split out library
Diffstat (limited to 'Build/InstallDesktopFile.hs')
-rw-r--r--Build/InstallDesktopFile.hs79
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