blob: b42aef45e52771b3257a904960224eb0d3fd93d4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
.TH ck 1 "2018-10-27" Linux "ck - the config keeper"
.SH NAME
ck \- manage configuration across the system
.SH SYNOPSIS
.B ck
.RB [ \-v | \-\-verbose ]
.RB [ \-c | \-\-config
.IR DIR ]
.IR action \ [.\|.\|.]
.br
.B ck
.RB [ version | \-\-version ]
.br
.B ck init
.I VERSION_CONTROL_DIR SECRET_DIR
.br
.B ck add
.I PROGRAM_NAME CONFIG_PATH
.RB [ \-p ]
.RB [ \-s ]
.br
.B ck delete
.IR PROGRAM_NAME | \fR{\fB\-c \ \fICONFIG_PATH\fR}
.br
.B ck list
.BR tree \ [ \-a ]
.br
.B ck list
.RB { -p \ \fIPROGRAM_NAME\fR}\fR| programs | paths \ [ \-t
.RB { plain | python | lisp } \fR]
.RB [ \-a ]
.br
.B ck list ckconf
.br
.B ck edit
.IR PROGRAM_NAME \ [ CONFIG_BASENAME ]
.br
.B ck search
.I SEARCH_TERM
.br
.B ck restore
.IR PROGRAM_NAME | \fBall
.br
.B ck help
.I action
.SH DESCRIPTION
.B ck
manages configuration files in a Linux system. To that end it provides an
.B action
based command line interface.
.P
.B ck
needs a database and an rc file to run. It also needs two
directories (stored in the rc file), the
.I VERSION_CONRTOL_DIR
and the
.IR SECRET_DIR .
This is where the configurations will end up after they are added to
.BR ck .
The
.B init
action takes care of them. For more details see the
.BR ACTIONS \ and \ FILES
sections below.
.P
In
.B ck
terms a
.I program
is an entity that has one or more
.I configs
attached to it. Each
.I program
can have exactly one
.BI primary \ config \fR.
Upon adding a
.I config
to
.BR ck ,
it is moved to the appropriate directory, and the symbolically linked
back to it's original place (\fIln -s\fR).
.P
In a later time you can sync the
.I VERSION_CONRTOL_DIR
and
.IR SECRET_DIR .
You can also
.B restore
the links given these two directories and the correspondig rc file and database.
.SH OPTIONS
Change
.B ck
behaviour using the following options. They must be present before any
.B action.
.TP
.B \-\-verbose\fR, \fB\-v
[WIP]
.br
Currently prints the log. Must be the first argument in order to work.
.TP
.B \-\-config \fIDIR\fR, \fB\-c \fIDIR
Use
.BR ckdb \ and \ ckrc
residing in
.I DIR
instead of the default
.IR ~/.ck/ .
.TP
.B \-\-version\fR, \fBversion
Print version and licence information, and quit.
.SH ACTIONS
Pass the action after any
.BR OPTIONS .
.SH EXIT STATUS
.B ck
shall return 0 if the action was completed without an error, -1 otherwise
.SH FILES
By default
.B ck
will store it's files in
.IR ~/.ck/ .
Using the
.BR \-c | --config
one can change this.
.SS "ck generated files"
.TP
.I ~/.ck/ckrc
Store the configuration values (\fIVERSION_CONTROL_DIR\fR and \fISECRET_DIR\fR).
.TP
.I ~/.ck/ckdb
SQLite3 database.
.SS "User files"
.TP
.I VERSION_CONTROL_DIR
This is where the configuration files will end up by default. It's value is set with the
.B init
action, but can be changed by editing
.IR ckrc .
.TP
.I SECRET_DIR
This is where the configuration files will end up when adding them with the -s flag. It's value is set with the
.B init
action, but can be changed by editing
.IR ckrc .
|