IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 28, 2008, 5:59:30 PM (18 years ago)
Author:
jhoblitt
Message:

move print_all_xattrs(), print_xattrs(), write_xattrs(), delete_xattrs(), and parse_xattr_pair() from neb-xattr into Nebulous::Util

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous/bin/neb-xattr

    r17814 r17845  
    33# Copyright (C) 2008  Joshua Hoblitt
    44#
    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 $
    66
    77use strict;
     
    1212
    1313use Nebulous::Client;
     14use Nebulous::Util 0.02 qw( :standard );
    1415
    1516use Getopt::Long qw( GetOptions :config auto_help auto_version );
     
    6768exit(0);
    6869
    69 sub print_all_xattrs
    70 {
    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_xattrs
    86 {
    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_xattrs
    106 {
    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_xattrs
    128 {
    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_pair
    148 {
    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 }
    15970
    16071
Note: See TracChangeset for help on using the changeset viewer.