#! /usr/bin/perl -w
# -*- cperl; coding: utf-8 -*-
#
# Copyright (C) by the Spot authors, see the AUTHORS file for details.
#
# This file is part of Spot, a model checking library.
#
# Spot is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Spot is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
# Check that all the directories documented in README exist, and that
# all directories listed in configure.ac are documented.
#
# Also has an option --list to print directories which are
# documented.
use strict;
use warnings;
local $\ = "\n";
my $srcdir = $ENV{srcdir} || ".";
my $tut = "$srcdir/../../doc/org/tut.org";
my $dir = "$srcdir/../../tests/python";
unless (-f $tut)
{
print STDERR "$tut not found";
exit 2;
}
open(FD, "$tut") or die "$!: cannot open $tut";
my $exit_status = 0;
my %seen;
while ()
{
if (m:/([\w-]+)\.html\]\[=([\w-]+\.ipynb)=\]\]:)
{
# print "$1 documented";
$seen{$2} = 1;
unless (-f "$dir/$2")
{
print STDERR "notebook $2 mentioned in tut.org does not exist";
$exit_status = 1;
}
if ("$1.ipynb" ne "$2")
{
print STDERR "in tut.org, notebook $2 links to $1.html";
$exit_status = 1;
}
}
}
close(FD);
open(FD, "$dir/../Makefile.am") or die "$!";
while ()
{
if (m:python/([^_][\w-]*\.ipynb):)
{
unless (exists $seen{$1})
{
print STDERR "notebook $1 is not mentioned in tut.org";
$exit_status = 1;
}
}
}
close(FD);
die "No notebook found?" if scalar(keys %seen) == 0;
exit $exit_status;