mirror of
https://github.com/xcat2/confluent.git
synced 2024-11-25 11:01:09 +00:00
b3c49c532c
It is a good measure to prep for more heavy usage in OS deployment. While changes were being made anyway, also cut time to make an image in half.
40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
#!/usr/bin/python
|
|
# This will take a given directory and make a 'big floppy image'
|
|
# out of it, suitable for nodemedia upload.
|
|
|
|
import glob
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
def create_image(directory, image):
|
|
ents = 0
|
|
datasz = 512
|
|
for dir in os.walk(sys.argv[1]):
|
|
ents += 1
|
|
for filen in dir[2]:
|
|
ents += 1
|
|
filename = os.path.join(dir[0], filen)
|
|
currsz = os.path.getsize(filename)
|
|
# assuming up to 65k cluster
|
|
currsz = (currsz // 65536 +1) * 65536
|
|
datasz += currsz
|
|
datasz += ents * 32768
|
|
with open(image, 'wb') as imgfile:
|
|
imgfile.seek(datasz)
|
|
imgfile.write(b'\x00')
|
|
datasz = datasz // 512
|
|
subprocess.check_call(['mformat', '-i', image, '-d', '1', '-t',
|
|
str(datasz), '-s', '1','-h', '1', '::'])
|
|
cpycmd = ['mcopy', '-i', image, '-s']
|
|
cpycmd.extend(glob.glob('{0}/*'.format(directory)))
|
|
cpycmd.append('::')
|
|
subprocess.check_call(cpycmd)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
if len(sys.argv) < 3:
|
|
sys.stderr.write("Usage: {0} <directory> <imagefile>".format(
|
|
sys.argv[0]))
|
|
sys.exit(1)
|
|
create_image(sys.argv[1], sys.argv[2]) |