static void Main(string[] args) { var logger = new ConsoleLogger(); var dir = new DirectoryInfo("c://tmp//ipfs-ext"); var pc = new ServerContext("..//..//..//..//..//..//instance/prime-server.config"); var ctx = new IpfsInstanceContext(pc, new IpfsWin64(new IpfsWin64Extension())) { Logger = logger }; var ipfs = new IpfsInstance(ctx); ipfs.Daemon.Start(); /* cleanup */ bool ConsoleEventCallback(int eventType) { if (eventType == 2) { Stop(ipfs); } return(false); } handler = new ConsoleEventDelegate(ConsoleEventCallback); SetConsoleCtrlHandler(handler, true); /* cleanup */ Console.ReadLine(); Stop(ipfs); }
public override void Install(IpfsInstance instance) { if (!PackageInstallName.EndsWith(".zip")) { throw new Exception("The package specified '" + PackageInstallName + "' is not the expected .zip file."); } var zipInfo = new FileInfo(Path.Combine(instance.ExecutingDirectory.FullName, PackageInstallName)); if (!zipInfo.Exists) { throw new Exception(zipInfo.FullName + " does not exist, unable to install IPFS for Windows."); } var tmp = instance.TempDirectory.EnsureTempSubDirectory(); System.IO.Compression.ZipFile.ExtractToDirectory(zipInfo.FullName, tmp.FullName); var exe = new FileInfo(Path.Combine(tmp.FullName, Path.Combine("go-ipfs", NativeExecutable))); if (!exe.Exists) { throw new Exception(exe.FullName + " does not exist, package archive has unexpected structure. Unable to install IPFS for Windows."); } File.Copy(exe.FullName, instance.NativeExecutable.FullName); instance.NativeExecutable.Refresh(); tmp.Delete(true); FirewallHelper.Instance.GrantAuthorization(instance.NativeExecutable.FullName, "prime-ipfs"); }
public void Main(ServerContext context) { var ctx = new IpfsInstanceContext(context, GetPlatformBase()); IpfsInstance = new IpfsInstance(ctx); IpfsInstance.Start(); }
public void Main(ServerContext context) { var ctx = new IpfsInstanceContext(context, GetPlatformBase()); var ipfs = new IpfsInstance(ctx); Messenger = new IpfsMessenger(context, ipfs); }
private static void Stop(IpfsInstance ipfs) { ipfs.Daemon.Stop(); do { Thread.Sleep(1); } while (ipfs.Daemon.State() != IpFsDaemonState.Stopped && ipfs.Daemon.State() != IpFsDaemonState.System); }
public IpfsMessenger(ServerContext context, IpfsInstance ipfs) { _context = context; _ipfs = ipfs; _m = context.M; _m.RegisterAsync <IpfsVersionRequest>(this, x => { _m.SendAsync(new IpfsVersionResponse() { Version = "Hello IPFS world!" }); }); }
public IpfsWindowsDaemon(IpfsInstance instance) : base(instance) { _instance = instance; CurrentState = DaemonState.Stopped; }
public override IpfsDaemonBase GetDaemon(IpfsInstance instance) { return(new IpfsWindowsDaemon(instance)); }
public static void WaitTillRunning(this IpfsInstance instance, Action onRunning) { instance.Daemon.WaitTillRunning(onRunning); }
public static T WaitTillRunning <T>(this IpfsInstance instance, Func <T> onRunning) { return(instance.Daemon.WaitTillRunning(onRunning)); }
public abstract void Install(IpfsInstance instance);
public abstract IpfsDaemonBase GetDaemon(IpfsInstance instance);
public IpfsApi(IpfsInstance instance) { _instance = instance; }
protected IpfsDaemonBase(IpfsInstance instance) { Instance = instance; }