Exemple #1
0
 public JupyterInstallCommand(IConsole console, IJupyterKernelSpecInstaller jupyterKernelSpecInstaller, HttpPortRange httpPortRange = null, DirectoryInfo path = null)
 {
     _console = console;
     _jupyterKernelSpecInstaller = jupyterKernelSpecInstaller;
     _httpPortRange = httpPortRange;
     _path          = path;
 }
Exemple #2
0
        static HttpPortRange ParsePortRangeOption(ArgumentResult result)
        {
            var source = result.Tokens[0].Value;

            if (string.IsNullOrWhiteSpace(source))
            {
                result.ErrorMessage = "Must specify a port range";
                return(null);
            }

            var parts = source.Split(new[] { "-" }, StringSplitOptions.RemoveEmptyEntries);

            if (parts.Length != 2)
            {
                result.ErrorMessage = "Must specify a port range";
                return(null);
            }

            if (!int.TryParse(parts[0], out var start) || !int.TryParse(parts[1], out var end))
            {
                result.ErrorMessage = "Must specify a port range as StartPort-EndPort";
                return(null);
            }

            if (start > end)
            {
                result.ErrorMessage = "Start port must be lower then end port";
                return(null);
            }

            var pr = new HttpPortRange(start, end);

            return(pr);
        }
Exemple #3
0
        private static void ComputeKernelSpecArgs(HttpPortRange httpPortRange, DirectoryInfo directory)
        {
            var kernelSpecs = directory.GetFiles("kernel.json", SearchOption.AllDirectories);

            foreach (var kernelSpec in kernelSpecs)
            {
                var parsed = JObject.Parse(File.ReadAllText(kernelSpec.FullName));

                var argv = parsed["argv"].Value <JArray>();

                argv.Insert(argv.Count - 1, "--http-port-range");
                argv.Insert(argv.Count - 1, $"{httpPortRange.Start}-{httpPortRange.End}");

                File.WriteAllText(kernelSpec.FullName, parsed.ToString(Newtonsoft.Json.Formatting.Indented));
            }
        }