61 lines
1.7 KiB
C#
61 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.Extensions.CommandLineUtils;
|
|
|
|
namespace Yi.Abp.Tool.Commands
|
|
{
|
|
public class CloneCommand : ICommand
|
|
{
|
|
public List<string> CommandStrs => new List<string> { "clone"};
|
|
|
|
private const string cloneAddress= "https://gitee.com/ccnetcore/Yi";
|
|
|
|
|
|
public string Command => "clone";
|
|
public string? Description => "克隆最新YiFramework源代码";
|
|
|
|
public void CommandLineApplication(CommandLineApplication application)
|
|
{
|
|
application.OnExecute(() =>
|
|
{
|
|
StartCmd($"git clone {cloneAddress}");
|
|
return 0;
|
|
});
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 执行cmd命令
|
|
/// </summary>
|
|
/// <param name="cmdCommands"></param>
|
|
private void StartCmd(params string[] cmdCommands)
|
|
{
|
|
ProcessStartInfo psi = new ProcessStartInfo
|
|
{
|
|
FileName = "cmd.exe",
|
|
Arguments = $"/c chcp 65001&{string.Join("&", cmdCommands)}",
|
|
RedirectStandardInput = true,
|
|
RedirectStandardOutput = true,
|
|
RedirectStandardError = true,
|
|
CreateNoWindow = true,
|
|
UseShellExecute = false
|
|
};
|
|
|
|
Process proc = new Process
|
|
{
|
|
StartInfo = psi
|
|
};
|
|
|
|
proc.Start();
|
|
string output = proc.StandardOutput.ReadToEnd();
|
|
Console.WriteLine(output);
|
|
|
|
proc.WaitForExit();
|
|
}
|
|
}
|
|
}
|