Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature - Create docs and events for reset command #73 #74

Merged
merged 3 commits into from
Mar 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ cominnek auth test
- **[Stash](#stash)**: Stash changes from one branch to another one.
- **[PR](#pr)**: Create a Pull Request as a draft to develop in GitHub.
- **[Merge](#merge)**: Merge the branch into the received branch.
- **[Reset](#reset)**: Reset the branch to the selected commit.
- **[Update](#update)**: Update the cominnek version.
- **[Config](#config)**: Configure the cominnek.
- **[PR](#pr-1)**: Configure the pull request template.
Expand Down Expand Up @@ -147,8 +148,8 @@ the commit will be: `feat(home):{Ticket} do some modifications`

| flag | type | description |
| ------------------ | ------------- | ---------------------------------------|
| `-m --message` |string[] | Receives the commit messange & body message |
| `-a --all` |bolean | Add all files to the commit |
| `-m --message` |string[] | Receives the commit message & body message |
| `-a --all` |boolean | Add all files to the commit |
| `-F --feat` |string | make the commit with the prefix feat() |
| `-f --fix` |string | make the commit with the prefix fix() |
| `-d --docs` |string | make the commit with the prefix docs() |
Expand Down Expand Up @@ -228,6 +229,25 @@ cominnek merge "<branch>"

*\* required*

## Reset
Reset the current branch to the selected commit. By default, it will reset to the last commit.

```bash
cominnek reset
```
This the equivalent of: `git reset --soft HEAD~1`

| flag | type | description |
| ------------------ | ------------- | ---------------------------------------|
| `-c --commit` |string | commit hash |
| `-y --confirm` |boolean | confirm the reset |
| ` --hard` |boolean | Reset HEAD, index and working tree |
| ` --soft` |boolean | Reset only HEAD |
| ` --mixed` |boolean | Reset HEAD and index |
| ` --keep` |boolean | Reset HEAD, index and working tree |
| ` --merge` |boolean | Reset HEAD, index and working tree |
| `-n -number` |number | number of commits to reset |

## Update
Update the Cominnek version.

Expand Down
1 change: 0 additions & 1 deletion cmd/reset.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ func init() {
resetCmd.Flags().BoolVar(&keepReset, "keep", false, "Reset HEAD, index and working tree")
resetCmd.Flags().StringVarP(&config.AppData.Reset.Number, "number", "n", "", "The number of commits to reset.")
resetCmd.Flags().StringVarP(&config.AppData.Reset.Commit, "commit", "c", "", "The commit hash to reset to.")
resetCmd.Flags().StringVarP(&config.AppData.Reset.Target, "target", "r", "", "The target to reset to.")
resetCmd.Flags().BoolVarP(&config.AppData.Reset.Confirm, "confirm", "y", false, "Confirm the reset.")
rootCmd.AddCommand(resetCmd)
}
Expand Down
7 changes: 7 additions & 0 deletions pkg/cli/actions/reset.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,16 @@ import (
"github.com/AlecAivazis/survey/v2"
"github.com/Minnek-Digital-Studio/cominnek/config"
"github.com/Minnek-Digital-Studio/cominnek/pkg/ask"
"github.com/Minnek-Digital-Studio/cominnek/pkg/emitters"
"github.com/Minnek-Digital-Studio/cominnek/pkg/git"
)

var haveNumber = func() bool { return config.AppData.Reset.Number != "" }
var haveType = func() bool { return config.AppData.Reset.Type != "" }
var haveCommit = func() bool { return config.AppData.Reset.Commit != "" }

var resetEmitter = new(emitters.Reset)

func showConfirmation() {
if config.AppData.Reset.Confirm {
return
Expand Down Expand Up @@ -72,6 +75,7 @@ func resetQuestions() {
}, &config.AppData.Reset.Number, survey.WithValidator(survey.Required),
survey.WithValidator(func(val interface{}) error {
if _, err := strconv.Atoi(val.(string)); err != nil {
resetEmitter.Failed("please enter a number")
return errors.New("please enter a number")
}
return nil
Expand All @@ -93,6 +97,7 @@ func resetQuestions() {

func Reset() {
resetQuestions()
resetEmitter.Init("Reset type: " + config.AppData.Reset.Type)

if config.AppData.Reset.Confirm {
r_type := config.AppData.Reset.Type
Expand All @@ -101,6 +106,8 @@ func Reset() {

git.Reset(r_type, r_number, r_commit)
since := time.Since(config.AppData.Start).String()

resetEmitter.Success("Reset successful (" + since + ")")
println("Reset successful (" + since + ")")
}
}
23 changes: 23 additions & 0 deletions pkg/emitters/reset.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package emitters

import (
"github.com/Minnek-Digital-Studio/cominnek/pkg/events"
eventNames "github.com/Minnek-Digital-Studio/cominnek/pkg/events/names"
)

var resetNames = new(eventNames.Reset)

type Reset struct {
}

func (c *Reset) Init(data string) {
events.App.Emit(resetNames.Init(), data)
}

func (c *Reset) Failed(error string) {
events.App.Emit(resetNames.Failed(), error)
}

func (c *Reset) Success(data string) {
events.App.Emit(resetNames.Success(), data)
}
22 changes: 22 additions & 0 deletions pkg/events/names/reset.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package eventNames

import "github.com/kataras/go-events"

func _buildResetName(event string) events.EventName {
return builder("reset", event)
}

type Reset struct {
}

func (c *Reset) Init() events.EventName {
return _buildResetName("init")
}

func (c *Reset) Failed() events.EventName{
return _buildResetName("failed")
}

func (c *Reset) Success() events.EventName {
return _buildResetName("success")
}
6 changes: 6 additions & 0 deletions pkg/events/watcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ var pushNames = new(eventNames.Push)
var branchNames = new(eventNames.Branch)
var publishNames = new(eventNames.Publish)
var pullRequest = new(eventNames.PullRequest)
var resetNames = new(eventNames.Reset)

func Watcher() {
App.On("init:root", func(payload ...interface{}) {})
Expand Down Expand Up @@ -37,4 +38,9 @@ func Watcher() {
App.On(pullRequest.Init(), func(payload ...interface{}) {})
App.On(pullRequest.Failed(), func(payload ...interface{}) {})
App.On(pullRequest.Success(), func(payload ...interface{}) {})

//! Reset
App.On(resetNames.Init(), func(payload ...interface{}) {})
App.On(resetNames.Failed(), func(payload ...interface{}) {})
App.On(resetNames.Success(), func(payload ...interface{}) {})
}
4 changes: 4 additions & 0 deletions pkg/git/Reset.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,20 @@ import (
"os"

git_controller "github.com/Minnek-Digital-Studio/cominnek/controllers/git"
"github.com/Minnek-Digital-Studio/cominnek/pkg/emitters"
"github.com/Minnek-Digital-Studio/cominnek/pkg/shell"
"github.com/fatih/color"
)

var resetEmitter = new(emitters.Reset)

func Reset(r_type string, r_number string, r_commit string) {
color.Yellow("\nResetting\n")
cmd := git_controller.ResetBy(r_type, r_number, r_commit)
_, _, err := shell.OutLive(cmd)

if err != nil {
resetEmitter.Failed(err.Error())
os.Exit(1)
}
}