parameters: (self, spec, output, output_binary, is_command_start)
docstring: Returns a shell command that runs all the postbuilds, and removes
      |output| if any of them fails. If |is_command_start| is False, then the
      returned string will start with ' && '.
docstring_summary: Returns a shell command that runs all the postbuilds, and removes
      |output| if any of them fails. If |is_command_start| is False, then the
      returned string will start with ' && '.
docstring_tokens: Returns a shell command that runs all the postbuilds and removes |output| if any of them fails . If |is_command_start| is False then the returned string will start with && .
function: def GetPostbuildCommand(self, spec, output, output_binary, is_command_start):
          """Returns a shell command that runs all the postbuilds, and removes
      |output| if any of them fails. If |is_command_start| is False, then the
      returned string will start with ' && '."""
          if not self.xcode_settings or spec["type"] == "none" or not output:
              return ""
          output = QuoteShellArgument(output, self.flavor)
          postbuilds = gyp.xcode_emulation.GetSpecPostbuildCommands(spec, quiet=True)
          if output_binary is not None:
              postbuilds = self.xcode_settings.AddImplicitPostbuilds(
                  self.config_name,
                  os.path.normpath(os.path.join(self.base_to_build, output)),
                  QuoteShellArgument(
                      os.path.normpath(os.path.join(self.base_to_build, output_binary)),
                      self.flavor,
                  ),
                  postbuilds,
                  quiet=True,
              )
  
          if not postbuilds:
              return ""
          # Postbuilds expect to be run in the gyp file's directory, so insert an
          # implicit postbuild to cd to there.
          postbuilds.insert(
              0, gyp.common.EncodePOSIXShellList(["cd", self.build_to_base])
          )
          env = self.ComputeExportEnvString(self.GetSortedXcodePostbuildEnv())
          # G will be non-null if any postbuild fails. Run all postbuilds in a
          # subshell.
          commands = (
              env
              + " ("
              + " && ".join([ninja_syntax.escape(command) for command in postbuilds])
          )
          command_string = (
              commands
              + "); G=$$?; "
              # Remove the final output if any postbuild failed.
              "((exit $$G) || rm -rf %s) " % output
              + "&& exit $$G)"
          )
          if is_command_start:
              return "(" + command_string + " && "
          else:
              return "$ && (" + command_string
function_tokens: def GetPostbuildCommand ( self , spec , output , output_binary , is_command_start ) : if not self . xcode_settings or spec [ "type" ] == "none" or not output : return "" output = QuoteShellArgument ( output , self . flavor ) postbuilds = gyp . xcode_emulation . GetSpecPostbuildCommands ( spec , quiet = True ) if output_binary is not None : postbuilds = self . xcode_settings . AddImplicitPostbuilds ( self . config_name , os . path . normpath ( os . path . join ( self . base_to_build , output ) ) , QuoteShellArgument ( os . path . normpath ( os . path . join ( self . base_to_build , output_binary ) ) , self . flavor , ) , postbuilds , quiet = True , ) if not postbuilds : return "" # Postbuilds expect to be run in the gyp file's directory, so insert an # implicit postbuild to cd to there. postbuilds . insert ( 0 , gyp . common . EncodePOSIXShellList ( [ "cd" , self . build_to_base ] ) ) env = self . ComputeExportEnvString ( self . GetSortedXcodePostbuildEnv ( ) ) # G will be non-null if any postbuild fails. Run all postbuilds in a # subshell. commands = ( env + " (" + " && " . join ( [ ninja_syntax . escape ( command ) for command in postbuilds ] ) ) command_string = ( commands + "); G=$$?; " # Remove the final output if any postbuild failed. "((exit $$G) || rm -rf %s) " % output + "&& exit $$G)" ) if is_command_start : return "(" + command_string + " && " else : return "$ && (" + command_string