view cos/utils/makeinitrd.py @ 171:3eb9b9e2958d

Improved IR code
author Windel Bouwman
date Wed, 03 Apr 2013 22:20:20 +0200
parents 35cc54e078dd
children
line wrap: on
line source

#!/usr/bin/python

# Script for generation of an initial ramdisk that contains 
# the first programs to run.

import struct
import sys

if len(sys.argv) < 3:
   print('Usage: {0} output file1 [file2] ...'.format(sys.argv[0]))
   sys.exit(1)

outputfilename = sys.argv[1]
inputFileNames = sys.argv[2:]

with open(outputfilename, 'wb') as outputFile:
   # Amount of files:
   outputFile.write(struct.pack('<I', 0x1337babe))
   outputFile.write(struct.pack('<I', len(inputFileNames)))
   for inputFileName in inputFileNames:
      # Magic:
      outputFile.write(struct.pack('<I', 0xcafebabe))

      # Filename:
      fn = inputFileName.encode('ascii')
      outputFile.write(struct.pack('<I', len(fn)))
      outputFile.write(fn)

      # Data:
      with open(inputFileName, 'rb') as inputFile:
         data = inputFile.read()
      outputFile.write(struct.pack('<I', len(data)))
      outputFile.write(data)