From 177c2d77cf13b31aaf9ac2e09bece105c379537e Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Fri, 6 Jan 2017 00:32:41 +0300 Subject: Initial version 0.1.0 --- README.md | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..a31f94d --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +ldapply +======= + +[LDIF](https://www.ietf.org/rfc/rfc2849.txt) idempotent apply tool. +This tool is similar to `ldapmodify` with one exception: it's idempotent. +It was written to help declarative deployments with [NixOS](http://nixos.org/). + + +How it works +============ + +1. If change type is not specified, it adds or replaces an entry. +2. If change type is specified, it acts like normal `ldapmodify`. + + +Requirements +============ + +`ldapply` is written in Haskell with [GHC](http://www.haskell.org/ghc/). +All required Haskell libraries are listed in [ldapply.cabal](ldapply.cabal). +Use [cabal-install](http://www.haskell.org/haskellwiki/Cabal-Install) to fetch +and build all pre-requisites automatically. + + +Usage +===== + +Type `ldapply --help` to see usage summary: + + Usage: + ldapply [options] LDIF... + + Options: + -H LDAP URL to connect to [default: ldapi:///] + + -h, --help Show this message + + +LDIF example +============ + +```LDIF +dn: dc=nodomain +objectClass: top +objectClass: dcObject +objectClass: organization +dc: nodomain +o: Example, Inc. + +dn: cn=reader,dc=nodomain +objectclass: top +objectclass: organizationalRole +objectclass: simpleSecurityObject +cn: reader +description: Initial description +userPassword: qwerty123lol + +# description will be removed, userPassword changed: +dn: cn=reader,dc=nodomain +objectclass: top +objectclass: simpleSecurityObject +objectclass: organizationalRole +cn: reader +userPassword: foobar12345 + +# userPassword will be changed: +dn: cn=reader,dc=nodomain +changetype: modify +replace: userPassword +userPassword: anothersecretstuff + +dn: cn=reader,dc=nodomain +changetype: modify +replace: description +description: foo +``` + -- cgit v1.2.3