r792: - changed the ldb ldif_* functions to be in the ldb_ namespace
[nivanova/samba-autobuild/.git] / source4 / lib / ldb / tools / ldbdel.c
1 /* 
2    ldb database library
3
4    Copyright (C) Andrew Tridgell  2004
5
6      ** NOTE! The following LGPL license applies to the ldb
7      ** library. This does NOT imply that all of Samba is released
8      ** under the LGPL
9    
10    This library is free software; you can redistribute it and/or
11    modify it under the terms of the GNU Lesser General Public
12    License as published by the Free Software Foundation; either
13    version 2 of the License, or (at your option) any later version.
14
15    This library is distributed in the hope that it will be useful,
16    but WITHOUT ANY WARRANTY; without even the implied warranty of
17    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18    Lesser General Public License for more details.
19
20    You should have received a copy of the GNU Lesser General Public
21    License along with this library; if not, write to the Free Software
22    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
23 */
24
25 /*
26  *  Name: ldb
27  *
28  *  Component: ldbdel
29  *
30  *  Description: utility to delete records - modelled on ldapdelete
31  *
32  *  Author: Andrew Tridgell
33  */
34
35 #include "includes.h"
36
37 static void usage(void)
38 {
39         printf("Usage: ldbdel <options> <DN...>\n");
40         printf("Options:\n");
41         printf("  -H ldb_url       choose the database (or $LDB_URL)\n");
42         printf("\n");
43         printf("Deletes records from a ldb\n\n");
44         exit(1);
45 }
46
47  int main(int argc, char * const argv[])
48 {
49         struct ldb_context *ldb;
50         int ret, i;
51         const char *ldb_url;
52         int opt;
53
54         ldb_url = getenv("LDB_URL");
55
56         while ((opt = getopt(argc, argv, "hH:")) != EOF) {
57                 switch (opt) {
58                 case 'H':
59                         ldb_url = optarg;
60                         break;
61
62                 case 'h':
63                 default:
64                         usage();
65                         break;
66                 }
67         }
68
69         if (!ldb_url) {
70                 fprintf(stderr, "You must specify a ldb URL\n\n");
71                 usage();
72         }
73
74         argc -= optind;
75         argv += optind;
76
77         if (argc < 1) {
78                 usage();
79                 exit(1);
80         }
81
82         ldb = ldb_connect(ldb_url, 0, NULL);
83         if (!ldb) {
84                 perror("ldb_connect");
85                 exit(1);
86         }
87
88         ldb_set_debug_stderr(ldb);
89
90         for (i=0;i<argc;i++) {
91                 ret = ldb_delete(ldb, argv[i]);
92                 if (ret != 0) {
93                         printf("delete of '%s' failed - %s\n", 
94                                argv[i], ldb_errstring(ldb));
95                 }
96         }
97
98         ldb_close(ldb);
99
100         return 0;
101 }