def run()

in commands/FBPrintCommands.py [0:0]


    def run(self, arguments, options):
        request = fb.evaluateInputExpression(arguments[0])
        HTTPHeaderSring = ""
        HTTPMethod = fb.evaluateExpressionValue(
            "(id)[{} HTTPMethod]".format(request)
        ).GetObjectDescription()
        URL = fb.evaluateExpressionValue(
            "(id)[{} URL]".format(request)
        ).GetObjectDescription()
        timeout = fb.evaluateExpression(
            "(NSTimeInterval)[{} timeoutInterval]".format(request)
        )
        HTTPHeaders = fb.evaluateObjectExpression(
            "(id)[{} allHTTPHeaderFields]".format(request)
        )
        HTTPHeadersCount = fb.evaluateIntegerExpression(
            "[{} count]".format(HTTPHeaders)
        )
        allHTTPKeys = fb.evaluateObjectExpression("[{} allKeys]".format(HTTPHeaders))
        for index in range(0, HTTPHeadersCount):
            key = fb.evaluateObjectExpression(
                "[{} objectAtIndex:{}]".format(allHTTPKeys, index)
            )
            keyDescription = fb.evaluateExpressionValue(
                "(id){}".format(key)
            ).GetObjectDescription()
            value = fb.evaluateExpressionValue(
                "(id)[(id){} objectForKey:{}]".format(HTTPHeaders, key)
            ).GetObjectDescription()
            if len(HTTPHeaderSring) > 0:
                HTTPHeaderSring += " "
            HTTPHeaderSring += '-H "{}: {}"'.format(keyDescription, value)
        HTTPData = fb.evaluateObjectExpression("[{} HTTPBody]".format(request))
        dataFile = None
        dataAsString = None
        if fb.evaluateIntegerExpression("[{} length]".format(HTTPData)) > 0:
            if options.embed:
                if fb.evaluateIntegerExpression(
                    "[{} respondsToSelector:@selector(base64EncodedStringWithOptions:)]".format(
                        HTTPData
                    )
                ):
                    dataAsString = fb.evaluateExpressionValue(
                        "(id)[(id){} base64EncodedStringWithOptions:0]".format(HTTPData)
                    ).GetObjectDescription()
                else:
                    print("This version of OS doesn't supports base64 data encoding")
                    return False
            elif not runtimeHelpers.isIOSDevice():
                dataFile = self.generateTmpFilePath()
                if not fb.evaluateBooleanExpression(
                    '(BOOL)[{} writeToFile:@"{}" atomically:NO]'.format(
                        HTTPData, dataFile
                    )
                ):
                    print("Can't write data to file {}".format(dataFile))
                    return False
            else:
                print(
                    'HTTPBody data for iOS Device is supported only with "--embed-data" flag'
                )
                return False

        commandString = ""
        if dataAsString is not None and len(dataAsString) > 0:
            dataFile = self.generateTmpFilePath()
            commandString += 'echo "{}" | base64 -D -o "{}" && '.format(
                dataAsString, dataFile
            )
        commandString += "curl -X {} --connect-timeout {}".format(HTTPMethod, timeout)
        if len(HTTPHeaderSring) > 0:
            commandString += " " + HTTPHeaderSring
        if dataFile is not None:
            commandString += ' --data-binary @"{}"'.format(dataFile)

        commandString += ' "{}"'.format(URL)
        print(commandString)