Ruby 2.5.0 (#2143)
[termux-packages] / scripts / lint-packages.py
CommitLineData
de357946
FF
1#!/usr/bin/env python3
2
3import os
c12c0e40 4import re
de357946
FF
5import sys
6
7def main():
8 package_dir = 'packages'
9 for pkgdir_name in sorted(os.listdir(package_dir)):
10 dir_path = package_dir + '/' + pkgdir_name
11 build_sh_path = dir_path + '/build.sh'
12 if not os.path.isfile(build_sh_path):
13 sys.exit('No build.sh file in: ' + pkgdir_name)
14 with open(build_sh_path) as build_sh:
15 lines = build_sh.readlines()
16 validate_package(pkgdir_name, lines)
17
18def validate_package(package_name, lines):
19 if len(lines) < 3:
20 print('Too few lines in package: ' + package_name)
21 return
22 if not lines[0].startswith('TERMUX_PKG_HOMEPAGE='):
23 print('The first line is not TERMUX_PKG_HOMEPAGE: ' + package_name)
24 if not lines[1].startswith('TERMUX_PKG_DESCRIPTION='):
25 print('The second line is not TERMUX_PKG_DESCRIPTION: ' + package_name)
26
27 line_number = 1
28 for line in lines:
29 if line.endswith(' \n'):
c12c0e40
FF
30 print(package_name + ': Line ' + str(line_number) + ' has trailing whitespace')
31 if line.startswith('TERMUX_PKG_REVISION='):
32 value = line[len('TERMUX_PKG_REVISION='):].strip()
33 if not re.match('[0-9]+', value):
34 print(package_name + ': strange TERMUX_PKG_REVISION value "' + value + '"')
35
de357946
FF
36 line_number += 1
37
38if __name__ == '__main__':
39 main()