-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcli.py
120 lines (104 loc) · 5.04 KB
/
cli.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import os
from FormatFusion import reader
from FormatFusion import csv_to_json, csv_to_xml, csv_to_yaml
from FormatFusion import json_to_csv, json_to_xml, json_to_yaml
from FormatFusion import xml_to_csv, xml_to_json, xml_to_yaml
from FormatFusion import yaml_to_csv, yaml_to_json, yaml_to_xml
import argparse
banner = """
.--.._ _..--.
/ _.-'''-. `-._ \\
| | |
| F O R M A T | F U S I O N |
| | |
\\ `-._.-' `-._/ /
`.-----.---...---.-----'
By: Wahyu Krisna Aji
version 0.2.x
"""
def convert_file(input_file, output_file):
"""
Mengubah file dari format input ke format output.
Args:
input_file (str): Jalur file input.
output_file (str): Jalur file output.
Returns:
None.
"""
if not os.path.exists(input_file):
print(f"File input '{input_file}' not found.")
content = reader.read_file(input_file)
if content is False:
print("Unsupported file input format.")
input_format = reader.validate_format(input_file)
if input_format is False:
print("Unsupported file input format.")
else:
output_format = reader.validate_format(output_file)
if output_format is False:
print("Unsupported file output format.")
else:
if input_format == "csv" and output_format == "json":
converted_data = csv_to_json.csv_to_json(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
elif input_format == "csv" and output_format == "xml":
converted_data = csv_to_xml.csv_to_xml(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
elif input_format == "csv" and output_format == "yaml":
converted_data = csv_to_yaml.csv_to_yaml(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
elif input_format == "json" and output_format == "csv":
converted_data = json_to_csv.json_to_csv(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
elif input_format == "json" and output_format == "xml":
converted_data = json_to_xml.json_to_xml(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
elif input_format == "json" and output_format == "yaml":
converted_data = json_to_yaml.json_to_yaml(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
elif input_format == "xml" and output_format == "csv":
converted_data = xml_to_csv.xml_to_csv(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
elif input_format == "xml" and output_format == "json":
converted_data = xml_to_json.xml_to_json(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
elif input_format == "xml" and output_format == "yaml":
converted_data = xml_to_yaml.xml_to_yaml(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
elif input_format == "yaml" and output_format == "csv":
converted_data = yaml_to_csv.yaml_to_csv(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
elif input_format == "yaml" and output_format == "json":
converted_data = yaml_to_json.yaml_to_json(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
elif input_format == "yaml" and output_format == "xml":
converted_data = yaml_to_xml.yaml_to_xml(content)
reader.save_file(output_file, converted_data)
print(f"Converting {input_file} into {output_file} is success")
else:
print(
f"The {input_file} format or {output_file} format is not supported.")
def main():
"""
Fungsi utama CLI.
"""
print(banner)
parser = argparse.ArgumentParser(
description="Convert files to another file format.")
parser.add_argument("input_file", help="path input file.")
parser.add_argument("output_file", help="path output file.")
args = parser.parse_args()
convert_file(args.input_file, args.output_file)
if __name__ == "__main__":
main()