Changeset 17845 for trunk/Nebulous
- Timestamp:
- May 28, 2008, 5:59:30 PM (18 years ago)
- Location:
- trunk/Nebulous
- Files:
-
- 3 edited
-
Changes (modified) (1 diff)
-
bin/neb-xattr (modified) (3 diffs)
-
lib/Nebulous/Util.pm (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous/Changes
r17765 r17845 2 2 3 3 0.09 4 - move print_all_xattrs(), print_xattrs(), write_xattrs(), delete_xattrs(), 5 and parse_xattr_pair() from neb-xattr into Nebulous::Util 4 6 - change replicate() to report when it fails to cleanup (after a failure) 5 7 - add neb-xattr util -
trunk/Nebulous/bin/neb-xattr
r17814 r17845 3 3 # Copyright (C) 2008 Joshua Hoblitt 4 4 # 5 # $Id: neb-xattr,v 1. 7 2008-05-27 21:03:50 jhoblitt Exp $5 # $Id: neb-xattr,v 1.8 2008-05-29 03:59:30 jhoblitt Exp $ 6 6 7 7 use strict; … … 12 12 13 13 use Nebulous::Client; 14 use Nebulous::Util 0.02 qw( :standard ); 14 15 15 16 use Getopt::Long qw( GetOptions :config auto_help auto_version ); … … 67 68 exit(0); 68 69 69 sub print_all_xattrs70 {71 my ($neb, $key) = @_;72 73 return unless defined $neb;74 return unless defined $key;75 76 my $xattr_names = $neb->listxattr($key) or die $neb->err;77 foreach my $name (@$xattr_names) {78 print_xattrs($neb, $key, $name) or return;79 }80 81 return 1;82 }83 84 85 sub print_xattrs86 {87 my ($neb, $key, @xattr_names) = @_;88 89 return unless defined $neb;90 return unless defined $key;91 return unless scalar @xattr_names;92 93 foreach my $arg (@xattr_names) {94 my ($name, $value) = parse_xattr_pair($arg);95 die "can not process $arg because it is in name:value form"96 if defined $value;97 $value = $neb->getxattr($key, $name) or die $neb->err;98 print "$name:$value\n";99 }100 101 return 1;102 }103 104 105 sub write_xattrs106 {107 my ($neb, $key, @xattr_pairs) = @_;108 109 return unless defined $neb;110 return unless defined $key;111 return unless scalar @xattr_pairs;112 113 foreach my $arg (@xattr_pairs) {114 my ($name, $value) = parse_xattr_pair($arg);115 die "can not process $arg because it is not in name:value form"116 unless defined $name and defined $value;117 die "xattr name: $name is not in to the form user.name"118 unless $name =~ /^user\./;119 $neb->setxattr($key, $name, $value, "replace")120 or die $neb->err;121 }122 123 return 1;124 }125 126 127 sub delete_xattrs128 {129 my ($neb, $key, @xattr_names) = @_;130 131 return unless defined $neb;132 return unless defined $key;133 return unless scalar @xattr_names;134 135 foreach my $arg (@xattr_names) {136 my ($name, $value) = parse_xattr_pair($arg);137 die "can not process $arg because it is in name:value form"138 if defined $value;139 $neb->removexattr($key, $name)140 or die $neb->err;141 }142 143 return 1;144 }145 146 147 sub parse_xattr_pair148 {149 my $pair = shift;150 151 return unless defined $pair;152 153 no warnings qw( uninitialized );154 my ($name, $value) = split(/:/, $pair);155 use warnings;156 157 return ($name, $value);158 }159 70 160 71 -
trunk/Nebulous/lib/Nebulous/Util.pm
r17073 r17845 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: Util.pm,v 1.1 1 2008-03-20 23:21:58jhoblitt Exp $3 # $Id: Util.pm,v 1.12 2008-05-29 03:59:30 jhoblitt Exp $ 4 4 5 5 package Nebulous::Util; … … 8 8 use warnings FATAL => qw( all ); 9 9 10 our $VERSION = '0.0 1';10 our $VERSION = '0.02'; 11 11 12 12 use base qw( Exporter ); … … 24 24 _open_uri 25 25 parse_neb_key 26 print_xattrs 27 print_all_xattrs 28 write_xattrs 29 delete_xattrs 30 parse_xattr_pair 26 31 ); 27 32 … … 39 44 ); 40 45 46 41 47 sub _nuke_file { 42 48 my $path = shift; … … 51 57 } 52 58 59 53 60 sub _get_file_path { 54 61 my $uri = shift; … … 58 65 return $path; 59 66 } 67 60 68 61 69 sub _get_filehandle { … … 70 78 } 71 79 80 72 81 sub _open_uri { 73 82 my ( $uri , $flags ) = @_; … … 81 90 82 91 92 sub print_all_xattrs 93 { 94 my ($neb, $key) = @_; 95 96 return unless defined $neb; 97 return unless defined $key; 98 99 my $xattr_names = $neb->listxattr($key) or die $neb->err; 100 foreach my $name (@$xattr_names) { 101 print_xattrs($neb, $key, $name) or return; 102 } 103 104 return 1; 105 } 106 107 108 sub print_xattrs 109 { 110 my ($neb, $key, @xattr_names) = @_; 111 112 return unless defined $neb; 113 return unless defined $key; 114 return unless scalar @xattr_names; 115 116 foreach my $arg (@xattr_names) { 117 my ($name, $value) = parse_xattr_pair($arg); 118 die "can not process $arg because it is in name:value form" 119 if defined $value; 120 $value = $neb->getxattr($key, $name) or die $neb->err; 121 print "$name:$value\n"; 122 } 123 124 return 1; 125 } 126 127 128 sub write_xattrs 129 { 130 my ($neb, $key, @xattr_pairs) = @_; 131 132 return unless defined $neb; 133 return unless defined $key; 134 return unless scalar @xattr_pairs; 135 136 foreach my $arg (@xattr_pairs) { 137 my ($name, $value) = parse_xattr_pair($arg); 138 die "can not process $arg because it is not in name:value form" 139 unless defined $name and defined $value; 140 die "xattr name: $name is not in to the form user.name" 141 unless $name =~ /^user\./; 142 $neb->setxattr($key, $name, $value, "replace") 143 or die $neb->err; 144 } 145 146 return 1; 147 } 148 149 150 sub delete_xattrs 151 { 152 my ($neb, $key, @xattr_names) = @_; 153 154 return unless defined $neb; 155 return unless defined $key; 156 return unless scalar @xattr_names; 157 158 foreach my $arg (@xattr_names) { 159 my ($name, $value) = parse_xattr_pair($arg); 160 die "can not process $arg because it is in name:value form" 161 if defined $value; 162 $neb->removexattr($key, $name) 163 or die $neb->err; 164 } 165 166 return 1; 167 } 168 169 170 sub parse_xattr_pair 171 { 172 my $pair = shift; 173 174 return unless defined $pair; 175 176 no warnings qw( uninitialized ); 177 my ($name, $value) = split(/:/, $pair); 178 use warnings; 179 180 return ($name, $value); 181 } 182 183 83 184 1; 84 185
Note:
See TracChangeset
for help on using the changeset viewer.
