// Adds leading zeros to a num to preserve number of digits (for alphabetization) function pad_num (num, width) str tempfilename = {"/var/tmp/tmp_pad_" @ {num}} printf {"%0" @ {width} @ "d"} {num} >! {tempfilename} openfile {tempfilename} r str padded_num_str = {readfile {tempfilename}} closefile {tempfilename} rm {tempfilename} return {padded_num_str} end // Genesis version of above function that does not have race conditions function pad_num_gen (num, width) str padded_num_str = ""; if ({num} < 10) width = {width} - 1; elif ({num} < 100) width = {width} - 2; elif ({num} < 1000) width = {width} - 3; end for (i=0; i<{width}; i=i+1) padded_num_str = {padded_num_str} @ "0"; end return {padded_num_str} @ {num} end // Compresses data file and returns new file name. // If fails, returns original filename. function compress_data_file (raw_filename) str comp_filename={strsub {raw_filename} .bin .genflac} // TODO: check if 86-84 architecture str success = {sh convertgenesis16bit-x86_64 {raw_filename} {comp_filename}} if ({success} == "0") // successfully compressed file rm {raw_filename} return {comp_filename} else echo "*** Warning: Failed to compress data file " @ {raw_filename} @ "." return {raw_filename} end end