32 lines
		
	
	
	
		
			825 B
			
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			825 B
			
		
	
	
	
		
			Haskell
		
	
	
	
	
	
{- git-annex command
 | 
						|
 -
 | 
						|
 - Copyright 2014-2016 Joey Hess <id@joeyh.name>
 | 
						|
 -
 | 
						|
 - Licensed under the GNU GPL version 3 or higher.
 | 
						|
 -}
 | 
						|
 | 
						|
{-# LANGUAGE CPP #-}
 | 
						|
 | 
						|
module Command.RemoteDaemon where
 | 
						|
 | 
						|
import Command
 | 
						|
import RemoteDaemon.Core
 | 
						|
import Utility.Daemon
 | 
						|
 | 
						|
cmd :: Command
 | 
						|
cmd = noCommit $
 | 
						|
	command "remotedaemon" SectionMaintenance
 | 
						|
		"persistent communication with remotes"
 | 
						|
		paramNothing (run <$$> const parseDaemonOptions)
 | 
						|
 | 
						|
run :: DaemonOptions -> CommandSeek
 | 
						|
run o
 | 
						|
	| stopDaemonOption o = error "--stop not implemented for remotedaemon"
 | 
						|
	| foregroundDaemonOption o = liftIO runInteractive
 | 
						|
	| otherwise = do
 | 
						|
#ifndef mingw32_HOST_OS
 | 
						|
		nullfd <- liftIO $ openFd "/dev/null" ReadOnly Nothing defaultFileFlags
 | 
						|
		liftIO $ daemonize nullfd Nothing False runNonInteractive
 | 
						|
#else
 | 
						|
		liftIO $ foreground Nothing runNonInteractive	
 | 
						|
#endif
 |