github.com/vanadium-archive/go.jiri@v0.0.0-20160715023856-abfb8b131290/cmd/jiri/doc.go (about) 1 // Copyright 2015 The Vanadium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // This file was auto-generated via go generate. 6 // DO NOT UPDATE MANUALLY 7 8 /* 9 Command jiri is a multi-purpose tool for multi-repo development. 10 11 Usage: 12 jiri [flags] <command> 13 14 The jiri commands are: 15 cl Manage changelists for multiple projects 16 import Adds imports to .jiri_manifest file 17 profile Display information about installed profiles 18 project Manage the jiri projects 19 rebuild Rebuild all jiri tools 20 snapshot Manage project snapshots 21 update Update all jiri tools and projects 22 which Show path to the jiri tool 23 runp Run a command in parallel across jiri projects 24 help Display help for commands or topics 25 26 The jiri additional help topics are: 27 filesystem Description of jiri file system layout 28 manifest Description of manifest files 29 30 The jiri flags are: 31 -color=true 32 Use color to format output. 33 -v=false 34 Print verbose output. 35 36 The global flags are: 37 -metadata=<just specify -metadata to activate> 38 Displays metadata for the program and exits. 39 -time=false 40 Dump timing information to stderr before exiting the program. 41 42 Jiri cl - Manage changelists for multiple projects 43 44 Manage changelists for multiple projects. 45 46 Usage: 47 jiri cl [flags] <command> 48 49 The jiri cl commands are: 50 cleanup Clean up changelists that have been merged 51 mail Mail a changelist for review 52 new Create a new local branch for a changelist 53 sync Bring a changelist up to date 54 55 The jiri cl flags are: 56 -color=true 57 Use color to format output. 58 -v=false 59 Print verbose output. 60 61 Jiri cl cleanup - Clean up changelists that have been merged 62 63 Command "cleanup" checks that the given branches have been merged into the 64 corresponding remote branch. If a branch differs from the corresponding remote 65 branch, the command reports the difference and stops. Otherwise, it deletes the 66 given branches. 67 68 Usage: 69 jiri cl cleanup [flags] <branches> 70 71 <branches> is a list of branches to cleanup. 72 73 The jiri cl cleanup flags are: 74 -f=false 75 Ignore unmerged changes. 76 -remote-branch=master 77 Name of the remote branch the CL pertains to, without the leading "origin/". 78 79 -color=true 80 Use color to format output. 81 -v=false 82 Print verbose output. 83 84 Jiri cl mail - Mail a changelist for review 85 86 Command "mail" squashes all commits of a local branch into a single "changelist" 87 and mails this changelist to Gerrit as a single commit. First time the command 88 is invoked, it generates a Change-Id for the changelist, which is appended to 89 the commit message. Consecutive invocations of the command use the same 90 Change-Id by default, informing Gerrit that the incomming commit is an update of 91 an existing changelist. 92 93 Usage: 94 jiri cl mail [flags] 95 96 The jiri cl mail flags are: 97 -autosubmit=false 98 Automatically submit the changelist when feasible. 99 -cc= 100 Comma-seperated list of emails or LDAPs to cc. 101 -check-uncommitted=true 102 Check that no uncommitted changes exist. 103 -clean-multipart-metadata=false 104 Cleanup the metadata associated with multipart CLs pertaining the MultiPart: 105 x/y message without mailing any CLs. 106 -commit-message-body-file= 107 file containing the body of the CL description, that is, text without a 108 ChangeID, MultiPart etc. 109 -current-project-only=false 110 Run mail in the current project only. 111 -d=false 112 Send a draft changelist. 113 -edit=true 114 Open an editor to edit the CL description. 115 -host= 116 Gerrit host to use. Defaults to gerrit host specified in manifest. 117 -m= 118 CL description. 119 -presubmit=all 120 The type of presubmit tests to run. Valid values: none,all. 121 -r= 122 Comma-seperated list of emails or LDAPs to request review. 123 -remote-branch=master 124 Name of the remote branch the CL pertains to, without the leading "origin/". 125 -set-topic=true 126 Set Gerrit CL topic. 127 -topic= 128 CL topic, defaults to <username>-<branchname>. 129 -verify=true 130 Run pre-push git hooks. 131 132 -color=true 133 Use color to format output. 134 -v=false 135 Print verbose output. 136 137 Jiri cl new - Create a new local branch for a changelist 138 139 Command "new" creates a new local branch for a changelist. In particular, it 140 forks a new branch with the given name from the current branch and records the 141 relationship between the current branch and the new branch in the .jiri metadata 142 directory. The information recorded in the .jiri metadata directory tracks 143 dependencies between CLs and is used by the "jiri cl sync" and "jiri cl mail" 144 commands. 145 146 Usage: 147 jiri cl new [flags] <name> 148 149 <name> is the changelist name. 150 151 The jiri cl new flags are: 152 -color=true 153 Use color to format output. 154 -v=false 155 Print verbose output. 156 157 Jiri cl sync - Bring a changelist up to date 158 159 Command "sync" brings the CL identified by the current branch up to date with 160 the branch tracking the remote branch this CL pertains to. To do that, the 161 command uses the information recorded in the .jiri metadata directory to 162 identify the sequence of dependent CLs leading to the current branch. The 163 command then iterates over this sequence bringing each of the CLs up to date 164 with its ancestor. The end result of this process is that all CLs in the 165 sequence are up to date with the branch that tracks the remote branch this CL 166 pertains to. 167 168 NOTE: It is possible that the command cannot automatically merge changes in an 169 ancestor into its dependent. When that occurs, the command is aborted and prints 170 instructions that need to be followed before the command can be retried. 171 172 Usage: 173 jiri cl sync [flags] 174 175 The jiri cl sync flags are: 176 -remote-branch=master 177 Name of the remote branch the CL pertains to, without the leading "origin/". 178 179 -color=true 180 Use color to format output. 181 -v=false 182 Print verbose output. 183 184 Jiri import 185 186 Command "import" adds imports to the $JIRI_ROOT/.jiri_manifest file, which 187 specifies manifest information for the jiri tool. The file is created if it 188 doesn't already exist, otherwise additional imports are added to the existing 189 file. 190 191 An <import> element is added to the manifest representing a remote manifest 192 import. The manifest file path is relative to the root directory of the remote 193 import repository. 194 195 Example: 196 $ jiri import myfile https://foo.com/bar.git 197 198 Run "jiri help manifest" for details on manifests. 199 200 Usage: 201 jiri import [flags] <manifest> <remote> 202 203 <manifest> specifies the manifest file to use. 204 205 <remote> specifies the remote manifest repository. 206 207 The jiri import flags are: 208 -name=manifest 209 The name of the remote manifest project. 210 -out= 211 The output file. Uses $JIRI_ROOT/.jiri_manifest if unspecified. Uses stdout 212 if set to "-". 213 -overwrite=false 214 Write a new .jiri_manifest file with the given specification. If it already 215 exists, the existing content will be ignored and the file will be 216 overwritten. 217 -protocol=git 218 The version control protocol used by the remote manifest project. 219 -remote-branch=master 220 The branch of the remote manifest project to track, without the leading 221 "origin/". 222 -root= 223 Root to store the manifest project locally. 224 225 -color=true 226 Use color to format output. 227 -v=false 228 Print verbose output. 229 230 Jiri profile - Display information about installed profiles 231 232 Display information about installed profiles and their configuration. 233 234 Usage: 235 jiri profile [flags] <command> 236 237 The jiri profile commands are: 238 list List available or installed profiles 239 env Display profile environment variables 240 install Install the given profiles 241 os-packages List the commands to install the OS packages required by the 242 given profiles 243 uninstall Uninstall the given profiles 244 update Install the latest default version of the given profiles 245 cleanup Cleanup the locally installed profiles 246 available List the available profiles 247 248 The jiri profile flags are: 249 -color=true 250 Use color to format output. 251 -v=false 252 Print verbose output. 253 254 Jiri profile list - List available or installed profiles 255 256 List available or installed profiles. 257 258 Usage: 259 jiri profile list [flags] [<profiles>] 260 261 <profiles> is a list of profiles to list, defaulting to all profiles if none are 262 specifically requested. List can also be used to test for the presence of a 263 specific target for the requested profiles. If the target is not installed, it 264 will exit with an error. 265 266 The jiri profile list flags are: 267 -env= 268 specify an environment variable in the form: <var>=[<val>],... 269 -info= 270 The following fields for use with -info are available: 271 SchemaVersion - the version of the profiles implementation. 272 DBPath - the path for the profiles database. 273 Target.InstallationDir - the installation directory of the requested profile. 274 Target.CommandLineEnv - the environment variables specified via the command line when installing this profile target. 275 Target.Env - the environment variables computed by the profile installation process for this target. 276 Target.Command - a command that can be used to create this profile. 277 Note: if no --target is specified then the requested field will be displayed for all targets. 278 279 Profile.Root - the root directory of the requested profile. 280 Profile.Name - the qualified name of the profile. 281 Profile.Installer - the name of the profile installer. 282 Profile.DBPath - the path to the database file for this profile. 283 Note: if no profiles are specified then the requested field will be displayed for all profiles. 284 -merge-policies=+CCFLAGS,+CGO_CFLAGS,+CGO_CXXFLAGS,+CGO_LDFLAGS,+CXXFLAGS,GOARCH,GOOS,GOPATH:,^GOROOT*,+LDFLAGS,:PATH,VDLPATH: 285 specify policies for merging environment variables 286 -profiles= 287 a comma separated list of profiles to use 288 -profiles-db=$JIRI_ROOT/.jiri_root/profile_db 289 the path, relative to JIRI_ROOT, that contains the profiles database. 290 -skip-profiles=false 291 if set, no profiles will be used 292 -target=<runtime.GOARCH>-<runtime.GOOS> 293 specifies a profile target in the following form: <arch>-<os>[@<version>] 294 -v=false 295 print more detailed information 296 297 -color=true 298 Use color to format output. 299 300 Jiri profile env - Display profile environment variables 301 302 List profile specific and target specific environment variables. If the 303 requested environment variable name ends in = then only the value will be 304 printed, otherwise both name and value are printed, i.e. CFLAGS="foo" vs just 305 "foo". 306 307 If no environment variable names are requested then all will be printed in 308 <name>=<val> format. 309 310 Usage: 311 jiri profile env [flags] [<environment variable names>] 312 313 [<environment variable names>] is an optional list of environment variables to 314 display 315 316 The jiri profile env flags are: 317 -env= 318 specify an environment variable in the form: <var>=[<val>],... 319 -merge-policies=+CCFLAGS,+CGO_CFLAGS,+CGO_CXXFLAGS,+CGO_LDFLAGS,+CXXFLAGS,GOARCH,GOOS,GOPATH:,^GOROOT*,+LDFLAGS,:PATH,VDLPATH: 320 specify policies for merging environment variables 321 -profiles= 322 a comma separated list of profiles to use 323 -profiles-db=$JIRI_ROOT/.jiri_root/profile_db 324 the path, relative to JIRI_ROOT, that contains the profiles database. 325 -skip-profiles=false 326 if set, no profiles will be used 327 -target=<runtime.GOARCH>-<runtime.GOOS> 328 specifies a profile target in the following form: <arch>-<os>[@<version>] 329 -v=false 330 print more detailed information 331 332 -color=true 333 Use color to format output. 334 335 Jiri profile install - Install the given profiles 336 337 Install the given profiles. 338 339 Usage: 340 jiri profile install [flags] <profiles> 341 342 <profiles> is a list of profiles to install. 343 344 The jiri profile install flags are: 345 -env= 346 specify an environment variable in the form: <var>=[<val>],... 347 -force=false 348 force install the profile even if it is already installed 349 -profiles-db=$JIRI_ROOT/.jiri_root/profile_db 350 the path, relative to JIRI_ROOT, that contains the profiles database. 351 -profiles-dir=.jiri_root/profiles 352 the directory, relative to JIRI_ROOT, that profiles are installed in 353 -target=<runtime.GOARCH>-<runtime.GOOS> 354 specifies a profile target in the following form: <arch>-<os>[@<version>] 355 356 -color=true 357 Use color to format output. 358 -v=false 359 Print verbose output. 360 361 Jiri profile os-packages - List the commands to install the OS packages required by the given profiles 362 363 List or optionally run the commands to install the OS packages required by the 364 given profiles. 365 366 Usage: 367 jiri profile os-packages [flags] <profiles> 368 369 <profiles> is a list of profiles to list OS packages for. 370 371 The jiri profile os-packages flags are: 372 -all=false 373 print commands to install all required OS packages, not just those that are 374 missing 375 -env= 376 specify an environment variable in the form: <var>=[<val>],... 377 -install=false 378 install the requested packages. This may need to be run as root. 379 -profiles-db=$JIRI_ROOT/.jiri_root/profile_db 380 the path, relative to JIRI_ROOT, that contains the profiles database. 381 -profiles-dir=.jiri_root/profiles 382 the directory, relative to JIRI_ROOT, that profiles are installed in 383 -target=<runtime.GOARCH>-<runtime.GOOS> 384 specifies a profile target in the following form: <arch>-<os>[@<version>] 385 386 -color=true 387 Use color to format output. 388 -v=false 389 Print verbose output. 390 391 Jiri profile uninstall - Uninstall the given profiles 392 393 Uninstall the given profiles. 394 395 Usage: 396 jiri profile uninstall [flags] <profiles> 397 398 <profiles> is a list of profiles to uninstall. 399 400 The jiri profile uninstall flags are: 401 -all-targets=false 402 apply to all targets for the specified profile(s) 403 -profiles-db=$JIRI_ROOT/.jiri_root/profile_db 404 the path, relative to JIRI_ROOT, that contains the profiles database. 405 -profiles-dir=.jiri_root/profiles 406 the directory, relative to JIRI_ROOT, that profiles are installed in 407 -target=<runtime.GOARCH>-<runtime.GOOS> 408 specifies a profile target in the following form: <arch>-<os>[@<version>] 409 -v=false 410 print more detailed information 411 412 -color=true 413 Use color to format output. 414 415 Jiri profile update - Install the latest default version of the given profiles 416 417 Install the latest default version of the given profiles. 418 419 Usage: 420 jiri profile update [flags] <profiles> 421 422 <profiles> is a list of profiles to update, if omitted all profiles are updated. 423 424 The jiri profile update flags are: 425 -profiles-db=$JIRI_ROOT/.jiri_root/profile_db 426 the path, relative to JIRI_ROOT, that contains the profiles database. 427 -profiles-dir=.jiri_root/profiles 428 the directory, relative to JIRI_ROOT, that profiles are installed in 429 -v=false 430 print more detailed information 431 432 -color=true 433 Use color to format output. 434 435 Jiri profile cleanup - Cleanup the locally installed profiles 436 437 Cleanup the locally installed profiles. This is generally required when 438 recovering from earlier bugs or when preparing for a subsequent change to the 439 profiles implementation. 440 441 Usage: 442 jiri profile cleanup [flags] <profiles> 443 444 <profiles> is a list of profiles to cleanup, if omitted all profiles are 445 cleaned. 446 447 The jiri profile cleanup flags are: 448 -gc=false 449 uninstall profile targets that are older than the current default 450 -profiles-db=$JIRI_ROOT/.jiri_root/profile_db 451 the path, relative to JIRI_ROOT, that contains the profiles database. 452 -profiles-dir=.jiri_root/profiles 453 the directory, relative to JIRI_ROOT, that profiles are installed in 454 -rewrite-profiles-db=false 455 rewrite the profiles database to use the latest schema version 456 -rm-all=false 457 remove profiles database and all profile generated output files. 458 -v=false 459 print more detailed information 460 461 -color=true 462 Use color to format output. 463 464 Jiri profile available - List the available profiles 465 466 List the available profiles. 467 468 Usage: 469 jiri profile available [flags] 470 471 The jiri profile available flags are: 472 -describe=false 473 print the profile description 474 -v=false 475 print more detailed information 476 477 -color=true 478 Use color to format output. 479 480 Jiri project - Manage the jiri projects 481 482 Manage the jiri projects. 483 484 Usage: 485 jiri project [flags] <command> 486 487 The jiri project commands are: 488 clean Restore jiri projects to their pristine state 489 info Provided structured input for existing jiri projects and 490 branches 491 list List existing jiri projects and branches 492 shell-prompt Print a succinct status of projects suitable for shell prompts 493 494 The jiri project flags are: 495 -color=true 496 Use color to format output. 497 -v=false 498 Print verbose output. 499 500 Jiri project clean - Restore jiri projects to their pristine state 501 502 Restore jiri projects back to their master branches and get rid of all the local 503 branches and changes. 504 505 Usage: 506 jiri project clean [flags] <project ...> 507 508 <project ...> is a list of projects to clean up. 509 510 The jiri project clean flags are: 511 -branches=false 512 Delete all non-master branches. 513 514 -color=true 515 Use color to format output. 516 -v=false 517 Print verbose output. 518 519 Jiri project info - Provided structured input for existing jiri projects and branches 520 521 Inspect the local filesystem and provide structured info on the existing 522 projects and branches. Projects are specified using regular expressions that are 523 matched against project keys. If no command line arguments are provided the 524 project that the contains the current directory is used, or if run from outside 525 of a given project, all projects will be used. The information to be displayed 526 is specified using a go template, supplied via the -f flag, that is executed 527 against the v.io/jiri/project.ProjectState structure. This structure currently 528 has the following fields: 529 project.ProjectState{Branches:[]project.BranchState(nil), CurrentBranch:"", 530 HasUncommitted:false, HasUntracked:false, Project:project.Project{Name:"", 531 Path:"", Protocol:"", Remote:"", RemoteBranch:"", Revision:"", GerritHost:"", 532 GitHooks:"", RunHook:"", XMLName:struct {}{}}} 533 534 Usage: 535 jiri project info [flags] <project-keys>... 536 537 <project-keys>... a list of project keys, as regexps, to apply the specified 538 format to 539 540 The jiri project info flags are: 541 -f={{.Project.Name}} 542 The go template for the fields to display. 543 544 -color=true 545 Use color to format output. 546 -v=false 547 Print verbose output. 548 549 Jiri project list - List existing jiri projects and branches 550 551 Inspect the local filesystem and list the existing projects and branches. 552 553 Usage: 554 jiri project list [flags] 555 556 The jiri project list flags are: 557 -branches=false 558 Show project branches. 559 -nopristine=false 560 If true, omit pristine projects, i.e. projects with a clean master branch and 561 no other branches. 562 563 -color=true 564 Use color to format output. 565 -v=false 566 Print verbose output. 567 568 Jiri project shell-prompt - Print a succinct status of projects suitable for shell prompts 569 570 Reports current branches of jiri projects (repositories) as well as an 571 indication of each project's status: 572 * indicates that a repository contains uncommitted changes 573 % indicates that a repository contains untracked files 574 575 Usage: 576 jiri project shell-prompt [flags] 577 578 The jiri project shell-prompt flags are: 579 -check-dirty=true 580 If false, don't check for uncommitted changes or untracked files. Setting 581 this option to false is dangerous: dirty master branches will not appear in 582 the output. 583 -show-name=false 584 Show the name of the current repo. 585 586 -color=true 587 Use color to format output. 588 -v=false 589 Print verbose output. 590 591 Jiri rebuild - Rebuild all jiri tools 592 593 Rebuilds all jiri tools and installs the resulting binaries into 594 $JIRI_ROOT/.jiri_root/bin. This is similar to "jiri update", but does not update 595 any projects before building the tools. The set of tools to rebuild is described 596 in the manifest. 597 598 Run "jiri help manifest" for details on manifests. 599 600 Usage: 601 jiri rebuild [flags] 602 603 The jiri rebuild flags are: 604 -color=true 605 Use color to format output. 606 -v=false 607 Print verbose output. 608 609 Jiri snapshot - Manage project snapshots 610 611 The "jiri snapshot" command can be used to manage project snapshots. In 612 particular, it can be used to create new snapshots and to list existing 613 snapshots. 614 615 Usage: 616 jiri snapshot [flags] <command> 617 618 The jiri snapshot commands are: 619 checkout Checkout a project snapshot 620 create Create a new project snapshot 621 list List existing project snapshots 622 623 The jiri snapshot flags are: 624 -dir= 625 Directory where snapshot are stored. Defaults to $JIRI_ROOT/.snapshot. 626 627 -color=true 628 Use color to format output. 629 -v=false 630 Print verbose output. 631 632 Jiri snapshot checkout - Checkout a project snapshot 633 634 The "jiri snapshot checkout <snapshot>" command restores local project state to 635 the state in the given snapshot manifest. 636 637 Usage: 638 jiri snapshot checkout [flags] <snapshot> 639 640 <snapshot> is the snapshot manifest file. 641 642 The jiri snapshot checkout flags are: 643 -gc=false 644 Garbage collect obsolete repositories. 645 646 -color=true 647 Use color to format output. 648 -dir= 649 Directory where snapshot are stored. Defaults to $JIRI_ROOT/.snapshot. 650 -v=false 651 Print verbose output. 652 653 Jiri snapshot create - Create a new project snapshot 654 655 The "jiri snapshot create <label>" command captures the current project state in 656 a manifest. If the -push-remote flag is provided, the snapshot is committed and 657 pushed upstream. 658 659 Internally, snapshots are organized as follows: 660 661 <snapshot-dir>/ 662 labels/ 663 <label1>/ 664 <label1-snapshot1> 665 <label1-snapshot2> 666 ... 667 <label2>/ 668 <label2-snapshot1> 669 <label2-snapshot2> 670 ... 671 <label3>/ 672 ... 673 <label1> # a symlink to the latest <label1-snapshot*> 674 <label2> # a symlink to the latest <label2-snapshot*> 675 ... 676 677 NOTE: Unlike the jiri tool commands, the above internal organization is not an 678 API. It is an implementation and can change without notice. 679 680 Usage: 681 jiri snapshot create [flags] <label> 682 683 <label> is the snapshot label. 684 685 The jiri snapshot create flags are: 686 -push-remote=false 687 Commit and push snapshot upstream. 688 -time-format=2006-01-02T15:04:05Z07:00 689 Time format for snapshot file name. 690 691 -color=true 692 Use color to format output. 693 -dir= 694 Directory where snapshot are stored. Defaults to $JIRI_ROOT/.snapshot. 695 -v=false 696 Print verbose output. 697 698 Jiri snapshot list - List existing project snapshots 699 700 The "snapshot list" command lists existing snapshots of the labels specified as 701 command-line arguments. If no arguments are provided, the command lists 702 snapshots for all known labels. 703 704 Usage: 705 jiri snapshot list [flags] <label ...> 706 707 <label ...> is a list of snapshot labels. 708 709 The jiri snapshot list flags are: 710 -color=true 711 Use color to format output. 712 -dir= 713 Directory where snapshot are stored. Defaults to $JIRI_ROOT/.snapshot. 714 -v=false 715 Print verbose output. 716 717 Jiri update - Update all jiri tools and projects 718 719 Updates all projects, builds the latest version of all tools, and installs the 720 resulting binaries into $JIRI_ROOT/.jiri_root/bin. The sequence in which the 721 individual updates happen guarantees that we end up with a consistent set of 722 tools and source code. The set of projects and tools to update is described in 723 the manifest. 724 725 Run "jiri help manifest" for details on manifests. 726 727 Usage: 728 jiri update [flags] 729 730 The jiri update flags are: 731 -attempts=1 732 Number of attempts before failing. 733 -gc=false 734 Garbage collect obsolete repositories. 735 -manifest= 736 Name of the project manifest. 737 738 -color=true 739 Use color to format output. 740 -v=false 741 Print verbose output. 742 743 Jiri which - Show path to the jiri tool 744 745 Which behaves similarly to the unix commandline tool. It is useful in 746 determining whether the jiri binary is being run directly, or run via the jiri 747 shim script. 748 749 If the binary is being run directly, the output looks like this: 750 751 # binary 752 /path/to/binary/jiri 753 754 If the script is being run, the output looks like this: 755 756 # script 757 /path/to/script/jiri 758 759 Usage: 760 jiri which [flags] 761 762 The jiri which flags are: 763 -color=true 764 Use color to format output. 765 -v=false 766 Print verbose output. 767 768 Jiri runp - Run a command in parallel across jiri projects 769 770 Run a command in parallel across one or more jiri projects using the specified 771 profile target's environment. Commands are run using the shell specified by the 772 users $SHELL environment variable, or "sh" if that's not set. Thus commands are 773 run as $SHELL -c "args..." 774 775 Usage: 776 jiri runp [flags] <command line> 777 778 A command line to be run in each project specified by the supplied command line 779 flags. Any environment variables intended to be evaluated when the command line 780 is run must be quoted to avoid expansion before being passed to runp by the 781 shell. 782 783 The jiri runp flags are: 784 -collate-stdout=true 785 Collate all stdout output from each parallel invocation and display it as if 786 had been generated sequentially. This flag cannot be used with 787 -show-name-prefix, -show-key-prefix or -interactive. 788 -env= 789 specify an environment variable in the form: <var>=[<val>],... 790 -exit-on-error=false 791 If set, all commands will killed as soon as one reports an error, otherwise, 792 each will run to completion. 793 -has-branch= 794 A regular expression specifying branch names to use in matching projects. A 795 project will match if the specified branch exists, even if it is not checked 796 out. 797 -has-gerrit-message=false 798 If specified, match branches that have, or have no, gerrit message 799 -has-uncommitted=false 800 If specified, match projects that have, or have no, uncommitted changes 801 -has-untracked=false 802 If specified, match projects that have, or have no, untracked files 803 -interactive=true 804 If set, the command to be run is interactive and should not have its 805 stdout/stderr manipulated. This flag cannot be used with -show-name-prefix, 806 -show-key-prefix or -collate-stdout. 807 -merge-policies=+CCFLAGS,+CGO_CFLAGS,+CGO_CXXFLAGS,+CGO_LDFLAGS,+CXXFLAGS,GOARCH,GOOS,GOPATH:,^GOROOT*,+LDFLAGS,:PATH,VDLPATH: 808 specify policies for merging environment variables 809 -profiles= 810 a comma separated list of profiles to use 811 -profiles-db=$JIRI_ROOT/.jiri_root/profile_db 812 the path, relative to JIRI_ROOT, that contains the profiles database. 813 -projects= 814 A Regular expression specifying project keys to run commands in. By default, 815 runp will use projects that have the same branch checked as the current 816 project unless it is run from outside of a project in which case it will 817 default to using all projects. 818 -show-key-prefix=false 819 If set, each line of output from each project will begin with the key of the 820 project followed by a colon. This is intended for use with long running 821 commands where the output needs to be streamed. Stdout and stderr are spliced 822 apart. This flag cannot be used with -interactive, -show-name-prefix or 823 -collate-stdout 824 -show-name-prefix=false 825 If set, each line of output from each project will begin with the name of the 826 project followed by a colon. This is intended for use with long running 827 commands where the output needs to be streamed. Stdout and stderr are spliced 828 apart. This flag cannot be used with -interactive, -show-key-prefix or 829 -collate-stdout. 830 -skip-profiles=false 831 if set, no profiles will be used 832 -target=<runtime.GOARCH>-<runtime.GOOS> 833 specifies a profile target in the following form: <arch>-<os>[@<version>] 834 -v=false 835 Print verbose logging information 836 837 -color=true 838 Use color to format output. 839 840 Jiri help - Display help for commands or topics 841 842 Help with no args displays the usage of the parent command. 843 844 Help with args displays the usage of the specified sub-command or help topic. 845 846 "help ..." recursively displays help for all commands and topics. 847 848 Usage: 849 jiri help [flags] [command/topic ...] 850 851 [command/topic ...] optionally identifies a specific sub-command or help topic. 852 853 The jiri help flags are: 854 -style=compact 855 The formatting style for help output: 856 compact - Good for compact cmdline output. 857 full - Good for cmdline output, shows all global flags. 858 godoc - Good for godoc processing. 859 shortonly - Only output short description. 860 Override the default by setting the CMDLINE_STYLE environment variable. 861 -width=<terminal width> 862 Format output to this target width in runes, or unlimited if width < 0. 863 Defaults to the terminal width if available. Override the default by setting 864 the CMDLINE_WIDTH environment variable. 865 866 Jiri filesystem - Description of jiri file system layout 867 868 All data managed by the jiri tool is located in the file system under a root 869 directory, colloquially called the jiri root directory. The file system layout 870 looks like this: 871 872 [root] # root directory (name picked by user) 873 [root]/.jiri_root # root metadata directory 874 [root]/.jiri_root/bin # contains tool binaries (jiri, etc.) 875 [root]/.jiri_root/update_history # contains history of update snapshots 876 [root]/.manifest # contains jiri manifests 877 [root]/[project1] # project directory (name picked by user) 878 [root]/[project1]/.jiri # project metadata directory 879 [root]/[project1]/.jiri/metadata.v2 # project metadata file 880 [root]/[project1]/.jiri/<<cls>> # project per-cl metadata directories 881 [root]/[project1]/<<files>> # project files 882 [root]/[project2]... 883 884 The [root] and [projectN] directory names are picked by the user. The <<cls>> 885 are named via jiri cl new, and the <<files>> are named as the user adds files 886 and directories to their project. All other names above have special meaning to 887 the jiri tool, and cannot be changed; you must ensure your path names don't 888 collide with these special names. 889 890 There are two ways to run the jiri tool: 891 892 1) Shim script (recommended approach). This is a shell script that looks for 893 the [root] directory. If the JIRI_ROOT environment variable is set, that is 894 assumed to be the [root] directory. Otherwise the script looks for the 895 .jiri_root directory, starting in the current working directory and walking up 896 the directory chain. The search is terminated successfully when the .jiri_root 897 directory is found; it fails after it reaches the root of the file system. Thus 898 the shim must be invoked from the [root] directory or one of its subdirectories. 899 900 Once the [root] is found, the JIRI_ROOT environment variable is set to its 901 location, and [root]/.jiri_root/bin/jiri is invoked. That file contains the 902 actual jiri binary. 903 904 The point of the shim script is to make it easy to use the jiri tool with 905 multiple [root] directories on your file system. Keep in mind that when "jiri 906 update" is run, the jiri tool itself is automatically updated along with all 907 projects. By using the shim script, you only need to remember to invoke the 908 jiri tool from within the appropriate [root] directory, and the projects and 909 tools under that [root] directory will be updated. 910 911 The shim script is located at [root]/release/go/src/v.io/jiri/scripts/jiri 912 913 2) Direct binary. This is the jiri binary, containing all of the actual jiri 914 tool logic. The binary requires the JIRI_ROOT environment variable to point to 915 the [root] directory. 916 917 Note that if you have multiple [root] directories on your file system, you must 918 remember to run the jiri binary corresponding to the setting of your JIRI_ROOT 919 environment variable. Things may fail if you mix things up, since the jiri 920 binary is updated with each call to "jiri update", and you may encounter version 921 mismatches between the jiri binary and the various metadata files or other 922 logic. This is the reason the shim script is recommended over running the 923 binary directly. 924 925 The jiri binary is located at [root]/.jiri_root/bin/jiri 926 927 Jiri manifest - Description of manifest files 928 929 Jiri manifest files describe the set of projects that get synced and tools that 930 get built when running "jiri update". 931 932 The first manifest file that jiri reads is in $JIRI_ROOT/.jiri_manifest. This 933 manifest **must** exist for the jiri tool to work. 934 935 Usually the manifest in $JIRI_ROOT/.jiri_manifest will import other manifests 936 from remote repositories via <import> tags, but it can contain its own list of 937 projects and tools as well. 938 939 Manifests have the following XML schema: 940 941 <manifest> 942 <imports> 943 <import remote="https://vanadium.googlesource.com/manifest" 944 manifest="public" 945 name="manifest" 946 /> 947 <localimport file="/path/to/local/manifest"/> 948 ... 949 </imports> 950 <projects> 951 <project name="my-project" 952 path="path/where/project/lives" 953 protocol="git" 954 remote="https://github.com/myorg/foo" 955 revision="ed42c05d8688ab23" 956 remotebranch="my-branch" 957 gerrithost="https://myorg-review.googlesource.com" 958 githooks="path/to/githooks-dir" 959 runhook="path/to/runhook-script" 960 /> 961 ... 962 </projects> 963 <tools> 964 <tool name="jiri" 965 package="v.io/jiri" 966 project="release.go.jiri" 967 /> 968 ... 969 </tools> 970 </manifest> 971 972 The <import> and <localimport> tags can be used to share common projects and 973 tools across multiple manifests. 974 975 A <localimport> tag should be used when the manifest being imported and the 976 importing manifest are both in the same repository, or when neither one is in a 977 repository. The "file" attribute is the path to the manifest file being 978 imported. It can be absolute, or relative to the importing manifest file. 979 980 If the manifest being imported and the importing manifest are in different 981 repositories then an <import> tag must be used, with the following attributes: 982 983 * remote (required) - The remote url of the repository containing the manifest 984 to be imported 985 986 * manifest (required) - The path of the manifest file to be imported, relative 987 to the repository root. 988 989 * name (optional) - The name of the project corresponding to the manifest 990 repository. If your manifest contains a <project> with the same remote as the 991 manifest remote, then the "name" attribute of on the <import> tag should match 992 the "name" attribute on the <project>. Otherwise, jiri will clone the manifest 993 repository on every update. 994 995 The <project> tags describe the projects to sync, and what state they should 996 sync to, accoring to the following attributes: 997 998 * name (required) - The name of the project. 999 1000 * path (required) - The location where the project will be located, relative to 1001 the jiri root. 1002 1003 * remote (required) - The remote url of the project repository. 1004 1005 * protocol (optional) - The protocol to use when cloning and syncing the repo. 1006 Currently "git" is the default and only supported protocol. 1007 1008 * remotebranch (optional) - The remote branch that the project will sync to. 1009 Defaults to "master". The "remotebranch" attribute is ignored if "revision" is 1010 specified. 1011 1012 * revision (optional) - The specific revision (usually a git SHA) that the 1013 project will sync to. If "revision" is specified then the "remotebranch" 1014 attribute is ignored. 1015 1016 * gerrithost (optional) - The url of the Gerrit host for the project. If 1017 specified, then running "jiri cl mail" will upload a CL to this Gerrit host. 1018 1019 * githooks (optional) - The path (relative to $JIRI_ROOT) of a directory 1020 containing git hooks that will be installed in the projects .git/hooks directory 1021 during each update. 1022 1023 * runhook (optional) - The path (relate to $JIRI_ROOT) of a script that will be 1024 run during each update. 1025 1026 The <tool> tags describe the tools that will be compiled and installed in 1027 $JIRI_ROOT/.jiri_root/bin after each update. The tools must be written in go, 1028 and are identified by their package name and the project that contains their 1029 code. They are configured via the following attributes: 1030 1031 * name (required) - The name of the binary that will be installed in 1032 JIRI_ROOT/.jiri_root/bin 1033 1034 * package (required) - The name of the Go package that will be passed to "go 1035 build". 1036 1037 * project (required) - The name of the project that contains the source code 1038 for the tool. 1039 */ 1040 package main