Line data Source code
1 : /**
2 : * @file
3 : *
4 : * @brief
5 : *
6 : * @copyright BSD License (see LICENSE.md or https://www.libelektra.org)
7 : */
8 :
9 : #include <kdb.h>
10 : #include <stdio.h>
11 :
12 0 : int main (void)
13 : {
14 0 : KeySet * ks = ksNew (0, KS_END);
15 0 : Key * key = 0;
16 :
17 0 : printf ("Generate some keys...");
18 :
19 0 : ksAppendKey (ks, keyNew ("user/sw", KEY_END)); /* a simple key */
20 :
21 0 : ksAppendKey (ks, keyNew (0)); /* an empty key */
22 :
23 0 : ksAppendKey (ks, keyNew ("system/sw", KEY_END));
24 :
25 0 : ksAppendKey (ks, keyNew ("user/tmp/ex1", KEY_VALUE, "some data", /* with a simple value */
26 : KEY_END)); /* end of args */
27 :
28 0 : ksAppendKey (ks, keyNew ("user/tmp/ex2", KEY_VALUE, "some data", /* with a simple value */
29 : KEY_MODE, 0777, /* permissions */
30 : KEY_END)); /* end of args */
31 :
32 0 : ksAppendKey (ks, keyNew ("user/tmp/ex4", KEY_BINARY, KEY_COMMENT, "value is truncated", KEY_SIZE, 7, KEY_VALUE,
33 : "some data", /* value that will be truncated to 7 bytes */
34 : KEY_UID, 0, /* root uid */
35 : KEY_END)); /* end of args */
36 :
37 0 : ksAppendKey (ks, keyNew ("user/tmp/ex5", KEY_VALUE, "some data", /* value */
38 : KEY_OWNER, "root", /* owner (not uid) is root */
39 : KEY_COMMENT, "some comment", /* a comment */
40 : KEY_END)); /* end of args */
41 :
42 0 : ksAppendKey (ks, keyNew ("user/env/alias/ls", /* a key we know we have */
43 : KEY_END)); /* do nothing more */
44 :
45 0 : ksAppendKey (ks, keyNew ("user/env/alias/ls", /* same key, to compare in output */
46 : KEY_OWNER, "root", /* set new owner (not uid) as root */
47 : KEY_COMMENT, "new comment", /* set new comment */
48 : KEY_END)); /* end of args */
49 :
50 0 : key = keyNew ("user/test//", KEY_END);
51 :
52 : /* we are providing a lot of '/' to see it being removed */
53 0 : keySetName (key, "system");
54 0 : keySetName (key, "user");
55 0 : keySetName (key, "user:aviram");
56 0 : keySetName (key, "user///abc//////def///");
57 0 : keySetName (key, "user:root///aaa//////bbb///");
58 :
59 0 : keyAddBaseName (key, "tmp");
60 0 : keyAddBaseName (key, "////ex6///exx7///");
61 0 : keySetBaseName (key, "ex8");
62 0 : keySetBaseName (key, "ex9");
63 0 : keyAddBaseName (key, "///exxx9///ex10///ex\\/11///");
64 0 : keySetBaseName (key, "ex12");
65 0 : keySetBaseName (key, "ex13///");
66 0 : ksAppendKey (ks, key);
67 :
68 0 : ksDel (ks);
69 :
70 0 : printf ("finished\n");
71 :
72 : return 0;
73 : }
|