summaryrefslogtreecommitdiffstats
path: root/tools/scripts/file-hex-array.py
blob: f50dcd4e268a23b9607a2713fdc371a12826b3a9 (plain)
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
import binascii
import os.path
import sys

def tof(filepath):
    with open(filepath, 'r') as f:
        content = f.read()
    content = content.replace("0x","")
    content = content.split(',')
    for i in range(len(content)):
        if len(content[i]) == 1: content[i] = "0" + content[i]
    content = "".join(content)
    with open(filepath+".file", 'wb') as f:
        content = f.write(content.decode("hex"))
    print(os.path.basename(filepath)+".file created.")
    exit(0)

def toa(filepath):
    with open(filepath, 'rb') as f:
        content = f.read()
    content = binascii.hexlify(content)
    content = [content[i:i+2] for i in range(0, len(content), 2)]
    content = ",0x".join(content)
    content = "0x" + content
    content = content.replace("0x00","0x0")
    with open(filepath+".array", 'w') as f:
        content = f.write(content)
    print(os.path.basename(filepath)+".array created.")
    exit(0)

def usage():
    print("========================================================\n\
#\n\
# Usage: python file-hex-array.py [action] [option]\n\
#\n\
# Arguments:\n\
#          action ==>   toa   # convert file to array [option is file path]\n\
#                       tof   # convert array to file [option is array file path]\n\
#\n\
# Example : python file-hex-array.py toa 1.png\n\
#\n\
========================================================")
    exit(1)

if len(sys.argv) != 3:
    usage()
if sys.argv[1] == "toa" and os.path.isfile(sys.argv[2]):
    toa(sys.argv[2])
elif sys.argv[1] == "tof" and os.path.isfile(sys.argv[2]):
    tof(sys.argv[2])
else:
    usage()