Files
ncpfs/contrib/tcl-utils/ndsexporter.pl
ncpfs archive import 82706139bf Import ncpfs 2.2.1
2026-04-28 20:39:59 +02:00

91 lines
3.1 KiB
Perl
Executable File

#!/usr/bin/perl
# ndsexporter - print a list of NDS properties for a full NDS context
# Copyright (C) 2002 by Patrick Pollet
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 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.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Revision history:
# 1.00 2002 June 06 Patrick Pollet <patrick.pollet@insa-lyon.fr>
# the program is an Perl script wrapper around ncplist to get a list of objects of a NDS class
# and ncpreadprops to retrieve a liste of NDS properties for one user
#
# exemples of uses
#./ndsexporter.pl -C PC -c "group" get the list of NDS groups in context PC
# ./ndsexporter.pl -C PC -c "volume" -A "cn,Host Server,Host Resource Name" get the selected properties for volumes in context PC
#./ndsexporter.pl -C PC -c "organizational unit" -A "ou" get the list of NDS OU in context PC
#./ndsexporter.pl -C PC -c "group" -A "cn,member" -m "/" |grep 2a get all members of group 2a.PC separated with a :
use Getopt::Std;
getopts("T:C:A:c:m:v:f:n:h",\%options);
if ($options{'h'}) {
usage();
exit (0);
}
$DEFTREE="INSA_ROOT";
$DEFCONTEXT="[root]";
$DEFSEARCH="cn";
$DEFCLASS="user";
$DEFCTN=99999999999;
$tree = $options {'T'} ? $options{'T'}:$DEFTREE;
$ctx = $options {'C'} ? $options{'C'}:$DEFCONTEXT;
$search = $options {'A'} ? $options{'A'}:$DEFSEARCH;
$class =$options {'c'} ? $options {'c'}:$DEFCLASS;
$sepv =$options {'m'} ? $options {'m'}:" ";
$sepa =$options {'f'} ? $options {'f'}:":";
$flags =$options {'v'} ? $options {'v'}:"4";
$cnt =$options {'n'} ? $options {'n'}:$DEFCNT;
$TMPFILE1="/tmp/nw2ldap.tmp1";
system("ncplist -v 4 -o \"$ctx\" -T \"$tree\" -Q -l \"$class\" |sort >$TMPFILE1");
open (F1,$TMPFILE1) || die ("$TMPFILE1 not found");
while (<F1>) {
chomp;
system("ncpreadprops -T \"$tree\" -o \"$_\" -f \"$sepa\" -m \"$sepv\" -A \"$search\" -v $flags ");
#print;
$cnt--;
last if (! $cnt);
}
close(F1);
unlink($TMPFILE1);
exit (0);
sub usage () {
print <<EOP
usage: ndsexporter.pl [options]
-h Print this help text
-c class of objects to list (default "user")
-A attribute_list One NDS attribute or a quoted & comma separated list (default "cn")
-T treename
-C context Default= root
-f character separator between attributes (default= :)
-m character separator between values of multi-valued attributes (default = space)
-v number Context DCK Flags (default 4)
-n number Limit ouput to n lines (testing)
EOP
}