[pm publish] remove unused flags

The flags / modes being removed here are being removed prior to the
introduction of a new manifest format for publishing a set of packages that
will eventually supersede most other modes.

This cleanup will reduce the size of that future change.

Test: build still builds, sdk use case (-a) still works
Bug: PKG-381 #comment cleanup pm publish
Change-Id: I0c244c38f3e546eda734c5c83693c70acacf4b81
diff --git a/go/src/pm/cmd/pm/publish/publish.go b/go/src/pm/cmd/pm/publish/publish.go
index dc39a1c..6d55a15 100644
--- a/go/src/pm/cmd/pm/publish/publish.go
+++ b/go/src/pm/cmd/pm/publish/publish.go
@@ -10,7 +10,6 @@
 	"encoding/json"
 	"flag"
 	"fmt"
-	"io"
 	"log"
 	"os"
 	"path/filepath"
@@ -24,8 +23,8 @@
 )
 
 const (
-	usage = `Usage: %s publish (-a|-p|-ps|-b|-bs|-m) -f file [-k <keys_dir>] [-r <repo_path>]
-		Pass any one of the mode flags (-a|-p|-ps|-b|-bs|-m), and at least one file to pubish.
+	usage = `Usage: %s publish (-a|-ps) -f file [-k <keys_dir>] [-r <repo_path>]
+		Pass any one of the mode flags (-a|-ps), and at least one file to pubish.
 `
 	serverBase = "amber-files"
 	metaFar    = "meta.far"
@@ -51,15 +50,8 @@
 	fs := flag.NewFlagSet("serve", flag.ExitOnError)
 
 	archiveMode := fs.Bool("a", false, "(mode) Publish an archived package.")
-	packageMode := fs.Bool("p", false, "(mode) Publish a package.")
 	packageSetMode := fs.Bool("ps", false, "(mode) Publish a set of packages from a manifest.")
-	blobMode := fs.Bool("b", false, "(mode) Publish a content blob.")
-	blobSetMode := fs.Bool("bs", false, "(mode) Publish a set of blobs from a manifest.")
-	manifestMode := fs.Bool("m", false, "(mode) Publish a the contents of a manifest as as content blobs.")
-	commitMode := fs.Bool("po", false, "(mode) Publish only, commit any staged updates to the update repo.")
-	modeFlags := []*bool{archiveMode, packageMode, packageSetMode, blobMode, blobSetMode, manifestMode, commitMode}
-
-	name := fs.String("n", "", "Name/path used for the published file. This only applies to '-p', package files If not supplied, the relative path supplied to '-f' will be used.")
+	modeFlags := []*bool{archiveMode, packageSetMode}
 
 	// TODO(raggi): cleanup args...
 	config := &repo.Config{}
@@ -97,7 +89,7 @@
 		return fmt.Errorf("at least one mode flag must be passed")
 	}
 
-	if !*commitMode && len(filePaths) == 0 {
+	if len(filePaths) == 0 {
 		return fmt.Errorf("no file path supplied")
 	}
 
@@ -159,28 +151,25 @@
 			return fmt.Errorf("open %s from %s: %s", metaFar, f.Name(), err)
 		}
 
-		if len(*name) == 0 {
-			mf, err := far.NewReader(bytes.NewReader(b))
-			if err != nil {
-				return err
-			}
-			pb, err := mf.ReadFile("meta/package")
-			if err != nil {
-				return fmt.Errorf("open meta/package from %s from %s: %s", metaFar, f.Name(), err)
-			}
-			var p pkg.Package
-			if err := json.Unmarshal(pb, &p); err != nil {
-				return err
-			}
-
-			s := p.Name + "/" + p.Version
-			name = &s
+		mf, err := far.NewReader(bytes.NewReader(b))
+		if err != nil {
+			return err
 		}
+		pb, err := mf.ReadFile("meta/package")
+		if err != nil {
+			return fmt.Errorf("open meta/package from %s from %s: %s", metaFar, f.Name(), err)
+		}
+		var p pkg.Package
+		if err := json.Unmarshal(pb, &p); err != nil {
+			return err
+		}
+
+		name := p.Name + "/" + p.Version
 
 		if *verbose {
-			fmt.Printf("adding package %s\n", *name)
+			fmt.Printf("adding package %s\n", name)
 		}
-		if err := repo.AddPackage(*name, bytes.NewReader(b)); err != nil {
+		if err := repo.AddPackage(name, bytes.NewReader(b)); err != nil {
 			return err
 		}
 
@@ -232,181 +221,9 @@
 			log.Fatalf("error committing repository updates: %s", err)
 		}
 
-	case *blobSetMode:
-		if len(filePaths) != 1 {
-			log.Fatalf("too many file paths supplied.")
-		}
-		f, err := os.Open(filePaths[0])
-		if err != nil {
-			return fmt.Errorf("error reading package set manifest: %s", err)
-		}
-		defer f.Close()
-		s := bufio.NewScanner(f)
-		for s.Scan() {
-			if err := s.Err(); err != nil {
-				log.Fatalf("error reading package set manifest: %s", err)
-			}
-
-			line := s.Text()
-			parts := strings.SplitN(line, "=", 2)
-			root := parts[1]
-			f, err := os.Open(parts[0])
-			if err != nil {
-				return err
-			}
-			_, err = repo.AddBlob(root, f)
-			f.Close()
-			if err != nil && err != os.ErrExist {
-				return fmt.Errorf("Error adding regular file: %s", err)
-			}
-		}
-
-	case *packageMode:
-		if len(filePaths) != 1 {
-			return fmt.Errorf("too many file paths supplied")
-		}
-		if len(*name) == 0 {
-			name = &filePaths[0]
-		}
-		f, err := os.Open(filePaths[0])
-		if err != nil {
-			return err
-		}
-		err = repo.AddPackage(*name, f)
-		f.Close()
-		if err != nil {
-			return fmt.Errorf("problem adding signed file: %s", err)
-		}
-		if err = repo.CommitUpdates(*verTime); err != nil {
-			return fmt.Errorf("error signing added file: %s", err)
-		}
-
-	case *blobMode:
-		if len(*name) > 0 {
-			return fmt.Errorf("name is not a valid argument for content addressed files")
-		}
-		for _, path := range filePaths {
-			f, err := os.Open(path)
-			if err != nil {
-				return err
-			}
-			*name, err = repo.AddBlob("", f)
-			f.Close()
-			if err != nil && err != os.ErrExist {
-				return fmt.Errorf("Error adding regular file: %s %s", path, err)
-			}
-		}
-
-	case *commitMode:
-		if err := repo.CommitUpdates(*verTime); err != nil {
-			fmt.Printf("error committing updates: %s", err)
-		}
-
-	case *manifestMode:
-		if len(filePaths) != 1 {
-			return fmt.Errorf("too many file paths supplied")
-		}
-		if err = publishManifest(filePaths[0], repo, *verbose); err != nil {
-			return fmt.Errorf("error processing manifest: %s", err)
-		}
-
 	default:
 		panic("unhandled mode")
 	}
 
 	return nil
 }
-
-func publishManifest(manifestPath string, repo *publish.UpdateRepo, verbose bool) error {
-	manifest, err := readManifest(manifestPath)
-	if err != nil {
-		return err
-	}
-
-	addedBlobs, blobIndex, err := publishPkgUpdates(repo, manifest)
-	if err != nil {
-		return err
-	}
-
-	dupes := make(map[string]string, len(blobIndex))
-	if verbose {
-		for p, m := range blobIndex {
-			fmt.Printf("File %q stored as %s\n", p, m)
-			dupes[m] = p
-		}
-
-		fmt.Printf("Blobs\n  examined: %d\n  added: %d\n  duplicates: %d\n",
-			len(manifest), len(addedBlobs), len(manifest)-len(dupes))
-	}
-	return nil
-}
-
-func publishPkgUpdates(repo *publish.UpdateRepo, manifest []manifestEntry) ([]string, map[string]string, error) {
-	// if we encounter an error, remove any added blobs
-	addedBlobs := []string{}
-	defer func() {
-		for _, p := range addedBlobs {
-			repo.RemoveContentBlob(p)
-		}
-	}()
-
-	blobIndex := make(map[string]string)
-	// read the manifest content
-	for _, entry := range manifest {
-		f, err := os.Open(entry.localPath)
-		if err != nil {
-			return nil, nil, fmt.Errorf("publish: error adding blob %s", err)
-		}
-
-		merkle, err := repo.AddBlob("", f)
-		f.Close()
-
-		if err == nil {
-			addedBlobs = append(addedBlobs, merkle)
-		} else if !os.IsExist(err) {
-			return nil, nil, fmt.Errorf("publish: error adding blob %s", err)
-		}
-		blobIndex[entry.localPath] = merkle
-	}
-
-	// no error so we don't want to remove any of the blobs we just added
-	defer func() {
-		addedBlobs = []string{}
-	}()
-
-	return addedBlobs, blobIndex, nil
-}
-
-func readManifest(manifestPath string) ([]manifestEntry, error) {
-	f, err := os.Open(manifestPath)
-	if err != nil {
-		return nil, fmt.Errorf("publish: couldn't read manifest: %s", err)
-	}
-
-	defer f.Close()
-	entries := []manifestEntry{}
-	rdr := bufio.NewReader(f)
-
-	for {
-		l, err := rdr.ReadString('\n')
-		if err != nil && err != io.EOF {
-			return entries, err
-		}
-
-		l = strings.TrimSpace(l)
-		parts := strings.Split(l, "=")
-		if len(parts) == 2 {
-			entries = append(entries,
-				manifestEntry{remotePath: parts[0], localPath: parts[1]})
-		} else if len(parts) > 2 {
-			fmt.Printf("Line %q had unexpected token count %d, expected 2\n", l,
-				len(parts))
-		}
-
-		if err == io.EOF {
-			break
-		}
-	}
-
-	return entries, nil
-}