public ExecuteResultEnum Delete(IProjectCommandOptions options) { var displayName = options.DisplayName; var projectIndex = FindIndexByName(displayName); if (projectIndex < 0) { _reportService.Error($"Cant find project '{displayName}'"); return(ExecuteResultEnum.Error); } if (!options.Force) { if (options.Silent) { _reportService.Warn($"Please add --force to delete project '{displayName}'"); return(ExecuteResultEnum.Error); } else { var delete = Prompt.GetYesNo($"Delete project '{displayName}'", false, System.ConsoleColor.Red); if (!delete) { return(ExecuteResultEnum.Aborted); } } } _globalConfigFile.Config.Projects.RemoveAt(projectIndex); _globalConfigFile.Save(_globalConfigFile.Config); _reportService.Output($"Project '{displayName}' deleted."); return(ExecuteResultEnum.Succeeded); }
private bool IsDisplayNameAlreadyUsed(string displayName, IProjectCommandOptions options) { if (FindByName(displayName) != null) { _reportService.Error($"Project {displayName} already exists"); if (!options.Silent) { _reportService.Output($"\tPlease run '{Configuration.Name} project ls' to show all existing projects"); } return(true); } return(false); }
public ProjectCommandOptions(IProjectCommandOptions options) : base(options) { _options = options; }
public ExecuteResultEnum Create(IProjectCommandOptions options) { var path = options.Path; var displayName = options.DisplayName; if (string.IsNullOrEmpty(path)) { if (options.Silent) { _reportService.Error($"Path to spocr.json is required"); _reportService.Output($"\tPlease use '--path'"); return(ExecuteResultEnum.Error); } else { path = Prompt.GetString("Enter path to spocr.json, e.g. base directory of your project:", new DirectoryInfo(Directory.GetCurrentDirectory()).Name); } } if (string.IsNullOrEmpty(path)) { return(ExecuteResultEnum.Aborted); } path = CreateConfigFilePath(path); if (string.IsNullOrEmpty(displayName)) { displayName = CreateDisplayNameFromPath(path); } if (string.IsNullOrEmpty(displayName)) { _reportService.Error($"DisplayName for project is required"); _reportService.Output($"\tPlease use '--name'"); return(ExecuteResultEnum.Error); } if (IsDisplayNameAlreadyUsed(displayName, options)) { return(ExecuteResultEnum.Error); } _globalConfigFile.Config?.Projects.Add(new GlobalProjectConfigurationModel { DisplayName = displayName, ConfigFile = path }); _globalConfigFile.Save(_globalConfigFile.Config); if (options.Silent) { _reportService.Output($"{{ \"displayName\": \"{displayName}\" }}"); } else { _reportService.Output($"Project '{displayName}' created."); } return(ExecuteResultEnum.Succeeded); }