working on lock command
This commit is contained in:
		@@ -2,17 +2,18 @@ package engine
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"log"
 | 
			
		||||
	"net/http"
 | 
			
		||||
 | 
			
		||||
	"github.com/deranjer/gvc/common"
 | 
			
		||||
	serverconfig "github.com/deranjer/gvc/server/serverconfig"
 | 
			
		||||
	"github.com/deranjer/store"
 | 
			
		||||
	"github.com/labstack/echo"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// GetInfo return the relevant repo specific info to the client
 | 
			
		||||
func (Server *GVCServer) GetInfo(context echo.Context) error {
 | 
			
		||||
	repo := context.Param("repo")
 | 
			
		||||
	fmt.Println("Asking about repo: ", repo)
 | 
			
		||||
	config := Server.Config
 | 
			
		||||
	var repoInfo RepoInfoRequest // Create an engine struct that contains basic server info as well as all repo info
 | 
			
		||||
	for _, knownRepo := range config.Repos {
 | 
			
		||||
@@ -35,19 +36,32 @@ func (Server *GVCServer) LockFile(context echo.Context) error {
 | 
			
		||||
	fileType := context.Param("type")
 | 
			
		||||
	fileName := context.Param("name")
 | 
			
		||||
	repoName := context.Param("repo")
 | 
			
		||||
	var repo serverconfig.RepoConfig
 | 
			
		||||
	for i, knownRepo := range Server.Config.Repos {
 | 
			
		||||
		if knownRepo.RepoName == repoName {
 | 
			
		||||
			repo = Server.Config.Repos[i]
 | 
			
		||||
	fmt.Printf("Lockfile: %s %s %s", repoName, fileType, fileName)
 | 
			
		||||
	var locked common.FileTypes
 | 
			
		||||
	for i, repo := range Server.Config.Repos {
 | 
			
		||||
		if repo.RepoName == repoName {
 | 
			
		||||
			locked = Server.Config.Repos[i].Locked
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	err := common.CheckFileTypes(fileName, fileType, locked) // making sure fi/f/wc is not already locked or cannot be locked.
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("failed checking file lock: %s", err)
 | 
			
		||||
	}
 | 
			
		||||
	switch fileType {
 | 
			
		||||
	case "file":
 | 
			
		||||
		err := common.CheckFileTypes(fileName, fileType, repo.Locked)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return fmt.Errorf("failed checking file lock: %s", err)
 | 
			
		||||
		}
 | 
			
		||||
		fmt.Println("Filename: ", fileName)
 | 
			
		||||
		locked.Files = append(locked.Files, fileName)
 | 
			
		||||
	case "folder":
 | 
			
		||||
		fmt.Println("Folder: ", fileName)
 | 
			
		||||
		locked.Folders = append(locked.Folders, fileName)
 | 
			
		||||
	case "wildcard":
 | 
			
		||||
		fmt.Println("Wildcard: ", fileName)
 | 
			
		||||
		locked.Exts = append(locked.Exts, fileName)
 | 
			
		||||
	}
 | 
			
		||||
	fmt.Println("Locked: ", locked)                                 // TODO!!!!!!!!!!!! Write this to conf
 | 
			
		||||
	err = store.Save(serverconfig.DefaultConfigPath, Server.Config) // Save our new default config back to TOML so it can be read in
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatalf("unable to save config to toml file: %s", err)
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user