diff options
-rwxr-xr-x | sbolint | 23 |
1 files changed, 20 insertions, 3 deletions
@@ -1131,7 +1131,7 @@ sub check_script { my $lineno = 0; my ($prgnam, $version, $build, $tag, $need_doinst, $slackdesc, $makepkg, $install); - my ($cdpkg, $codestart, $lint_enabled, $print_pkg_name); + my ($cdpkg, $codestart, $lint_enabled, $print_pkg_name, $pkg_type, $arch_lineno); $lint_enabled = 1; for(@lines) { @@ -1227,7 +1227,16 @@ sub check_script { # 20220312 bkw: 15.0 template if(/^[^#]*\$.*PRINT_PACKAGE_NAME/) { - $print_pkg_name = 1; + $print_pkg_name = $lineno; + } + + # 20230204 bkw: more 15.0 template + if(/^PKGTYPE=/) { + $pkg_type = $lineno; + } + + if((not defined $arch_lineno) && (/\bARCH=/)) { + $arch_lineno = $lineno; } } @@ -1255,7 +1264,15 @@ sub check_script { log_error("$file: no makepkg command found"); } - if(not defined($print_pkg_name)) { + # 20230204 bkw: better support for 15.0 template. + if(defined($print_pkg_name)) { + if((!defined $pkg_type) || ($pkg_type > $print_pkg_name)) { + log_error("$file: PKGTYPE not defined before PRINT_PACKAGE_NAME stanza (Slackware >= 15.0)"); + } + if((!defined $arch_lineno) || ($arch_lineno > $print_pkg_name)) { + log_error("$file: ARCH not defined before PRINT_PACKAGE_NAME stanza (Slackware >= 15.0)"); + } + } else { log_error("$file: missing PRINT_PACKAGE_NAME stanza (Slackware >= 15.0)"); } |