Skip to content
go-libfossil Artifact [4f20025f3c]
Login

Artifact [4f20025f3c]

Artifact 4f20025f3c2132b35d0c9764f24083b2c9fd7b5025e7a3dcbea8f94fadd46fc8:


package cli

import (
	"fmt"

	libfossil "github.com/danmestas/go-libfossil"
)

// RepoRevertCmd restores files to their checked-out version.
type RepoRevertCmd struct {
	Files []string `arg:"" optional:"" help:"Files to revert (default: all)"`
	Dir   string   `short:"d" help:"Checkout directory" default:"."`
}

func (c *RepoRevertCmd) Run(g *Globals) (err error) {
	_, co, done, err := openWorkingCheckout(g, c.Dir)
	if err != nil {
		return err
	}
	defer closeWith(done, &err)

	if err := co.Revert(libfossil.RevertOpts{Files: c.Files}); err != nil {
		return err
	}
	if len(c.Files) == 0 {
		fmt.Println("reverted all changes")
		return nil
	}
	for _, name := range c.Files {
		fmt.Printf("REVERTED %s\n", name)
	}
	return nil
}