34 lines
989 B
Go
34 lines
989 B
Go
package clientcmd
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
clientconfig "github.com/deranjer/gvc/client/clientconfig"
|
|
"github.com/deranjer/gvc/common/engine"
|
|
"github.com/deranjer/gvc/common/manager"
|
|
)
|
|
|
|
// Commit commits the tracked files and changes to the repo
|
|
func Commit(conf *clientconfig.Gvcconfig, commitMessage string, m *manager.Manager) error {
|
|
trackedFiles, err := m.FetchTrackedFiles()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, trackedFile := range trackedFiles {
|
|
currentFile, err := os.Stat(trackedFile.Path)
|
|
if err != nil {
|
|
fmt.Printf("unable to stat tracked file: %s error: %s\n", currentFile.Name(), err)
|
|
continue
|
|
}
|
|
currentFileHash, err := engine.UniqueFileHash(trackedFile.Path)
|
|
if err != nil {
|
|
fmt.Printf("unable to create hash for file: %s error: %s\n", currentFile.Name(), err)
|
|
}
|
|
if currentFileHash == trackedFile.CurrentHash {
|
|
fmt.Printf("No changes found in file: %s when compared to file: %s\n", currentFile.Name(), trackedFile.Name)
|
|
}
|
|
}
|
|
return nil
|
|
}
|