script-examples/__relpipe_in_filesystem_script_pdf
branchv_0
changeset 28 9172bd97ae99
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/script-examples/__relpipe_in_filesystem_script_pdf	Mon Nov 11 14:42:13 2019 +0100
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+# Relational pipes
+# Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info)
+#
+# This program 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, version 3 of the License.
+#
+# This program 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 <http://www.gnu.org/licenses/>.
+
+
+# Quite dirty hack to get some information about given PDF file
+# TODO: better field names, more stable API
+# TODO: call a PDF library rather than parse output of a commandline tool with human readable output
+
+if [[ $# == 0 ]]; then
+	echo "1";
+	if [[ "x$field" == "xPages" ]]; then echo "integer";
+	elif [[ -z "${field+x}" ]]; then echo "boolean";
+	else echo "string";
+	fi
+elif [[ -f "$1" || -d "$1" ]]; then
+	info="`pdfinfo -isodates "$1"`";
+	valid=$?;
+	if [[ "x$field" == "xPages" ]]; then
+		if [[ $valid == 0 ]]; then
+			echo "$info" | grep "^$field:" | sed -E 's/[^:]+:\s+(.*)/\1/g' | tr -d '\n';
+		else
+			printf 0;
+			# exit 40; # TODO: null
+		fi
+	elif [[ -z "${field+x}" ]]; then
+		if [[ $valid == 0 ]]; then printf "true"; else printf "false"; fi
+	else
+		echo "$info" | grep "^$field:" | sed -E 's/[^:]+:\s+(.*)/\1/g' | tr -d '\n';
+	fi
+else
+	exit 40;
+fi