summaryrefslogtreecommitdiff
path: root/localvcard2rdf
diff options
context:
space:
mode:
Diffstat (limited to 'localvcard2rdf')
-rwxr-xr-xlocalvcard2rdf56
1 files changed, 56 insertions, 0 deletions
diff --git a/localvcard2rdf b/localvcard2rdf
new file mode 100755
index 0000000..33059b4
--- /dev/null
+++ b/localvcard2rdf
@@ -0,0 +1,56 @@
+#!/usr/bin/perl
+# Copyright © 2014-2015 Jonas Smedegaard <dr@jones.dk>
+# Description: Recode vCard file(s) or STDIN to RDF/Turtle on STDOUT
+#
+# 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; either version 3, or (at your option)
+# any later version.
+#
+# 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/>.
+#
+# Depends: librdf-vcard-perl librdf-trinex-serializer-mockturtlesoup-perl
+
+use strict;
+use warnings;
+
+use RDF::vCard;
+use RDF::TrineX::Serializer::MockTurtleSoup;
+
+BEGIN
+{
+ print STDERR "Reading vCard input from STDIN.\n"
+ unless @ARGV;
+}
+
+my $importer = RDF::vCard::Importer->new;
+
+unless (@ARGV) {
+ my ($lang) = split /\./, $ENV{LANG};
+ $lang =~ s/_/-/g;
+
+ local $/ = undef;
+ my $input = <>;
+
+ $importer->import_string($input, lang => $lang);
+}
+
+while (my $input = shift @ARGV) {
+ if ($input =~ /^(ftp|http|https|file):/i)
+ {
+ $importer->import_url($input);
+ }
+ else
+ {
+ $importer->import_file($input);
+ }
+}
+
+my $ser = "RDF::TrineX::Serializer::MockTurtleSoup"->new({colspace => 0});
+print $ser->serialize_model_to_string($importer->model);