1
0
Fork 0
dosbox-staging/scripts/msys-bash.py
Patryk Obara 3be0409d25 Update copyright line in several scripts
Use the exact formatting suggested in COPYING file.

This change is basically a pretext to trigger a new clean build in
order to check if Coverity is capable of accepting new builds for
analysis finally.
2020-01-03 17:15:25 +01:00

43 lines
1.4 KiB
Python

#!/usr/bin/python3
# Copyright (C) 2019-2020 Patryk Obara <patryk.obara@gmail.com>
# SPDX-License-Identifier: GPL-2.0-or-later
# pylint: disable=invalid-name
# pylint: disable=line-too-long
r"""
This is a wrapper for MSYS2 bash inside Windows GitHub CI environment.
Usage:
- name: Step Name
shell: python scripts\msys-bash.py {0}
run: echo "Hello"
GitHub documentation for specifying shell is here: [1], although it
leaves several VERY important details out:
- The first parameter (program name) in template shell invocation needs to be
in PATH; absolute path will result in obscure C# exception.
- Name of temporary script file ends with a hardcoded extension matching the
first parameter.
- There is some additional undocumented trickery about expansion of {0} in
template (most probably it's something about formatting strings in C#).
- For some shells, an additional first line is prepended to the temporary
script (but not for python!)
[1] https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#using-a-specific-shell
"""
import shutil
import subprocess
import sys
if __name__ == "__main__":
script_py = sys.argv[1]
script_sh = script_py + '.sh'
shutil.copy(script_py, script_sh)
bash = [r'C:\tools\msys64\usr\bin\bash', '-eo', 'pipefail', '-l']
rcode = subprocess.call(bash + [script_sh])
sys.exit(rcode)