From bc64b853a7f5bc04f1ee3752665e79bcbb52c7ce Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Mon, 16 Nov 2015 12:25:08 +0100 Subject: New tools localvcard2rdf and localrdf2vcard. --- localvcard2rdf | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 localvcard2rdf (limited to 'localvcard2rdf') 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 +# 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 . +# +# 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); -- cgit v1.2.3