1*4d495c6eSApple OSS Distributions#!/usr/bin/env python3 2*4d495c6eSApple OSS Distributionsimport sys 3*4d495c6eSApple OSS Distributionsimport os 4*4d495c6eSApple OSS Distributions 5*4d495c6eSApple OSS Distributionstemplate = '''#!/bin/zsh 6*4d495c6eSApple OSS Distributionstests=( 7*4d495c6eSApple OSS DistributionsTEST_TARGETS 8*4d495c6eSApple OSS Distributions) 9*4d495c6eSApple OSS Distributions 10*4d495c6eSApple OSS Distributionss_dir=${0:A:h} 11*4d495c6eSApple OSS Distributionsfor file in ${tests[@]}; do 12*4d495c6eSApple OSS Distributions file_path=$s_dir/$file 13*4d495c6eSApple OSS Distributions echo "Running $file_path ..." 14*4d495c6eSApple OSS Distributions if [[ -f $file_path ]]; then 15*4d495c6eSApple OSS Distributions $file_path > /dev/null 2>/dev/null 16*4d495c6eSApple OSS Distributions ret=$? 17*4d495c6eSApple OSS Distributions if [[ $ret -eq 0 ]]; then 18*4d495c6eSApple OSS Distributions print -P "%F{green}*** PASS%f" 19*4d495c6eSApple OSS Distributions else 20*4d495c6eSApple OSS Distributions print -P "%F{red}*** FAILED: $file_path%f" 21*4d495c6eSApple OSS Distributions fi 22*4d495c6eSApple OSS Distributions else 23*4d495c6eSApple OSS Distributions print -P "%F{yellow}*** Missing%f" 24*4d495c6eSApple OSS Distributions fi 25*4d495c6eSApple OSS Distributionsdone 26*4d495c6eSApple OSS Distributions''' 27*4d495c6eSApple OSS Distributions 28*4d495c6eSApple OSS Distributionsdef main(): 29*4d495c6eSApple OSS Distributions targets_s = sys.argv[1] 30*4d495c6eSApple OSS Distributions output = sys.argv[2] 31*4d495c6eSApple OSS Distributions output_list = sys.argv[3] 32*4d495c6eSApple OSS Distributions 33*4d495c6eSApple OSS Distributions targets = targets_s.strip().split(' ') 34*4d495c6eSApple OSS Distributions target_lines = '\n'.join([('"' + t + '"') for t in targets]) 35*4d495c6eSApple OSS Distributions s = template.replace('TEST_TARGETS', target_lines) 36*4d495c6eSApple OSS Distributions open(output, 'w').write(s) 37*4d495c6eSApple OSS Distributions print(f"wrote {output}") 38*4d495c6eSApple OSS Distributions 39*4d495c6eSApple OSS Distributions open(output_list, 'w').write('\n'.join(targets) + '\n') 40*4d495c6eSApple OSS Distributions print(f"wrote {output_list}") 41*4d495c6eSApple OSS Distributions 42*4d495c6eSApple OSS Distributionsif __name__ == "__main__": 43*4d495c6eSApple OSS Distributions sys.exit(main())