1# -*- perl -*-
2
3#
4# Author: Slaven Rezic
5#
6# Copyright (C) 2012 Slaven Rezic. All rights reserved.
7# This package is free software; you can redistribute it and/or
8# modify it under the same terms as Perl itself.
9#
10# Mail: slaven@rezic.de
11# WWW:  http://www.rezic.de/eserte/
12#
13
14package BBBikeDir;
15
16use strict;
17use vars qw($VERSION);
18$VERSION = '0.01';
19
20use Exporter 'import';
21our @EXPORT_OK = qw(get_data_osm_directory);
22
23use BBBikeUtil qw(catfile);
24
25sub get_data_osm_directory {
26    my(%opts) = @_;
27    my $do_create = delete $opts{-create};
28    die "Unhandled options: " . join(" ", %opts) if %opts;
29
30    # XXX Note: most of this is taken from BBBike
31    my $home = $ENV{HOME};
32    my $bbbike_configdir;
33    if ($^O eq 'MSWin32') {
34	require Win32Util;
35	$home = Win32Util::get_user_folder();
36	if (-d $home) {
37	    $bbbike_configdir = catfile($home, "BBBike");
38	}
39    }
40    if (!defined $bbbike_configdir) {
41	if (!defined $home) {
42	    $home = eval { (getpwuid($<))[7] };
43	    if (!defined $home) {
44		die "Sorry, I can't find your home directory.";
45	    }
46	}
47	$bbbike_configdir = catfile($home, ".bbbike");
48    }
49    my $data_osm_directory = catfile($bbbike_configdir, 'data-osm');
50
51    if ($do_create) {
52	if (!-d $bbbike_configdir) {
53	    mkdir $bbbike_configdir;
54	}
55	if (!-d $data_osm_directory) {
56	    mkdir $data_osm_directory
57		or die "Can't create $data_osm_directory: $!";
58	}
59    }
60
61    $data_osm_directory;
62}
63
641;
65
66__END__
67