func StartLocalRepo(path, address string) error {
	if address == "" {
		address = "127.0.0.1:8879"
	}
	s := &RepositoryServer{RepoPath: path}
	return http.ListenAndServe(address, s)
}
StartLocalRepo starts a web server and serves files from the given path
package repo
import (
	"fmt"
	htemplate "html/template"
	"io/ioutil"
	"net/http"
	"path/filepath"
	"strings"
	"github.com/ghodss/yaml"
	"k8s.io/helm/pkg/chartutil"
	"k8s.io/helm/pkg/proto/hapi/chart"
	"k8s.io/helm/pkg/provenance"
)
const indexHTMLTemplate = `
<html>
<head>
	<title>Helm Repository</title>
</head>
<h1>Helm Charts Repository</h1>
<ul>
{{range $name, $ver := .Index.Entries}}
  <li>{{$name}}<ul>{{range $ver}}
    <li><a href="{{index .URLs 0}}">{{.Name}}-{{.Version}}</a></li>
  {{end}}</ul>
  </li>
{{end}}
</ul>
<body>
<p>Last Generated: {{.Index.Generated}}</p>
</body>
</html>
`
type RepositoryServer struct {
	RepoPath string
}
func (s *RepositoryServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	uri := r.URL.Path
	switch uri {
	case "/", "/charts/", "/charts/index.html", "/charts/index":
		w.Header().Set("Content-Type", "text/html; charset=utf-8")
		s.htmlIndex(w, r)
	default:
		file := strings.TrimPrefix(uri, "/charts/")
		http.ServeFile(w, r, filepath.Join(s.RepoPath, file))
	}
}