public static DaemonCommand CreateDaemonCommand() { var shell = new Shell(); var coloredConsole = ColoredTextWriter.Out; var coloredErrorConsole = ColoredTextWriter.Error; var fuse = FuseApi.Initialize("daemon", new List <string>()); var daemonReport = fuse.Report; var localSocketServer = new LocalSocketServer(daemonReport); var serviceRunnerFactory = new ServiceRunnerFactory( new Service("CodeAssistance", fuse.CodeAssistance) , new Service("Tray", fuse.Tray) ); var daemonSingleInstance = new EnsureSingleUser( coloredErrorConsole, shell, userFile: DaemonPossessionFile); return(new DaemonCommand( coloredConsole, daemonReport, daemonSingleInstance, fuse, (a) => new DaemonRunner( daemonSingleInstance, localSocketServer, a.Debug, !a.IsMinimal, fuse, serviceRunnerFactory, daemonReport))); }
public DaemonCommand( ColoredTextWriter textWriter, IReport report, EnsureSingleUser ensureSingleUser, IFuseLauncher fuseLauncher, Func <DaemonArgs, DaemonRunner> daemonRunner) : base("daemon", "Start the fuse daemon") { _textWriter = textWriter; _report = report; _ensureSingleUser = ensureSingleUser; _fuse = fuseLauncher; _optionSet = CreateOptions(); _daemonRunner = daemonRunner; _helpArguments = new HelpArguments( new HelpHeader("fuse " + Name, Description), new HelpSynopsis("fuse daemon [<Options>]"), new HelpDetailedDescription( @"Fuse daemon starts a local server on port(12122). It communicates over our own protocol, with a Plugin API built on top. Documentation for the protocol and the API will be released later."), new HelpOptions(_optionSet.ToTable())); }