From 27d338dec0428bc22e2838eb8641c6e0d1681e22 Mon Sep 17 00:00:00 2001
From: Jonas Smedegaard
Date: Fri, 10 May 2013 20:46:04 +0200
Subject: Include mk* scripts
---
mkall | 33 ++++++++++++++++++++++++++++
mkgit | 43 +++++++++++++++++++++++++++++++++++++
mkhtm2html-1 | 49 ++++++++++++++++++++++++++++++++++++++++++
mkhtm2html-2 | 39 +++++++++++++++++++++++++++++++++
mkhtm2html-default | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
mkhtml2md-default | 21 ++++++++++++++++++
mkmd2mdwn-default | 35 ++++++++++++++++++++++++++++++
mkpdf | 47 ++++++++++++++++++++++++++++++++++++++++
mkpdf2htm-default | 23 ++++++++++++++++++++
mkslice-1 | 24 +++++++++++++++++++++
mkslice-2 | 30 ++++++++++++++++++++++++++
mkslice-default | 25 ++++++++++++++++++++++
mktxt-default | 21 ++++++++++++++++++
mktxt2text-1 | 40 ++++++++++++++++++++++++++++++++++
mktxt2text-default | 45 ++++++++++++++++++++++++++++++++++++++
15 files changed, 538 insertions(+)
create mode 100755 mkall
create mode 100755 mkgit
create mode 100755 mkhtm2html-1
create mode 100755 mkhtm2html-2
create mode 100755 mkhtm2html-default
create mode 100755 mkhtml2md-default
create mode 100755 mkmd2mdwn-default
create mode 100755 mkpdf
create mode 100755 mkpdf2htm-default
create mode 100755 mkslice-1
create mode 100755 mkslice-2
create mode 100755 mkslice-default
create mode 100755 mktxt-default
create mode 100755 mktxt2text-1
create mode 100755 mktxt2text-default
diff --git a/mkall b/mkall
new file mode 100755
index 0000000..59b5af6
--- /dev/null
+++ b/mkall
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+# process text(s)
+
+set -e
+
+# resolve options
+eval set -- "$(getopt -s sh -o f -- "$@")"
+while true; do case "$1" in -f) force=-f; shift;; --) shift; break;; esac; done
+
+. /lib/lsb/init-functions
+
+# fetch PDF files
+./mkpdf $force "$@"
+
+# resolve stems from available PDF files if none provided
+[ "$#" -gt 0 ] || eval set -- $(ls -1 *.pdf | sed 's/.pdf$//')
+
+# run tasks - either generic or with "_$stem" suffix
+log_action_begin_msg "Apply tasks"
+for stem in "$@"; do
+# log_action_cont_msg $stem
+# for task in pdf2txt txt2text slice; do
+# for task in pdf2htm htm2html html2md md2mdwn slice; do
+ for task in pdf2htm htm2html; do
+# log_action_cont_msg $task
+# test ! -x $task-all || ./$task-all $force $stem
+ taskscript=mk$task-$stem
+ [ -x $taskscript ] || taskscript=mk$task-default
+ ./$taskscript $force $stem
+ done
+done
+log_action_end_msg $?
diff --git a/mkgit b/mkgit
new file mode 100755
index 0000000..99449a6
--- /dev/null
+++ b/mkgit
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+# create local git, and create and push to remote git
+
+set -e
+
+login=debian@source.jones.dk
+path="/srv/git/source.jones.dk/epfsug/diff"
+
+# resolve options
+eval set -- "$(getopt -s sh -o f -- "$@")"
+while true; do case "$1" in -f) force=-f; shift;; --) shift; break;; esac; done
+
+. /lib/lsb/init-functions
+
+# add suffix unless already included
+gitpath="$(dirname "$path")/$(basename "$path" .git).git"
+
+log_action_begin_msg "Publish git"
+
+# initialize local git
+log_action_cont_msg "init"
+if [ -d .git ]; then
+ if [ -n "$force" ]; then
+ log_warning_msg "purging"
+ rm -rf .git
+ else
+ log_failure_msg "local git already exist (force with -f)"
+ exit 1
+ fi
+fi
+git init
+
+# add scripts
+log_action_cont_msg "add"
+git add mk*; git commit -m "Include mk* scripts"
+
+# create and populate remote git
+log_action_cont_msg "push"
+ssh "$login" git init --bare "$gitpath" \&\& cd "$gitpath" \&\& mv hooks/post-update{.sample,} \&\& touch git-daemon-export-ok
+git push $force --all -u "$login:$gitpath" || { log_failure_msg "remote git already exist (force with -f)"; exit 1; }
+
+log_action_end_msg $?
diff --git a/mkhtm2html-1 b/mkhtm2html-1
new file mode 100755
index 0000000..6f37a46
--- /dev/null
+++ b/mkhtm2html-1
@@ -0,0 +1,49 @@
+#!/usr/bin/perl
+
+# normalize HTML
+
+use Getopt::Long;
+use File::Slurp;
+
+use strict;
+use warnings;
+
+my $force;
+GetOptions ("force|f");
+
+my $stem = shift;
+my $_ = read_file( $stem . '.htm' );
+
+# whitespace
+s/ / /mg;
+
+# page header
+s{]*;top:6[23]px;[^>]*>[^<]*
\s*}{}mg;
+
+# footnote
+foreach my $class ( map /(?<=\.)(ft\d+)(?={font-size:7px;)/mg, $_ ) {
+ s{\(
\s*]*\sclass="$class">\d+
\s*]*>\)}{}mg;
+};
+foreach my $class ( map /(?<=\.)(ft\d+)(?={font-size:6px;)/mg, $_ ) {
+ s{
]*>\(
\s*]*\sclass="$class">\d+
\s*]*>\) [^<]*
\s*}{}mg;
+};
+
+# unwrap similarly styled bolded paragraphs
+s{]*class="([^"]+)"[^>]*>[^<]+\K
\s*]*class="\1"[^>]*>}{ }mg;
+
+# headline
+s{
]*>(TITLE \S+)
\s*]*>((?:(?!
}{$1
\n$2
}mg;
+s{]*>(SECTION \S+)
\s*]*>((?:(?!
}{$1
\n$2
}mg;
+s{]*>((?:Article|ANNEX) \S+)
\s*]*>((?:(?!
}{$1
\n$2
}mg;
+s{(]*>)(\d+)\. }{
$2
\n$1}mg;
+s{]*>\(([a-z])\)
}{$1
}mg;
+s{(]*>)\(([ivx]+)\) }{
$2
\n$1}mg;
+s{]*>\(([ivx]+)\)
}{$1
}mg;
+
+# unwrap
+s{(?<=\S)-(
|\s*]*>)(?=[[:lower:]])}{}mg;
+s{\s*
\s*}{ }mg;
+
+write_file( $stem . '.html', $_ );
+
+print "DONE: $0 stem $stem\n";
diff --git a/mkhtm2html-2 b/mkhtm2html-2
new file mode 100755
index 0000000..ae18391
--- /dev/null
+++ b/mkhtm2html-2
@@ -0,0 +1,39 @@
+#!/usr/bin/perl
+
+# normalize HTML
+
+use Getopt::Long;
+use File::Slurp;
+
+use strict;
+use warnings;
+
+my $force;
+GetOptions ("force|f");
+
+my $stem = shift;
+my $_ = read_file( $stem . '.htm' );
+
+# whitespace
+s/(?: |\h)+/ /mg;
+
+# preamble
+s{.*>HAVE ADOPTED THIS REGULATION:
\s*}{}s;
+
+# page header
+s{]*;top:(?:1172|1187)px;[^>]*>(?:(?!
\s*}{}mg;
+
+# headline
+s{]*>(?:In Title \S+, the following Section \S+ is inserted:
\s*]*>)?\'?(SECTION \S+)
((?:(?!
}{$1
\n$2
}mg;
+s{]*>\'?(Article \S+)
}{$1
}mg;
+s{]*>(?:Article \S+ is replaced by the following:
\s*]*>)?\'?(Article \S+)
((?:(?!
}{$1
\n$2
}mg;
+s{]*>(Article \S+) is amended as follows:
}{$1
}mg;
+s{]*>(?:paragraph \S+ is replaced by the following:
\s*)(]*>)\'?(\d+)\. }{
$2
\n$1}mg;
+s{]*>In (Article \S+), paragraph (\S+) is replaced by the following:
\s*(]*>)\'?(\2)\. }{
$1
\n$2
\n$3}mg;
+
+# unwrap
+s{\s*
\s*}{ }mg;
+
+write_file( $stem . '.html', $_ );
+
+print "DONE: $0 stem $stem\n";
diff --git a/mkhtm2html-default b/mkhtm2html-default
new file mode 100755
index 0000000..c2589a2
--- /dev/null
+++ b/mkhtm2html-default
@@ -0,0 +1,63 @@
+#!/usr/bin/perl
+
+# normalize HTML
+
+use Getopt::Long;
+use File::Slurp;
+
+use strict;
+use warnings;
+
+my $force;
+GetOptions ("force|f");
+
+my $stem = shift;
+my $_ = read_file( $stem . '.htm' );
+
+# whitespace
+s/ / /mg;
+s{]*>\s*
\s*}{}mg;
+
+# page header
+s{]*>\s*\K(?:
]*;top:1\d{3}px;[^>]*>(?:<[bi]>)?[^<]+(?:[bi]>)?
\s*)+}{}mg;
+
+# footnote
+s{
]*>\h+
\s*(?:
]*>\S+
\s*
]*>((?:(?!
\s*)+(?=
)}{}mg;
+
+foreach my $class ( map /(?<=\.)(ft\d+)(?={font-size:7px;)/mg, $_ ) {
+ s{\(\s*]*\sclass="$class">\d+
\s*]*>\)}{}mg;
+};
+
+# document headers
+s{
.*?\s*}{}msg;
+s{\n