sforkowany z mirror/meshtastic-firmware
52 wiersze
1.1 KiB
Python
52 wiersze
1.1 KiB
Python
|
#!/usr/bin/env python3
|
||
|
import getopt
|
||
|
import sys
|
||
|
import os
|
||
|
from littlefs import LittleFS
|
||
|
from pathlib import Path
|
||
|
|
||
|
print( "Building LittleFS image..." )
|
||
|
|
||
|
argList = sys.argv[1:]
|
||
|
arxx = { argList[i]: argList[i+1] for i in range(0, len(argList)-1, 2) }
|
||
|
|
||
|
dataPath = arxx["-c"]
|
||
|
blockSize = int(arxx["-b"])
|
||
|
blockCount = int(arxx["-s"]) / blockSize
|
||
|
|
||
|
cwd = os.getcwd()
|
||
|
|
||
|
os.chdir(dataPath)
|
||
|
|
||
|
fileList = []
|
||
|
dirList = []
|
||
|
|
||
|
for (dirpath, dirnames, filenames) in os.walk('.'):
|
||
|
for f in filenames:
|
||
|
if (f[:1] != '.'):
|
||
|
fileList.append( os.path.join(dirpath, f) )
|
||
|
for d in dirnames:
|
||
|
if (d[:1] != '.'):
|
||
|
dirList.append( os.path.join(dirpath, d) )
|
||
|
|
||
|
fs = LittleFS(block_size=blockSize, block_count=blockCount) # create a 448kB partition
|
||
|
|
||
|
for curDir in dirList:
|
||
|
print( "Creating dir " + curDir )
|
||
|
fs.mkdir( curDir )
|
||
|
|
||
|
for curFile in fileList:
|
||
|
print( "Adding file " + curFile )
|
||
|
with open( curFile, 'rb' ) as f:
|
||
|
data = f.read()
|
||
|
|
||
|
with fs.open( curFile, 'wb') as fh:
|
||
|
fh.write( data )
|
||
|
|
||
|
outName = argList[-1]
|
||
|
|
||
|
os.chdir(cwd)
|
||
|
|
||
|
with open(outName, 'wb') as fh:
|
||
|
fh.write(fs.context.buffer)
|