@ -22,9 +22,11 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"golang.org/x/crypto/ssh/terminal"
"k8s.io/helm/pkg/getter"
"k8s.io/helm/pkg/getter"
"k8s.io/helm/pkg/helm/helmpath"
"k8s.io/helm/pkg/helm/helmpath"
"k8s.io/helm/pkg/repo"
"k8s.io/helm/pkg/repo"
"syscall"
)
)
type repoAddCmd struct {
type repoAddCmd struct {
@ -73,6 +75,16 @@ func newRepoAddCmd(out io.Writer) *cobra.Command {
}
}
func ( a * repoAddCmd ) run ( ) error {
func ( a * repoAddCmd ) run ( ) error {
if a . username != "" && a . password == "" {
fmt . Fprint ( a . out , "Password:" )
password , err := readPassword ( )
fmt . Fprintln ( a . out )
if err != nil {
return err
}
a . password = password
}
if err := addRepository ( a . name , a . url , a . username , a . password , a . home , a . certFile , a . keyFile , a . caFile , a . noupdate ) ; err != nil {
if err := addRepository ( a . name , a . url , a . username , a . password , a . home , a . certFile , a . keyFile , a . caFile , a . noupdate ) ; err != nil {
return err
return err
}
}
@ -80,6 +92,14 @@ func (a *repoAddCmd) run() error {
return nil
return nil
}
}
func readPassword ( ) ( string , error ) {
password , err := terminal . ReadPassword ( int ( syscall . Stdin ) )
if err != nil {
return "" , err
}
return string ( password ) , nil
}
func addRepository ( name , url , username , password string , home helmpath . Home , certFile , keyFile , caFile string , noUpdate bool ) error {
func addRepository ( name , url , username , password string , home helmpath . Home , certFile , keyFile , caFile string , noUpdate bool ) error {
f , err := repo . LoadRepositoriesFile ( home . RepositoryFile ( ) )
f , err := repo . LoadRepositoriesFile ( home . RepositoryFile ( ) )
if err != nil {
if err != nil {