├── .gitattributes ├── .github └── workflows │ └── ci.yml ├── README ├── friday.pm └── t ├── friday.t └── not-friday.t /.gitattributes: -------------------------------------------------------------------------------- 1 | /t/* linguist-vendored 2 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | - push 4 | - pull_request 5 | jobs: 6 | main: 7 | strategy: 8 | matrix: 9 | os: 10 | - ubuntu-18.04 11 | - ubuntu-20.04 12 | runs-on: ${{matrix.os}} 13 | steps: 14 | - uses: actions/checkout@v2 15 | - name: set up APT 16 | run: | 17 | printf 'Apt::Install-Recommends "false";\n' | sudo tee -a /etc/apt/apt.conf 18 | sudo apt-get update 19 | - name: install test deps 20 | run: 21 | sudo apt-get install 22 | faketime 23 | - name: run tests 24 | run: | 25 | prove -v 26 | - name: run shellcheck 27 | run: | 28 | shellcheck t/*.t 29 | - name: check README syntax 30 | run: | 31 | pip install restructuredtext-lint pygments 32 | rst-lint --level=info --encoding=UTF-8 README 33 | 34 | # vim:ts=2 sts=2 sw=2 et 35 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | .. code:: console 2 | 3 | 4 | $ date -R 5 | Fri, 29 Nov 2019 23:52:02 +0100 6 | 7 | $ perl -c friday.pm 8 | friday.pm syntax OK 9 | 10 | ⋮ 11 | 12 | $ date -R 13 | Sat, 30 Nov 2019 00:03:06 +0100 14 | 15 | $ perl -c friday.pm 16 | syntax error at friday.pm line 12, at EOF 17 | friday.pm had compilation errors. 18 | 19 | .. vim:ts=3 sts=3 sw=3 et ft=rst 20 | -------------------------------------------------------------------------------- /friday.pm: -------------------------------------------------------------------------------- 1 | # general idea shamelessly stolen from Randal L. Schwartz: 2 | # https://www.perlmonks.org/index.pl?node_id=44722 3 | 4 | use Time::Piece; 5 | 6 | BEGIN { 7 | *f = (localtime->wdayname eq 'Fri') 8 | ? sub() {} 9 | : sub {}; 10 | } 11 | 12 | f/1;#/+ 13 | -------------------------------------------------------------------------------- /t/friday.t: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e -u 4 | echo 1..1 5 | pdir="${0%/*}/.." 6 | mod="$pdir/friday.pm" 7 | date='2019-11-29 23:52:02' 8 | xs=0 9 | out=$(faketime -f "$date" perl -MO=Deparse "$mod" 2>&1) || xs=$? 10 | sed -e 's/^/# /' <&1) || xs=$? 10 | sed -e 's/^/# /' <