private void ExecuteRun(IStream io, params string[] tokens)
        {
            var exe  = tokens[1];
            var args = DaemonProcess.MakeCli(tokens, 2);

            DaemonProcess.Interactive(io, new DaemonProcess.Args
            {
                Executable = exe.Replace("{root}", downloads),
                Arguments  = args.ToString().Replace("{root}", downloads),
            });
        }
Пример #2
0
        private void ExecuteInstall(IStream io, params string[] tokens)
        {
            var id = tokens[2];

            installed.TryGetValue(id, out var dto);
            AssertTools.True(dto == null, "Daemon {0} already installed", id);
            AssertTools.True(Regex.IsMatch(id, "[a-zA_Z][a-zA_Z0-9_]*"), "Invalid id {0}", id);
            var exe = tokens[3];

            AssertTools.True(PathTools.IsChildPath(root, exe), "Invalid path {0}", exe);
            dto = new DaemonDto
            {
                Id   = id,
                Path = tokens[3],
                Args = DaemonProcess.MakeCli(tokens, 4),
            };
            var path = PathTools.Combine(root, dto.Path);

            AssertTools.True(File.Exists(path), "File {0} not found", dto.Path);
            Database.Save(database, dto);
            io.WriteLine("Daemon {0} installed as {1}", id, dto.Info("Path|Args"));
            ReloadDatabase();
        }