Import('env')

# Custom builder to generate file:
def builder_script_file(target, source, env):
    infile = open(source[0].abspath, 'rb')
    outfile = open(target[0].abspath, 'wb')
    for line in infile:
        line = line.rstrip(b'\r\n')
        if line.endswith(b"@TOPDIR@"):
            line = b"TOPDIR=" + source[1].get_contents()
        elif line.endswith(b"@MODPY@"):
            line = b"MODPY=" + source[2].get_contents()
        elif line.endswith(b"@PATHSEP@"):
            line = b"PATHSEP=\"" + source[3].get_contents() + b"\""
        outfile.write(line + b"\n")
    outfile.close()
    infile.close()
    # 1877 = octal 0755
    env.Execute(Chmod(str(target[0]), 1877))

env.Append(BUILDERS = {'ScriptFile': Builder(action=builder_script_file)})

if not env['wine'] and not env['wine64'] and env['PLATFORM'] == 'win32':
    bin = File('mdtpy.bat')
else:
    bin = env.ScriptFile("mdtpy.sh",
                         ["mdtpy.sh.in", env.Value(env.Dir('#').abspath),
                          env.Value(env['MODELLER_MODPY']),
                          env.Value(env['PATHSEP'])])
Return('bin')
