Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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");
        }
Exemplo n.º 3
0
        public void Main(ServerContext context)
        {
            var ctx = new IpfsInstanceContext(context, GetPlatformBase());

            IpfsInstance = new IpfsInstance(ctx);
            IpfsInstance.Start();
        }
Exemplo n.º 4
0
        public void Main(ServerContext context)
        {
            var ctx  = new IpfsInstanceContext(context, GetPlatformBase());
            var ipfs = new IpfsInstance(ctx);

            Messenger = new IpfsMessenger(context, ipfs);
        }
Exemplo n.º 5
0
 private static void Stop(IpfsInstance ipfs)
 {
     ipfs.Daemon.Stop();
     do
     {
         Thread.Sleep(1);
     } while (ipfs.Daemon.State() != IpFsDaemonState.Stopped && ipfs.Daemon.State() != IpFsDaemonState.System);
 }
Exemplo n.º 6
0
 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!"
         }); });
 }
Exemplo n.º 7
0
 public IpfsWindowsDaemon(IpfsInstance instance) : base(instance)
 {
     _instance    = instance;
     CurrentState = DaemonState.Stopped;
 }
Exemplo n.º 8
0
 public override IpfsDaemonBase GetDaemon(IpfsInstance instance)
 {
     return(new IpfsWindowsDaemon(instance));
 }
Exemplo n.º 9
0
 public static void WaitTillRunning(this IpfsInstance instance, Action onRunning)
 {
     instance.Daemon.WaitTillRunning(onRunning);
 }
Exemplo n.º 10
0
 public static T WaitTillRunning <T>(this IpfsInstance instance, Func <T> onRunning)
 {
     return(instance.Daemon.WaitTillRunning(onRunning));
 }
Exemplo n.º 11
0
 public abstract void Install(IpfsInstance instance);
Exemplo n.º 12
0
 public abstract IpfsDaemonBase GetDaemon(IpfsInstance instance);
Exemplo n.º 13
0
 public IpfsApi(IpfsInstance instance)
 {
     _instance = instance;
 }
Exemplo n.º 14
0
 protected IpfsDaemonBase(IpfsInstance instance)
 {
     Instance = instance;
 }