v.io/jiri: use runutil.Sequence.

Change-Id: I529fd602aa36cb1cf3534542ad2899af56211c3c
diff --git a/contrib.go b/contrib.go
index 5c4897b..ebc949b 100644
--- a/contrib.go
+++ b/contrib.go
@@ -100,7 +100,7 @@
 		}
 		aliasesFile = filepath.Join(dataDir, aliasesFileName)
 	}
-	bytes, err := jirix.Run().ReadFile(aliasesFile)
+	bytes, err := jirix.NewSeq().ReadFile(aliasesFile)
 	if err != nil {
 		return nil, err
 	}
@@ -149,8 +149,9 @@
 		if len(projects) == 0 {
 			continue
 		}
+
 		for _, project := range projects {
-			if err := jirix.Run().Chdir(project.Path); err != nil {
+			if err := jirix.NewSeq().Chdir(project.Path).Done(); err != nil {
 				return err
 			}
 			switch project.Protocol {
diff --git a/rebuild.go b/rebuild.go
index 608805b..4b65150 100644
--- a/rebuild.go
+++ b/rebuild.go
@@ -35,13 +35,13 @@
 	}
 
 	// Create a temporary directory in which tools will be built.
-	tmpDir, err := jirix.Run().TempDir("", "tmp-jiri-rebuild")
+	tmpDir, err := jirix.NewSeq().TempDir("", "tmp-jiri-rebuild")
 	if err != nil {
 		return fmt.Errorf("TempDir() failed: %v", err)
 	}
 
 	// Make sure we cleanup the temp directory.
-	defer collect.Error(func() error { return jirix.Run().RemoveAll(tmpDir) }, &e)
+	defer collect.Error(func() error { return jirix.NewSeq().RemoveAll(tmpDir).Done() }, &e)
 
 	// Paranoid sanity checking.
 	if _, ok := tools[project.JiriName]; !ok {
diff --git a/snapshot.go b/snapshot.go
index eef6c0c..1ed9255 100644
--- a/snapshot.go
+++ b/snapshot.go
@@ -131,20 +131,21 @@
 	if remoteFlag {
 		dir = jirix.RemoteSnapshotDir()
 	}
-	switch _, err := jirix.Run().Stat(dir); {
+	s := jirix.NewSeq()
+	switch _, err := s.Stat(dir); {
 	case err == nil:
 		return dir, nil
 	case !runutil.IsNotExist(err):
 		return "", err
 	case remoteFlag:
-		if err := jirix.Run().MkdirAll(dir, 0755); err != nil {
+		if err := s.MkdirAll(dir, 0755).Done(); err != nil {
 			return "", err
 		}
 		return dir, nil
 	}
 	// Create a new local snapshot directory.
 	createFn := func() (e error) {
-		if err := jirix.Run().MkdirAll(dir, 0755); err != nil {
+		if err := s.MkdirAll(dir, 0755).Done(); err != nil {
 			return err
 		}
 		if err := jirix.Git().Init(dir); err != nil {
@@ -154,14 +155,14 @@
 		if err != nil {
 			return err
 		}
-		defer collect.Error(func() error { return jirix.Run().Chdir(cwd) }, &e)
-		if err := jirix.Run().Chdir(dir); err != nil {
+		defer collect.Error(func() error { return jirix.NewSeq().Chdir(cwd).Done() }, &e)
+		if err := s.Chdir(dir).Done(); err != nil {
 			return err
 		}
 		return jirix.Git().Commit()
 	}
 	if err := createFn(); err != nil {
-		jirix.Run().RemoveAll(dir)
+		s.RemoveAll(dir)
 		return "", err
 	}
 	return dir, nil
@@ -174,18 +175,15 @@
 		return err
 	}
 
+	s := jirix.NewSeq()
 	// Update the symlink for this snapshot label to point to the
 	// latest snapshot.
 	symlink := filepath.Join(snapshotDir, label)
 	newSymlink := symlink + ".new"
-	if err := jirix.Run().RemoveAll(newSymlink); err != nil {
-		return err
-	}
 	relativeSnapshotPath := strings.TrimPrefix(snapshotFile, snapshotDir+string(os.PathSeparator))
-	if err := jirix.Run().Symlink(relativeSnapshotPath, newSymlink); err != nil {
-		return err
-	}
-	if err := jirix.Run().Rename(newSymlink, symlink); err != nil {
+	if err := s.RemoveAll(newSymlink).
+		Symlink(relativeSnapshotPath, newSymlink).
+		Rename(newSymlink, symlink).Done(); err != nil {
 		return err
 	}
 
@@ -204,8 +202,8 @@
 	if err != nil {
 		return err
 	}
-	defer collect.Error(func() error { return jirix.Run().Chdir(cwd) }, &e)
-	if err := jirix.Run().Chdir(snapshotDir); err != nil {
+	defer collect.Error(func() error { return jirix.NewSeq().Chdir(cwd).Done() }, &e)
+	if err := jirix.NewSeq().Chdir(snapshotDir).Done(); err != nil {
 		return err
 	}
 	relativeSnapshotPath := strings.TrimPrefix(snapshotFile, snapshotDir+string(os.PathSeparator))
@@ -274,7 +272,7 @@
 	failed := false
 	for _, label := range args {
 		labelDir := filepath.Join(snapshotDir, "labels", label)
-		if _, err := jirix.Run().Stat(labelDir); err != nil {
+		if _, err := jirix.NewSeq().Stat(labelDir); err != nil {
 			if !runutil.IsNotExist(err) {
 				return err
 			}
diff --git a/snapshot_test.go b/snapshot_test.go
index 2891b71..8bbcf1a 100644
--- a/snapshot_test.go
+++ b/snapshot_test.go
@@ -18,8 +18,9 @@
 )
 
 func createLabelDir(t *testing.T, jirix *jiri.X, snapshotDir, name string, snapshots []string) {
+	s := jirix.NewSeq()
 	labelDir, perm := filepath.Join(snapshotDir, "labels", name), os.FileMode(0700)
-	if err := jirix.Run().MkdirAll(labelDir, perm); err != nil {
+	if err := s.MkdirAll(labelDir, perm).Done(); err != nil {
 		t.Fatalf("MkdirAll(%v, %v) failed: %v", labelDir, perm, err)
 	}
 	for i, snapshot := range snapshots {
@@ -30,7 +31,7 @@
 		}
 		if i == 0 {
 			symlinkPath := filepath.Join(snapshotDir, name)
-			if err := jirix.Run().Symlink(path, symlinkPath); err != nil {
+			if err := s.Symlink(path, symlinkPath).Done(); err != nil {
 				t.Fatalf("Symlink(%v, %v) failed: %v", path, symlinkPath, err)
 			}
 		}
@@ -132,11 +133,12 @@
 }
 
 func checkReadme(t *testing.T, jirix *jiri.X, project, message string) {
-	if _, err := jirix.Run().Stat(project); err != nil {
+	s := jirix.NewSeq()
+	if _, err := s.Stat(project); err != nil {
 		t.Fatalf("%v", err)
 	}
 	readmeFile := filepath.Join(project, "README")
-	data, err := jirix.Run().ReadFile(readmeFile)
+	data, err := s.ReadFile(readmeFile)
 	if err != nil {
 		t.Fatalf("%v", err)
 	}
@@ -154,16 +156,17 @@
 }
 
 func writeReadme(t *testing.T, jirix *jiri.X, projectDir, message string) {
+	s := jirix.NewSeq()
 	path, perm := filepath.Join(projectDir, "README"), os.FileMode(0644)
-	if err := jirix.Run().WriteFile(path, []byte(message), perm); err != nil {
+	if err := s.WriteFile(path, []byte(message), perm).Done(); err != nil {
 		t.Fatalf("%v", err)
 	}
 	cwd, err := os.Getwd()
 	if err != nil {
 		t.Fatalf("%v", err)
 	}
-	defer jirix.Run().Chdir(cwd)
-	if err := jirix.Run().Chdir(projectDir); err != nil {
+	defer jirix.NewSeq().Chdir(cwd)
+	if err := s.Chdir(projectDir).Done(); err != nil {
 		t.Fatalf("%v", err)
 	}
 	if err := jirix.Git().CommitFile(path, "creating README"); err != nil {
@@ -174,6 +177,7 @@
 func TestCreate(t *testing.T) {
 	fake, cleanup := jiritest.NewFakeJiriRoot(t)
 	defer cleanup()
+	s := fake.X.NewSeq()
 
 	// Setup the initial remote and local projects.
 	numProjects, remoteProjects := 2, []string{}
@@ -210,7 +214,7 @@
 	// Remove the local project repositories.
 	for i, _ := range remoteProjects {
 		localProject := filepath.Join(fake.X.Root, localProjectName(i))
-		if err := fake.X.Run().RemoveAll(localProject); err != nil {
+		if err := s.RemoveAll(localProject).Done(); err != nil {
 			t.Fatalf("%v", err)
 		}
 	}
@@ -240,7 +244,7 @@
 	// Remove the local project repositories.
 	for i, _ := range remoteProjects {
 		localProject := filepath.Join(fake.X.Root, localProjectName(i))
-		if err := fake.X.Run().RemoveAll(localProject); err != nil {
+		if err := s.RemoveAll(localProject).Done(); err != nil {
 			t.Fatalf("%v", err)
 		}
 	}