This job unconditionally runs checksrc on ALL .c and .h files present in
git.
checksrc.pl: fixed to look for ".checksrc" in the same directory from
where it loads the file to check so that it an be invoked like this
Closes #14625
--- /dev/null
+# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# SPDX-License-Identifier: curl
+
+name: checksrc
+
+on:
+ # Trigger the workflow on push or pull requests, but only for the
+ # master branch
+ push:
+ branches:
+ - master
+ - '*/ci'
+ pull_request:
+ branches:
+ - master
+
+permissions: {}
+
+jobs:
+ all:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
+
+ - name: check
+ run: git ls-files "*.[ch]" | xargs -n1 ./scripts/checksrc.pl
# and since that's already handled via !checksrc! commands there is probably
# little use to add it.
sub readlocalfile {
+ my ($file) = @_;
my $i = 0;
+ my $rcfile;
- open(my $rcfile, "<", "$dir/.checksrc") or return;
+ if(($dir eq ".") && $file =~ /\//) {
+ my $ldir;
+ if($file =~ /(.*)\//) {
+ $ldir = $1;
+ open($rcfile, "<", "$dir/$ldir/.checksrc") or return;
+ }
+ }
+ else {
+ open($rcfile, "<", "$dir/.checksrc") or return;
+ }
while(<$rcfile>) {
$windows_os ? $_ =~ s/\r?\n$// : chomp;
}
readskiplist();
-readlocalfile();
+readlocalfile($file);
do {
if("$wlist" !~ / $file /) {