func runImport(jirix *jiri.X, args []string) error { if len(args) != 2 { return jirix.UsageErrorf("wrong number of arguments") } // Initialize manifest. var manifest *project.Manifest if !flagImportOverwrite { m, err := project.ManifestFromFile(jirix, jirix.JiriManifestFile()) if err != nil && !runutil.IsNotExist(err) { return err } manifest = m } if manifest == nil { manifest = &project.Manifest{} } // There's not much error checking when writing the .jiri_manifest file; // errors will be reported when "jiri update" is run. manifest.Imports = append(manifest.Imports, project.Import{ Manifest: args[0], Name: flagImportName, Protocol: flagImportProtocol, Remote: args[1], RemoteBranch: flagImportRemoteBranch, Root: flagImportRoot, }) // Write output to stdout or file. outFile := flagImportOut if outFile == "" { outFile = jirix.JiriManifestFile() } if outFile == "-" { bytes, err := manifest.ToBytes() if err != nil { return err } _, err = os.Stdout.Write(bytes) return err } return manifest.ToFile(jirix, outFile) }
// ReadJiriManifest reads the .jiri_manifest manifest. func (fake FakeJiriRoot) ReadJiriManifest() (*project.Manifest, error) { return project.ManifestFromFile(fake.X, fake.X.JiriManifestFile()) }
// ReadRemoteManifest read a manifest from the remote manifest project. func (fake FakeJiriRoot) ReadRemoteManifest() (*project.Manifest, error) { path := filepath.Join(fake.remote, manifestProjectPath, manifestFileName) return project.ManifestFromFile(fake.X, path) }