starting to write the commit functions
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								client/.gvc/boltbrowser.exe
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								client/.gvc/boltbrowser.exe
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -24,3 +24,150 @@
 | 
				
			|||||||
{"level":"info","message":"Creating new Manager..."}
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
{"level":"info","message":"Creating new Manager..."}
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
{"level":"info","message":"Creating new Manager..."}
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: test.go at path: test.go with hash: \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 at time: %!s(func() string=0x68c480)"}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: file already found in tracked files, not adding: client.go\n"}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: file already found in tracked files, not adding: client.go\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: add.go at path: clientcmd\\add.go with hash: \ufffd4\ufffd\ufffdb&\ufffd\ufffd\ufffdNR\ufffd\ufffdV\ufffd\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: branch.go at path: clientcmd\\branch.go with hash: \ufffd\u0006\ufffd\ufffd\ufffd\ufffd[^\u0015M\ufffd\ufffd(Z\ufffdc at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: commonlib.go at path: clientcmd\\commonlib.go with hash: \ufffd\u000fMQ<\ufffd\ufffd\u0016\ufffdM&z\u0010\ufffdw\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: ignore.go at path: clientcmd\\ignore.go with hash: \ufffd!\u0007\ufffd35z\n\ufffdG\b1R\ufffd\ufffdC at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: info.go at path: clientcmd\\info.go with hash: \ufffd\u0007\ufffd3*\ufffd\ufffdD:zX\ufffdѳ\ufffd\u000b at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: init.go at path: clientcmd\\init.go with hash: \ufffd\u0004\ufffd\ufffd6!\ufffd\u0017\ufffd{\ufffdfHH\ufffd\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: lock.go at path: clientcmd\\lock.go with hash: \ufffd,1\ufffd\ufffd\ufffd\ufffdn\ufffd1\ufffdK+\u0003\ufffd? at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: refresh.go at path: clientcmd\\refresh.go with hash: \ufffd\u0019\ufffd\ufffd\ufffd\ufffdh\ufffd\ufffdzx,\ufffd\ufffd\ufffd\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: remote.go at path: clientcmd\\remote.go with hash: \ufffd\fh۫\ufffd)D\ufffd\ufffd\ufffdFg\ufffd\ufffd\u0012 at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: switch.go at path: clientcmd\\switch.go with hash: \ufffd\u0004J\u000b\ufffd\ufffd\ufffd?\ufffd\ufffd\ufffdEw\ufffd^Q at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: config.go at path: clientconfig\\config.go with hash: \ufffd\u001bf\ufffdE_\u0017-\ufffd\ufffd\ufffd1\ufffd'<\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: structures.go at path: clientconfig\\structures.go with hash: \ufffd\fc\ufffd\u0000\ufffd\ufffdbs\ufffd\ufffd\ufffdc\r\ufffd\b at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: test.go at path: test\\test.go with hash: \ufffd\u0002\ufffd|\ufffd`\ufffd\ufffd\u0002W\ufffdE\u007fd\ufffd\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: file already found in tracked files, not adding: test.go\n"}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory: %!s(<nil>)\n"}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory"}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory"}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory"}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory"}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: file already found in tracked files, not adding: client.go\n"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: file already found in tracked files, not adding: clientcmd\\add.go\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [clientcmd\\branch.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [clientcmd\\commonlib.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [clientcmd\\ignore.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [clientcmd\\info.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [clientcmd\\init.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [clientcmd\\lock.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [clientcmd\\refresh.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [clientcmd\\remote.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [clientcmd\\switch.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [clientconfig\\config.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [clientconfig\\structures.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"error","module":"database","error":"already exists","message":"Error initialising file in database"}
 | 
				
			||||||
 | 
					{"level":"error","message":"Error checking if file [test\\test.go] is monitored. Error already exists"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: already exists\n"}
 | 
				
			||||||
 | 
					{"level":"info","message":"unable to add file to repo: file already found in tracked files, not adding: test.go\n"}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory"}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"No existing databse found. initialising new database"}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory"}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory"}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory"}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory"}
 | 
				
			||||||
 | 
					{"level":"info","message":"Creating new Manager..."}
 | 
				
			||||||
 | 
					{"level":"info","message":"skipping .gvc directory"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: client.go at path: client.go with hash: \ufffd\ufffd\u00013\ufffdw\ufffd*\ufffd\ufffd\ufffdb?x\ufffd\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: add.go at path: clientcmd\\add.go with hash: \ufffd8\u0001\\\u001e+\ufffdx}ҟL\ufffd<\ufffdM at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: branch.go at path: clientcmd\\branch.go with hash: \ufffd\u0006\ufffd\ufffd\ufffd\ufffd[^\u0015M\ufffd\ufffd(Z\ufffdc at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: commonlib.go at path: clientcmd\\commonlib.go with hash: \ufffd\u000fMQ<\ufffd\ufffd\u0016\ufffdM&z\u0010\ufffdw\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: ignore.go at path: clientcmd\\ignore.go with hash: \ufffd!\u0007\ufffd35z\n\ufffdG\b1R\ufffd\ufffdC at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: info.go at path: clientcmd\\info.go with hash: \ufffd\u0007\ufffd3*\ufffd\ufffdD:zX\ufffdѳ\ufffd\u000b at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: init.go at path: clientcmd\\init.go with hash: \ufffd\u0004\ufffd\ufffd6!\ufffd\u0017\ufffd{\ufffdfHH\ufffd\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: lock.go at path: clientcmd\\lock.go with hash: \ufffd,1\ufffd\ufffd\ufffd\ufffdn\ufffd1\ufffdK+\u0003\ufffd? at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: refresh.go at path: clientcmd\\refresh.go with hash: \ufffd\u0019\ufffd\ufffd\ufffd\ufffdh\ufffd\ufffdzx,\ufffd\ufffd\ufffd\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: remote.go at path: clientcmd\\remote.go with hash: \ufffd\fh۫\ufffd)D\ufffd\ufffd\ufffdFg\ufffd\ufffd\u0012 at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: switch.go at path: clientcmd\\switch.go with hash: \ufffd\u0004J\u000b\ufffd\ufffd\ufffd?\ufffd\ufffd\ufffdEw\ufffd^Q at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: config.go at path: clientconfig\\config.go with hash: \ufffd\u001bf\ufffdE_\u0017-\ufffd\ufffd\ufffd1\ufffd'<\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: structures.go at path: clientconfig\\structures.go with hash: \ufffd\fc\ufffd\u0000\ufffd\ufffdbs\ufffd\ufffd\ufffdc\r\ufffd\b at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: test.go at path: test\\test.go with hash: \ufffd\u0002\ufffd|\ufffd`\ufffd\ufffd\u0002W\ufffdE\u007fd\ufffd\ufffd at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"warn","module":"database","message":"no file found"}
 | 
				
			||||||
 | 
					{"level":"info","message":"added file: test.go at path: test.go with hash: \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 at time: %!s(func() string=0x68c7c0)"}
 | 
				
			||||||
 | 
					{"level":"info","message":"Adding the following files to tracked: [client.go clientcmd\\add.go clientcmd\\branch.go clientcmd\\commonlib.go clientcmd\\ignore.go clientcmd\\info.go clientcmd\\init.go clientcmd\\lock.go clientcmd\\refresh.go clientcmd\\remote.go clientcmd\\switch.go clientconfig\\config.go clientconfig\\structures.go test\\test.go test.go]"}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -109,6 +109,9 @@ func main() {
 | 
				
			|||||||
	// Adding the "pull" command
 | 
						// Adding the "pull" command
 | 
				
			||||||
	pullCommand(cli, &conf)
 | 
						pullCommand(cli, &conf)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Adding the "commit" command
 | 
				
			||||||
 | 
						commitCommand(cli, &conf)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err = cli.Run()
 | 
						err = cli.Run()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		fmt.Printf("Error occurred: %v\n", err)
 | 
							fmt.Printf("Error occurred: %v\n", err)
 | 
				
			||||||
@@ -685,3 +688,28 @@ func pullCommand(cli *clir.Cli, conf *config.Gvcconfig) {
 | 
				
			|||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func commitCommand(cli *clir.Cli, conf *config.Gvcconfig) {
 | 
				
			||||||
 | 
						commitCommand := cli.NewSubCommand("commit", "commits the changes to the repo")
 | 
				
			||||||
 | 
						var commitMessage string
 | 
				
			||||||
 | 
						commitMessageFlag := pullCommand.StringFlag("message", "adds a message to a commit", &commitMessage)
 | 
				
			||||||
 | 
						commitMessageFlag.FlagShortCut("message", "m")
 | 
				
			||||||
 | 
						commitCommand.Action(func() error {
 | 
				
			||||||
 | 
							isRepo := validateRepo()
 | 
				
			||||||
 | 
							if !isRepo {
 | 
				
			||||||
 | 
								fmt.Println("no valid repo found.. please run 'init' to setup a repo first")
 | 
				
			||||||
 | 
								os.Exit(0)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if len(commitCommand.OtherArgs()) == 0 {
 | 
				
			||||||
 | 
								commitCommand.PrintHelp()
 | 
				
			||||||
 | 
								fmt.Println("branch name required..")
 | 
				
			||||||
 | 
								os.Exit(0)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							branchName := commitCommand.OtherArgs()[0]
 | 
				
			||||||
 | 
							err := clientcmd.SwitchBranch(conf, branchName)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return fmt.Errorf("unable to pull branch: %s", err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,6 @@
 | 
				
			|||||||
package clientcmd
 | 
					package clientcmd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"errors"
 | 
					 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"path/filepath"
 | 
						"path/filepath"
 | 
				
			||||||
@@ -22,7 +21,6 @@ func AddFiles(input string, inputType string, ignore common.FileTypes, m *manage
 | 
				
			|||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var trackedFiles []string
 | 
						var trackedFiles []string
 | 
				
			||||||
	var SkipDir = errors.New("ignore folder, either .gvc or on ignores") // default variable for filewalk errors to skip the entire dir
 | 
					 | 
				
			||||||
	switch inputType {
 | 
						switch inputType {
 | 
				
			||||||
	case "file": // If the -file flag was used, then make sure it is a file, make sure not on ignore list, then add it to tracked files
 | 
						case "file": // If the -file flag was used, then make sure it is a file, make sure not on ignore list, then add it to tracked files
 | 
				
			||||||
		_, err := os.Stat(input)
 | 
							_, err := os.Stat(input)
 | 
				
			||||||
@@ -41,6 +39,7 @@ func AddFiles(input string, inputType string, ignore common.FileTypes, m *manage
 | 
				
			|||||||
		// 	}
 | 
							// 	}
 | 
				
			||||||
		// }
 | 
							// }
 | 
				
			||||||
		relativePath := input //TODO: Figure out if path is corrrect?
 | 
							relativePath := input //TODO: Figure out if path is corrrect?
 | 
				
			||||||
 | 
							relativePath = "test.go"
 | 
				
			||||||
		fmt.Println("Relative Path: ", relativePath)
 | 
							fmt.Println("Relative Path: ", relativePath)
 | 
				
			||||||
		err = m.AddFileToRepo(relativePath)
 | 
							err = m.AddFileToRepo(relativePath)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
@@ -57,22 +56,25 @@ func AddFiles(input string, inputType string, ignore common.FileTypes, m *manage
 | 
				
			|||||||
			return fmt.Errorf("file exists, but is not a folder %s", err)
 | 
								return fmt.Errorf("file exists, but is not a folder %s", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		filepath.Walk(input, func(path string, info os.FileInfo, err error) error {
 | 
							filepath.Walk(input, func(path string, info os.FileInfo, err error) error {
 | 
				
			||||||
			currentFile := filepath.Base(path)
 | 
					 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return fmt.Errorf("failure accessing path %s", err)
 | 
									return fmt.Errorf("failure accessing path %s", err)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if info.IsDir() {
 | 
								if info.IsDir() {
 | 
				
			||||||
				if currentFile == ".gvc" { // can't track anything in .gvc
 | 
									if info.Name() == ".gvc" { // can't track anything in .gvc
 | 
				
			||||||
					return SkipDir
 | 
										fmt.Println("skipping .gvc directory")
 | 
				
			||||||
 | 
										m.Info().Msg("skipping .gvc directory")
 | 
				
			||||||
 | 
										return filepath.SkipDir
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				err = common.CheckFileTypes(currentFile, "folder", ignore)
 | 
									err = common.CheckFileTypes(info.Name(), "folder", ignore)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					return SkipDir
 | 
										fmt.Printf("skipping ignored directory: %s\n", err)
 | 
				
			||||||
 | 
										m.Info().Msgf("skipping ignored directory: %s\n", err)
 | 
				
			||||||
 | 
										return filepath.SkipDir
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				err = common.CheckFileTypes(currentFile, "file", ignore)
 | 
									err = common.CheckFileTypes(info.Name(), "file", ignore)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					fmt.Printf("Not adding file %s as it is on the ingores list \n", currentFile)
 | 
										fmt.Printf("Not adding file %s as it is on the ingores list \n", info.Name())
 | 
				
			||||||
					return nil
 | 
										return nil
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -100,38 +102,44 @@ func AddFiles(input string, inputType string, ignore common.FileTypes, m *manage
 | 
				
			|||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		filepath.Walk(workingDir, func(path string, info os.FileInfo, err error) error {
 | 
							filepath.Walk(workingDir, func(path string, info os.FileInfo, err error) error {
 | 
				
			||||||
			currentFile := filepath.Base(path) // Stripping all the pathing so we just get the filename
 | 
					 | 
				
			||||||
			fmt.Println("path: ", path)
 | 
								fmt.Println("path: ", path)
 | 
				
			||||||
			fmt.Printf("Checking file: %s\n", currentFile)
 | 
								fmt.Printf("Checking file: %s\n", info.Name())
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return fmt.Errorf("failure accessing path %s", err)
 | 
									return fmt.Errorf("failure accessing path %s", err)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if info.IsDir() {
 | 
								if info.IsDir() {
 | 
				
			||||||
				if currentFile == ".gvc" { // can't track anything in .gvc
 | 
									if info.Name() == ".gvc" { // can't track anything in .gvc
 | 
				
			||||||
					return nil
 | 
										fmt.Println("skipping .gvc directory")
 | 
				
			||||||
 | 
										m.Info().Msg("skipping .gvc directory")
 | 
				
			||||||
 | 
										return filepath.SkipDir
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				err = common.CheckFileTypes(currentFile, "folder", ignore)
 | 
									err = common.CheckFileTypes(info.Name(), "folder", ignore)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					return err
 | 
										fmt.Printf("skipping ignored directory: %s\n", err)
 | 
				
			||||||
 | 
										m.Info().Msgf("skipping ignored directory: %s\n", err)
 | 
				
			||||||
 | 
										return filepath.SkipDir
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				err = common.CheckFileTypes(currentFile, "file", ignore)
 | 
									err = common.CheckFileTypes(info.Name(), "file", ignore)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					fmt.Printf("Not adding file %s as it is on the ingores list \n", currentFile)
 | 
										fmt.Printf("Not adding file %s as it is on the ingores list \n", info.Name())
 | 
				
			||||||
					return nil
 | 
										return nil
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			fileExt := filepath.Ext(path)
 | 
								fileExt := filepath.Ext(path)
 | 
				
			||||||
			if fileExt == wildcard { // seeing if the file ext matches the wildcard
 | 
								if fileExt == wildcard { // seeing if the file ext matches the wildcard
 | 
				
			||||||
				fmt.Println("Adding file that matched wildcard: ", currentFile)
 | 
									fmt.Println("Adding file that matched wildcard: ", info.Name())
 | 
				
			||||||
				relativePath, err := filepath.Rel(workingDir, path)
 | 
									relativePath, err := filepath.Rel(workingDir, path)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					return fmt.Errorf("unable to create relative path for file: %s", err)
 | 
										fmt.Printf("unable to create relative path for file: %s\n", err)
 | 
				
			||||||
 | 
										m.Info().Msgf("unable to create relative path for file: %s\n", err)
 | 
				
			||||||
 | 
										return nil
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				fmt.Println("WILDCARD Relative Path: ", relativePath)
 | 
					 | 
				
			||||||
				err = m.AddFileToRepo(relativePath)
 | 
									err = m.AddFileToRepo(relativePath)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					return fmt.Errorf("unable to add file to repo: %s", err)
 | 
										fmt.Printf("unable to add file to repo: %s\n", err)
 | 
				
			||||||
 | 
										m.Info().Msgf("unable to add file to repo: %s\n", err)
 | 
				
			||||||
 | 
										return nil
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				trackedFiles = append(trackedFiles, relativePath)
 | 
									trackedFiles = append(trackedFiles, relativePath)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -139,22 +147,25 @@ func AddFiles(input string, inputType string, ignore common.FileTypes, m *manage
 | 
				
			|||||||
		})
 | 
							})
 | 
				
			||||||
	case "all":
 | 
						case "all":
 | 
				
			||||||
		filepath.Walk(workingDir, func(path string, info os.FileInfo, err error) error {
 | 
							filepath.Walk(workingDir, func(path string, info os.FileInfo, err error) error {
 | 
				
			||||||
			currentFile := filepath.Base(path)
 | 
					 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return fmt.Errorf("failure accessing path %s", err)
 | 
									return fmt.Errorf("failure accessing path %s", err)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if info.IsDir() {
 | 
								if info.IsDir() {
 | 
				
			||||||
				if currentFile == ".gvc" { // can't track anything in .gvc
 | 
									if info.Name() == ".gvc" { // can't track anything in .gvc
 | 
				
			||||||
					return SkipDir
 | 
										fmt.Println("skipping .gvc directory")
 | 
				
			||||||
 | 
										m.Info().Msg("skipping .gvc directory")
 | 
				
			||||||
 | 
										return filepath.SkipDir
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				err = common.CheckFileTypes(currentFile, "folder", ignore)
 | 
									err = common.CheckFileTypes(info.Name(), "folder", ignore)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					return SkipDir
 | 
										fmt.Printf("skipping ignored directory: %s\n", err)
 | 
				
			||||||
 | 
										m.Info().Msgf("skipping ignored directory: %s\n", err)
 | 
				
			||||||
 | 
										return filepath.SkipDir
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				err = common.CheckFileTypes(currentFile, "file", ignore)
 | 
									err = common.CheckFileTypes(info.Name(), "file", ignore)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					fmt.Printf("Not adding file %s as it is on the ingores list \n", currentFile)
 | 
										fmt.Printf("Not adding file %s as it is on the ingores list \n", info.Name())
 | 
				
			||||||
					return nil
 | 
										return nil
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -173,7 +184,13 @@ func AddFiles(input string, inputType string, ignore common.FileTypes, m *manage
 | 
				
			|||||||
			return nil
 | 
								return nil
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if len(trackedFiles) > 0 {
 | 
				
			||||||
		fmt.Println("Added tracked files", trackedFiles) // Print out all the new tracked files
 | 
							fmt.Println("Added tracked files", trackedFiles) // Print out all the new tracked files
 | 
				
			||||||
 | 
							m.Info().Msgf("Adding the following files to tracked: %s", trackedFiles)
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							fmt.Println("No files found that could be added to tracked")
 | 
				
			||||||
 | 
							m.Info().Msg("No files found that could be added to tracked")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										33
									
								
								client/clientcmd/commit.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								client/clientcmd/commit.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										0
									
								
								client/test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								client/test.go
									
									
									
									
									
										Normal file
									
								
							@@ -39,17 +39,20 @@ func (db *DB) CheckIfFileCurrentlyMonitored(path string) bool {
 | 
				
			|||||||
	if err := db.One("Path", path, &file); err != nil {
 | 
						if err := db.One("Path", path, &file); err != nil {
 | 
				
			||||||
		if err.Error() != "not found" {
 | 
							if err.Error() != "not found" {
 | 
				
			||||||
			db.Err(err).Msg("Error finding file by path")
 | 
								db.Err(err).Msg("Error finding file by path")
 | 
				
			||||||
 | 
								fmt.Printf("Not found: %s error: %s\n", path, err)
 | 
				
			||||||
			return false
 | 
								return false
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		db.Warn().Msg("no file found")
 | 
							db.Warn().Msg("no file found")
 | 
				
			||||||
 | 
							fmt.Printf("Not found: %s error: %s\n", path, err)
 | 
				
			||||||
		return false
 | 
							return false
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						fmt.Printf("Found!: %s searched: %s\n", file.Path, path)
 | 
				
			||||||
	return true
 | 
						return true
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// RetrieveWatchedFiles all files that are in the database as "watched files"
 | 
					// RetrieveTrackedFiles all files that are in the database as "watched files"
 | 
				
			||||||
// This can be used to trigger the same files to be watched again
 | 
					// This can be used to trigger the same files to be watched again
 | 
				
			||||||
func (db *DB) RetrieveWatchedFiles() ([]File, error) {
 | 
					func (db *DB) RetrieveTrackedFiles() ([]File, error) {
 | 
				
			||||||
	var files []File
 | 
						var files []File
 | 
				
			||||||
	if err := db.All(&files); err != nil {
 | 
						if err := db.All(&files); err != nil {
 | 
				
			||||||
		db.Err(err).Msg("Error retrieving all watched files")
 | 
							db.Err(err).Msg("Error retrieving all watched files")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -105,7 +105,6 @@ func (m *Manager) AddFileToRepo(relFilePath string) error {
 | 
				
			|||||||
	// f := NewFileManager()
 | 
						// f := NewFileManager()
 | 
				
			||||||
	//DELAYED: this feature affects only large files and user experience. It can wait.
 | 
						//DELAYED: this feature affects only large files and user experience. It can wait.
 | 
				
			||||||
	relFilePath = strings.TrimSpace(relFilePath) //purging any odd spaces TODO: Make sure not needed
 | 
						relFilePath = strings.TrimSpace(relFilePath) //purging any odd spaces TODO: Make sure not needed
 | 
				
			||||||
	fmt.Println("Checking for file: ", relFilePath)
 | 
					 | 
				
			||||||
	var tmpFile database.File
 | 
						var tmpFile database.File
 | 
				
			||||||
	filename := filepath.Base(relFilePath)
 | 
						filename := filepath.Base(relFilePath)
 | 
				
			||||||
	var hash [16]byte
 | 
						var hash [16]byte
 | 
				
			||||||
@@ -160,3 +159,12 @@ func (m *Manager) prepareDatabaseForFile(tmpFile database.File) (int, error) {
 | 
				
			|||||||
	return fileID, nil
 | 
						return fileID, nil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// FetchTrackedFiles just grabbes all the files currently tracked in the repo
 | 
				
			||||||
 | 
					func (m *Manager) FetchTrackedFiles() ([]database.File, error) {
 | 
				
			||||||
 | 
						files, err := m.dB.RetrieveTrackedFiles()
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, fmt.Errorf("unable to retrieve tracked files: %s", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return files, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user