Skip to content

Commit

Permalink
Merge pull request #74 from minnek-digital-studio/feature/73
Browse files Browse the repository at this point in the history
feature  - Create docs and events for reset command #73
  • Loading branch information
Isaac Martinez authored Mar 25, 2023
2 parents e501860 + f31d1db commit 136870e
Show file tree
Hide file tree
Showing 7 changed files with 84 additions and 3 deletions.
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)
}
}

0 comments on commit 136870e

Please sign in to comment.