diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-12-06 16:38:40 -0800 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-12-06 16:38:40 -0800 |
commit | 3f6dee4764a295e70bdb06a4df43b4087542620d (patch) | |
tree | dc9acfb6bd1dc8b2f8f7cfdaf6b89de299a50cde | |
parent | e61112ffb90517553b7804082ad19ffe78818f7c (diff) | |
parent | 1044b3dd982e4d327ca1c3044bf70d12403a7f58 (diff) | |
download | vyatta-cfg-3f6dee4764a295e70bdb06a4df43b4087542620d.tar.gz vyatta-cfg-3f6dee4764a295e70bdb06a4df43b4087542620d.zip |
Merge branch 'mendocino' of vm:rel/vyatta-cfg into mendocino
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | lib/Vyatta/File.pm | 71 | ||||
-rwxr-xr-x | lib/Vyatta/Misc.pm | 2 |
3 files changed, 73 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am index 9daed20..bc4bb78 100644 --- a/Makefile.am +++ b/Makefile.am @@ -97,6 +97,7 @@ sbin_SCRIPTS += scripts/vyatta-check-typeless-node.pl sbin_SCRIPTS += scripts/vyatta-strip-migration-comments.pl share_perl5_DATA = lib/Vyatta/Config.pm +share_perl5_DATA += lib/Vyatta/File.pm share_perl5_DATA += lib/Vyatta/Misc.pm share_perl5_DATA += lib/Vyatta/Interface.pm share_perl5_DATA += lib/Vyatta/TypeChecker.pm diff --git a/lib/Vyatta/File.pm b/lib/Vyatta/File.pm new file mode 100644 index 0000000..49f5c2b --- /dev/null +++ b/lib/Vyatta/File.pm @@ -0,0 +1,71 @@ +# Module: File.pm +# File manipulation functions + +# **** License **** +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# 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. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2010 Vyatta, Inc. +# All Rights Reserved. +# **** End License **** + +package Vyatta::File; +use strict; +use warnings; + +our @EXPORT = qw(touch mkdir_p rm_rf); +our @EXPORT_OK = qw(show_error); +use base qw(Exporter); + +use Fcntl; +use File::Path qw(make_path remove_tree); + +# Change file time stamps +# if file does not exist, it is created empty +sub touch { + my $file = shift; + my $t = time; + + sysopen (my $f, $file, O_RDWR|O_CREAT) + or die "Can't touch $file: $!"; + close $f; + utime $t, $t, $file; +} + +# like mkdir -p +# Wrapper of File::Path:make_tree +sub mkdir_p { + my $path = shift; + my $err; + + make_path($path, { error => \$err } ); + + return @$err; +} + +# like rm -rf +# returns an array of errors if any (see File::Path) +sub rm_rf { + my $path = shift; + my $err; + + remove_tree($path, { error => \$err } ); + + return @$err; +} + +sub show_error { + for my $diag (@_) { + my ($f, $msg) = %$diag; + warn "$f: $msg\n"; + } +} + +1; diff --git a/lib/Vyatta/Misc.pm b/lib/Vyatta/Misc.pm index 949c6a2..a103c69 100755 --- a/lib/Vyatta/Misc.pm +++ b/lib/Vyatta/Misc.pm @@ -27,7 +27,7 @@ our @ISA = qw(Exporter); our @EXPORT = qw(getInterfaces getIP getNetAddIP get_sysfs_value is_address_enabled is_dhcp_enabled get_ipaddr_intf_hash isIpAddress is_ip_v4_or_v6 interface_description - is_local_addres); + is_local_address); our @EXPORT_OK = qw(generate_dhclient_intf_files getInterfacesIPadresses getPortRuleString); |