summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2010-12-06 16:38:40 -0800
committerStephen Hemminger <stephen.hemminger@vyatta.com>2010-12-06 16:38:40 -0800
commit3f6dee4764a295e70bdb06a4df43b4087542620d (patch)
treedc9acfb6bd1dc8b2f8f7cfdaf6b89de299a50cde
parente61112ffb90517553b7804082ad19ffe78818f7c (diff)
parent1044b3dd982e4d327ca1c3044bf70d12403a7f58 (diff)
downloadvyatta-cfg-3f6dee4764a295e70bdb06a4df43b4087542620d.tar.gz
vyatta-cfg-3f6dee4764a295e70bdb06a4df43b4087542620d.zip
Merge branch 'mendocino' of vm:rel/vyatta-cfg into mendocino
-rw-r--r--Makefile.am1
-rw-r--r--lib/Vyatta/File.pm71
-rwxr-xr-xlib/Vyatta/Misc.pm2
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);