コード例 #1
0
 public WorkspaceService(
     IWebShellFactory webShellFactory,
     IBoostApplicationContext applicationContext,
     IEnumerable <IFileContentTypeHandler> fileHandlers)
 {
     _webShellFactory     = webShellFactory;
     _applicationContext  = applicationContext;
     _fileHandlers        = fileHandlers.OrderBy(x => x.Order);
     _contentTypeProvider = new FileExtensionContentTypeProvider();
     _contentTypeProvider.Mappings.Add(".dll", "boost/dll");
 }
コード例 #2
0
        public Task <int> ExecuteCommandAsync(
            [Service] IWebShellFactory webShellFactory,
            ExecuteCommandInput input)
        {
            IWebShell shell = webShellFactory.CreateShell(input.Shell ?? "cmd");

            return(shell.ExecuteAsync(new ShellCommand(input.Command)
            {
                Arguments = input.Arguments,
                WorkDirectory = input.WorkDirectory
            }));
        }
コード例 #3
0
ファイル: GitMutations.cs プロジェクト: SwissLife-OSS/Boost
        public async Task <CloneGitRepositoryPayload> CloneRepositoryAsync(
            [Service] IWebShellFactory webShellFactory,
            CloneGitRepositoryInput input)
        {
            IWebShell shell = webShellFactory.CreateShell();

            var result = await shell.ExecuteAsync(new ShellCommand("git")
            {
                Arguments     = $"clone {input.Url}",
                WorkDirectory = input.Directory
            });

            var gitPath = input.Url.Split('/').Last().Replace(".git", "");
            var dir     = System.IO.Path.Combine(input.Directory, gitPath);

            return(new CloneGitRepositoryPayload(result, dir));
        }