1. 08 Mar, 2017 1 commit
    • Emmanuel Odeke's avatar
      compiler/cli: PrintHelpText prints to stdout instead of stderr · 769b6935
      Emmanuel Odeke authored
      Fixes #698.
      
      PrintHelpText now prints to standard output instead of to standard error.
      The purpose of this CL is to make it easy for users to grep for matches
      otherwise stderr output has to be awkwardly redirectly to stdout
      using this shell trick  `2>&1`, for example
      ```shell
      protoc --help 2>&1 | grep cpp
      ```
      
      of which we shouldn't be making users have to work that hard just to
      get use of --help.
      
      + Exhibits:
      * Before:
      ```shell
      $ protoc --help | grep cpp
      Usage: protoc [OPTION] PROTO_FILES
      Parse PROTO_FILES and generate output based on the options given:
        -IPATH, --proto_path=PATH   Specify the directory in which to search
      for
                                    imports.  May be specified multiple times;
                                    directories will be searched in order.  If
      not
                                    given, the current working directory is
      used.
        --version                   Show version info and exit.
        -h, --help                  Show this text and exit.
        --encode=MESSAGE_TYPE       Read a text-format message of the given
      type
                                    from standard input and write it in binary
                                    to standard output.  The message type must
                                    be defined in PROTO_FILES or their
      imports.
        --decode=MESSAGE_TYPE       Read a binary message of the given type
      from
                                    standard input and write it in text format
                                    to standard output.  The message type must
                                    be defined in PROTO_FILES or their
      imports.
        --decode_raw                Read an arbitrary protocol message from
                                    standard input and write the raw tag/value
                                    pairs in text format to standard output.
      No
                                    PROTO_FILES should be given when using
      this
                                    flag.
        -oFILE,                     Writes a FileDescriptorSet (a protocol
      buffer,
          --descriptor_set_out=FILE defined in descriptor.proto) containing
      all of
                                    the input files to FILE.
        --include_imports           When using --descriptor_set_out, also
      include
                                    all dependencies of the input files in the
                                    set, so that the set is self-contained.
        --include_source_info       When using --descriptor_set_out, do not
      strip
                                    SourceCodeInfo from the
      FileDescriptorProto.
                                    This results in vastly larger descriptors
      that
                                    include information about the original
                                    location of each decl in the source file
      as
                                    well as surrounding comments.
        --dependency_out=FILE       Write a dependency output file in the
      format
                                    expected by make. This writes the
      transitive
                                    set of input file paths to FILE
        --error_format=FORMAT       Set the format in which to print errors.
                                    FORMAT may be 'gcc' (the default) or
      'msvs'
                                    (Microsoft Visual Studio format).
        --print_free_field_numbers  Print the free field numbers of the
      messages
                                    defined in the given proto files. Groups
      share
                                    the same field number space with the
      parent
                                    message. Extension ranges are counted as
                                    occupied fields numbers.
      
        --plugin=EXECUTABLE         Specifies a plugin executable to use.
                                    Normally, protoc searches the PATH for
                                    plugins, but you may specify additional
                                    executables not in the path using this
      flag.
                                    Additionally, EXECUTABLE may be of the
      form
                                    NAME=PATH, in which case the given plugin
      name
                                    is mapped to the given executable even if
                                    the executable's own name differs.
        --cpp_out=OUT_DIR           Generate C++ header and source.
        --csharp_out=OUT_DIR        Generate C# source file.
        --java_out=OUT_DIR          Generate Java source file.
        --javanano_out=OUT_DIR      Generate Java Nano source file.
        --js_out=OUT_DIR            Generate JavaScript source.
        --objc_out=OUT_DIR          Generate Objective C header and source.
        --python_out=OUT_DIR        Generate Python source file.
        --ruby_out=OUT_DIR          Generate Ruby source file.
      ```
      
      * After:
      ```shell
      $ protoc --help | grep cpp
        --plugin=EXECUTABLE         Specifies a plugin executable to use.
                                    Normally, protoc searches the PATH for
                                    plugins, but you may specify additional
                                    executables not in the path using this
      flag.
                                    Additionally, EXECUTABLE may be of the
      form
                                    NAME=PATH, in which case the given plugin
      name
                                    is mapped to the given executable even if
                                    the executable's own name differs.
        --cpp_out=OUT_DIR           Generate C++ header and source.
        --csharp_out=OUT_DIR        Generate C# source file.
        --java_out=OUT_DIR          Generate Java source file.
        --javanano_out=OUT_DIR      Generate Java Nano source file.
        --js_out=OUT_DIR            Generate JavaScript source.
        --objc_out=OUT_DIR          Generate Objective C header and source.
        --python_out=OUT_DIR        Generate Python source file.
        --ruby_out=OUT_DIR          Generate Ruby source file.
      ```
      769b6935
  2. 07 Mar, 2017 2 commits
  3. 06 Mar, 2017 3 commits
  4. 03 Mar, 2017 3 commits
  5. 02 Mar, 2017 5 commits
  6. 01 Mar, 2017 6 commits
  7. 28 Feb, 2017 8 commits
  8. 27 Feb, 2017 2 commits
  9. 24 Feb, 2017 5 commits
  10. 23 Feb, 2017 5 commits