diff options
Diffstat (limited to 'localvcard2rdf')
-rwxr-xr-x | localvcard2rdf | 56 |
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); |