A handy shell-like interface for browsing LDAP servers and editing their content. It keeps command history, has sane autocompletes, credential caching, site-wide and individual configs, and it's fun to say. Shelldap! Shelldap! Shelldap!
Find a file
docelic@crystallabs.io 4448213735 Fix precedence of command line arguments
Previously, when autogenerating the config file, the name of config
itself was included in the YAML contents.

This in turn caused the config file to be re-parsed again and any
command line arguments were overwritten with values from the config
file.

Now the name of config file is not dumped if it is equal to the file
being written, and the config file is not reparsed if it is the same
file.

FossilOrigin-Name: 9c4483633c8bcf36f4e98ce41ab0f54ea4620a4b7f21ccf07e563e49afbe0da6
2019-04-28 20:11:46 +00:00
.hgsigs Added signature for changeset ac3c6d1057d5 2015-03-04 19:20:59 +00:00
.hgtags Added tag v1.4.0 for changeset e8af5aa8bd15 2017-06-07 22:01:14 +00:00
CHANGELOG Update changelog. 2017-06-07 22:01:09 +00:00
CONTRIBUTORS Add a "real" change log. 2016-01-13 19:14:17 +00:00
LICENSE Add LICENSE file for packaging, bump copyright. 2019-04-15 21:16:09 +00:00
Makefile Add a "real" change log. 2016-01-13 19:14:17 +00:00
README.md Add a link to the Fedora package. 2018-04-04 19:30:00 +00:00
shelldap Fix precedence of command line arguments 2019-04-28 20:11:46 +00:00

Shelldap

A handy shell-like interface for browsing LDAP servers and editing their content. It keeps command history, has sane autocompletes, credential caching, site-wide and individual configs, and it's fun to say. Shelldap! Shelldap! Shelldap!

Witness!

% shelldap 
~ > [ tab ]
~ > 
cat     clear   cp      delete  env     grep    id      ls      move    passwd  read    search  touch   whoami  
cd      copy    create  edit    exit    help    list    mkdir   mv      pwd     rm      setenv  vi      
~ > cd ou=People
ou=People,~ > cat uid=ma[ tab ]
ou=People,~ > cat uid=mahlon

dn: uid=mahlon,ou=People,dc=laika,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
objectClass: posixAccount
objectClass: shadowAccount
objectClass: apple-user
cn: Mahlon E. Smith
departmentNumber: Technology - IT
displayName: Mahlon
gecos: Mahlon E. Smith
gidNumber: 200
givenName: Mahlon
homeDirectory: /home/m/mahlon
l: Ghetto
loginShell: /bin/tcsh
mail: mahlon@martini.nu
mobile: 1+8829999005747
sn: Smith
title: Manager, Information Systems
uid: mahlon
uidNumber: 20933
userPassword: *

ou=People,~ > 

Downloads

You can download the latest script here.

It is also available via the FreeBSD ports system, OS X via macports, Debian/Ubuntu via apt, NetBSD's pkgsrc, OpenBSD ports, openSUSE's build service, and as a Fedora RPM.

Many thanks to the maintainers of these packages.

Installation

Shelldap is simply a perl script. Put it into a convenient place of your choosing.

Shelldap requires the following perl modules to function properly:

  • YAML::Syck
  • Term::Shell
  • Digest::MD5
  • Net::LDAP
  • Algorithm::Diff

Additional functionality is supported with the presence of:

  • IO::Socket::SSL
  • Authen::SASL
  • Term::ReadLine::Gnu

Development

You can also check out the source via Mercurial from the following uri:

% hg clone http://code.martini.nu/shelldap/

or via BitBucket at:

% hg clone https://bitbucket.org/mahlon/shelldap

Documentation

Once installed, Shelldap is fully documented via perldoc, and has a built-in help command as well.