Removed some whitespace, minor optimizations

pull/11/head
Nicholas Hope 2022-08-11 14:56:18 -04:00
parent 1b7df6e3b2
commit 5f961b7460
1 changed files with 16 additions and 18 deletions

View File

@ -15,7 +15,7 @@ import os
import argparse import argparse
from tempfile import NamedTemporaryFile from tempfile import NamedTemporaryFile
import yaml import yaml
from platform import system as getOS, release from platform import system as OSName, OSRelease
try: try:
import winreg import winreg
@ -50,12 +50,12 @@ def writeOutput(data, className) -> dict:
""" """
global args global args
namesDict = {} # return dict namesDict = {} # return dict
# Variables # Variables
lineList = [ l.encode('utf8') for l in data.splitlines() ] lineList = [ l.encode('utf8') for l in data.splitlines() ]
fileNum = 1 fileNum = 1
bytesWritten = 0 bytesWritten = 0
# Constants # Constants
maxFileSize = 2 ** 20 # 1MiB maximum cfg file size maxFileSize = 2 ** 20 # 1MiB maximum cfg file size
filesNeeded = 1 + int( len(data)/maxFileSize ) filesNeeded = 1 + int( len(data)/maxFileSize )
@ -63,32 +63,32 @@ def writeOutput(data, className) -> dict:
print( f'DEBUG: need {filesNeeded} files for {className}', file=sys.stderr) print( f'DEBUG: need {filesNeeded} files for {className}', file=sys.stderr)
FilNedLen = len(str(filesNeeded)) FilNedLen = len(str(filesNeeded))
reservedSpace = len(f'{className}_script_{filesNeeded}.cfg') + 4
# Initialize variables
outfile = NamedTemporaryFile(prefix=className, delete=False)
# I know % formatting is old-school and pylint hates it, # I know % formatting is old-school and pylint hates it,
# but "%*d" is the easiest way to left-pad with zeros # but "%*d" is the easiest way to left-pad with zeros
# without hardcoding a number. The extra 4 bytes is just some leeway # without hardcoding a number. The extra 4 bytes is just some leeway
reservedSpace = len('%s_script_%0*d.cfg' % (className, FilNedLen, fileNum)) + 4
# Initialize the variables
outfile = NamedTemporaryFile(prefix=className, delete=False)
namesDict.update({ outfile.name: '%s_script_%0*d.cfg' % (className, FilNedLen, fileNum) }) namesDict.update({ outfile.name: '%s_script_%0*d.cfg' % (className, FilNedLen, fileNum) })
while (fileNum <= filesNeeded and len(lineList) > 0): while (fileNum <= filesNeeded and len(lineList) > 0):
line = lineList.pop(0) + '\n'.encode('utf8') line = lineList.pop(0) + '\n'.encode('utf8')
lineLen = len(line) # nice lineLen = len(line) # nice
if bytesWritten + reservedSpace + lineLen > maxFileSize: if bytesWritten + reservedSpace + lineLen > maxFileSize:
outfile.write( ('exec %s_script_%0*d' % (className, FilNedLen, fileNum)).encode('utf8') ) outfile.write( ('exec %s_script_%0*d' % (className, FilNedLen, fileNum+1)).encode('utf8') )
bytesWritten += reservedSpace bytesWritten += reservedSpace
if args.debug: if args.debug:
print( f'DEBUG: Wrote {bytesWritten} bytes to {className} ({fileNum}/{filesNeeded})', file=sys.stderr) print( f'DEBUG: Wrote {bytesWritten} bytes to {className} ({fileNum}/{filesNeeded})', file=sys.stderr)
outfile.close() outfile.close()
outfile = NamedTemporaryFile(prefix=className, delete=False) outfile = NamedTemporaryFile(prefix=className, delete=False)
fileNum += 1 fileNum += 1
namesDict.update({ outfile.name: '%s_script_%0*d.cfg' % (className, FilNedLen, fileNum) }) namesDict.update({ outfile.name: '%s_script_%0*d.cfg' % (className, FilNedLen, fileNum) })
bytesWritten = 0 bytesWritten = 0
outfile.write(line) outfile.write(line)
bytesWritten += lineLen bytesWritten += lineLen
@ -106,7 +106,7 @@ def parseConfig(config):
if os.path.isdir(targetDir) == False: if os.path.isdir(targetDir) == False:
os.mkdir(targetDir) os.mkdir(targetDir)
if args.debug: if args.debug:
print(f"DEBUG: Created", file=sys.stderr) print( f"DEBUG: Created directory {targetDir}", file=sys.stderr)
tempsAndReals = {} tempsAndReals = {}
@ -144,9 +144,7 @@ def parseCLI():
return parser return parser
def main(): def main():
""" """ Command line interface. """
Command line interface.
"""
global args global args
global targetDir global targetDir
parser = parseCLI() parser = parseCLI()
@ -155,9 +153,9 @@ def main():
if args.directory is not None: if args.directory is not None:
targetDir = args.directory targetDir = args.directory
else: else:
systemName = getOS() systemName = OSName()
if systemName == "Darwin": if systemName == "Darwin":
if float( '.'.join(release().split('.')[0:2]) ) >= 10.15: if float( '.'.join(OSRelease().split('.')[0:2]) ) >= 10.15:
if not args.force: if not args.force:
print( print(
"As of macOS Catalina (v10.15), 32-bit applications " "As of macOS Catalina (v10.15), 32-bit applications "