53 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package clientcmd
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
 | 
						|
	clientconfig "github.com/deranjer/gvc/client/clientconfig"
 | 
						|
)
 | 
						|
 | 
						|
// AddRemote adds a remote to the config file
 | 
						|
func AddRemote(name string, host string, port int, defaultRemote bool, remotes []clientconfig.Remote) (newRemotes []clientconfig.Remote, err error) {
 | 
						|
	if len(remotes) == 0 { //first remote no need to check for duplicates and will set this remote as default
 | 
						|
		newRemote := clientconfig.Remote{
 | 
						|
			Name:    name,
 | 
						|
			Host:    host,
 | 
						|
			Port:    port,
 | 
						|
			Default: true,
 | 
						|
		}
 | 
						|
		remotes = append(remotes, newRemote)
 | 
						|
		fmt.Printf("Remote added: Name: %s Host: %s, Port: %d, Default: %t", name, host, port, defaultRemote)
 | 
						|
		return remotes, nil
 | 
						|
	}
 | 
						|
	err = checkRemotesSlice(name, host, port, remotes)
 | 
						|
	if err != nil {
 | 
						|
		return remotes, err
 | 
						|
	}
 | 
						|
	if defaultRemote { // If the new repo was flagged as default, find old default and remove it
 | 
						|
		for i, remote := range remotes {
 | 
						|
			if remote.Default {
 | 
						|
				remotes[i].Default = false
 | 
						|
			}
 | 
						|
		}
 | 
						|
		newRemote := clientconfig.Remote{
 | 
						|
			Name:    name,
 | 
						|
			Host:    host,
 | 
						|
			Port:    port,
 | 
						|
			Default: true,
 | 
						|
		}
 | 
						|
		remotes = append(remotes, newRemote)
 | 
						|
		fmt.Printf("Remote added: Name: %s Host: %s, Port: %d, Default: %t", name, host, port, defaultRemote)
 | 
						|
		return remotes, nil
 | 
						|
	}
 | 
						|
	// If passes all checks and is not default, create it and add it
 | 
						|
	newRemote := clientconfig.Remote{
 | 
						|
		Name:    name,
 | 
						|
		Host:    host,
 | 
						|
		Port:    port,
 | 
						|
		Default: false,
 | 
						|
	}
 | 
						|
	remotes = append(remotes, newRemote)
 | 
						|
	fmt.Printf("Remote added: Name: %s Host: %s, Port: %d, Default: %t", name, host, port, defaultRemote)
 | 
						|
	return remotes, nil
 | 
						|
}
 |