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