Skip to content

Commit 8f04165

Browse files
committed
Make travis2sh more useful for local debugging
1 parent fdd428a commit 8f04165

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

travis2sh

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,19 @@ def main():
2222
parser.add_argument('in_yml', default='.travis.yml', nargs='?',
2323
help = 'input travis YAML file '
2424
'(default is ".travis.yml")')
25+
parser.add_argument('--no-py-env', action='store_true',
26+
help = 'omit Python virtualenv building'
27+
' and substitute env vars that usually result')
2528
parser.add_argument('--out-sh',
2629
help = 'output sh file name '
27-
'(default is input name with .sh extension)')
30+
'(default is input name with .sh extension) '
31+
'("-" means stdout)')
32+
parser.add_argument('-L', '--local', action='store_true',
33+
help = 'shortcut for "--no-py-env --out-sh -"')
2834
args = parser.parse_args()
35+
if args.local:
36+
args.out_sh = '-'
37+
args.no_py_env = True
2938
with open(args.in_yml, 'rt') as fobj:
3039
travis_dict = yaml.load(fobj)
3140
out_sh = (splitext(args.in_yml)[0] + '.sh' if args.out_sh is None
@@ -37,8 +46,19 @@ def main():
3746
warnings.warn('Could not get travis vars from file')
3847
parts += ['# install'] + get_yaml_entry(travis_dict, 'install')
3948
parts += ['# test'] + get_yaml_entry(travis_dict, 'script')
49+
if args.no_py_env:
50+
parts = [part for part in parts
51+
if not part.startswith('get_python_environment')]
52+
parts = ['# Variables usually set by `get_python_environment`',
53+
'export PIP_CMD=pip',
54+
'export PYTHON_EXE=python',
55+
'export VIRTUALENV_CMD=virtualenv'] + parts
56+
content = '\n'.join(parts)
57+
if out_sh == '-':
58+
print(content)
59+
return
4060
with open(out_sh, 'wt') as fobj:
41-
fobj.write('\n'.join(parts) + '\n')
61+
fobj.write(content)
4262
print('Written ' + out_sh)
4363

4464

0 commit comments

Comments
 (0)