Initial upload: curl-to-code-converter CLI tool
Some checks failed
CI / test (push) Has been cancelled
Some checks failed
CI / test (push) Has been cancelled
This commit is contained in:
75
curl_to_code_converter/__main__.py
Normal file
75
curl_to_code_converter/__main__.py
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
"""
|
||||||
|
cURL to Code Converter
|
||||||
|
|
||||||
|
A CLI tool that converts cURL commands into code snippets in various programming languages.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import sys
|
||||||
|
from curl_to_code_converter.parser import CurlParser
|
||||||
|
from curl_to_code_converter.generators import CodeGenerators
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description="Convert cURL commands to code snippets in various languages",
|
||||||
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||||
|
epilog="""
|
||||||
|
Examples:
|
||||||
|
%(prog)s 'curl https://api.example.com/data'
|
||||||
|
%(prog)s 'curl -X POST https://api.example.com -d "{\"key\":\"value\"}"' -l python
|
||||||
|
%(prog)s 'curl -H "Authorization: Bearer token" https://api.example.com' -l javascript
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"curl_command",
|
||||||
|
help="The cURL command to convert"
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-l", "--language",
|
||||||
|
choices=["python", "javascript", "go", "ruby", "php", "java"],
|
||||||
|
default="python",
|
||||||
|
help="Target programming language (default: python)"
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-o", "--output",
|
||||||
|
help="Output file path (optional)"
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-v", "--verbose",
|
||||||
|
action="store_true",
|
||||||
|
help="Show verbose output"
|
||||||
|
)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
try:
|
||||||
|
curl_parser = CurlParser(args.curl_command)
|
||||||
|
parsed_data = curl_parser.parse()
|
||||||
|
|
||||||
|
if args.verbose:
|
||||||
|
print(f"Parsed cURL command:")
|
||||||
|
print(f" URL: {parsed_data.url}")
|
||||||
|
print(f" Method: {parsed_data.method}")
|
||||||
|
print(f" Headers: {parsed_data.headers}")
|
||||||
|
print(f" Data: {parsed_data.data}")
|
||||||
|
print(f" Auth: {parsed_data.auth}")
|
||||||
|
print()
|
||||||
|
|
||||||
|
generators = CodeGenerators()
|
||||||
|
code = generators.generate(parsed_data, args.language)
|
||||||
|
|
||||||
|
if args.output:
|
||||||
|
with open(args.output, 'w') as f:
|
||||||
|
f.write(code)
|
||||||
|
print(f"Code written to {args.output}")
|
||||||
|
else:
|
||||||
|
print(code)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error: {e}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user