protected override int OnExecute(CommandLineApplication app) { var workingDir = TargetProject ?? Parent.TargetProject ?? System.Environment.CurrentDirectory; var releaseBranch = ReleaseBranch ?? Parent.ReleaseBranch ?? "trunk"; try { var repository = new OnDiskGitRepository(workingDir, releaseBranch, _fileSystem); var preconditions = new DefaultPreConditions(repository); preconditions.Verify(DetachedHead); var commitAnalyzer = new DefaultCommitAnalyzer(repository); commitAnalyzer.CommitEvent += OnCommitEvent; var nextRelease = commitAnalyzer.CalculateNextRelease(); var project = new DotnetProjectParser(workingDir, _fileSystem); project.SetVersion(nextRelease.Version); var releaser = new ProjectReleaser(project, repository, _fileSystem); releaser.PrepareForRelease(); } catch (NoOpReleaseException ex) { Console.WriteLine($"There have been no releasable commits since v{ex.LastVersion}"); return(ThrowOnNoOp ? 1 : 0); } catch (Exception ex) { Console.WriteLine(ex.Message); return(1); } return(0); }
protected override int OnExecute(CommandLineApplication app) { var targetProject = TargetProject ?? Parent.TargetProject; var project = new DotnetProjectParser(targetProject ?? System.Environment.CurrentDirectory, _fileSystem); Console.WriteLine(project.GetVersion()); return(0); }