1
2
3
4
5
6
7
8
9
10
11
12
13 """
14 Global constants.
15 """
16
17
18
19
20
21 z_db_version = u'0.2'
22
23 z_db_marker = u'PYBAG DB version = '
24
25 z_db_marker_len = len(z_db_marker)
26
27 z_pbls = u'pybaglink start:'
28
29 z_pble = u':pybaglink end'
30
31 z_pblmaxlen = 4096
32
33
34
35
36
37
38 P_OUTPUT = u'output'
39 P_SHOWTIPS = u'showtips'
40 P_WRITECOLSATEXIT = u'writecolsatexit'
41 P_TIPSNUMBER = u'tipsnumber'
42 P_GUI = u'GUI'
43 P_DEBUG = u'debug'
44 P_EMUL = u'emulation'
45 P_LOGGING = u'logging'
46 P_VERB = u'verbosity'
47 P_COLORIZE = u'colorize'
48 P_OUTFILTER = u'outfilter'
49
50
51
52 PYBAG_DEBUG_DEFAULT = u'0'
53
54 PYBAG_LOG_DEFAULT = u'1'
55
56 PYBAG_EMUL_DEFAULT = u'1'
57
58 PYBAG_COLORIZE_DEFAULT = u'1'
59
60 VERBOSE_DEFAULT = u'3'
61
62 CRC32BUF = 0xFFFFF
63
64 DBDUMPMAX = 500
65
66 LOOPN = 10000
67
68
69
70
71
72 TSDIRNONE = 0
73 TSDIRBAG = 1
74 TSDIRORIG = 2
75
76
77
78
79 LI_CANCEL = 0
80 LI_ERROR = 1
81 LI_PERCENT = 2
82 LI_PERCENT100 = 3
83 LI_DESC = 4
84 LI_PERCENTPART = 5
85 LI_PERCENTGLOBAL = 6
86 LI_FUN2 = 7
87 LI_UPDATEFILTER = 8
88 LI_FILTERRUNNING = 9
89 LI_THREAD = 10
90 LI_LENGTH = 11
91
92
93
94
95
96
97
98 DBPATH = 0
99
100 IBAG = 100
101 ISYNC = 200
102 IDB = 300
103
104
105
106 IFLAG = 1
107 ISIZE = 2
108 IMDATE = 3
109 ICRC32 = 4
110 IREAD = 5
111 IPATH = 6
112 ILINK = 7
113
114 DBBAGFLAG = IBAG + IFLAG
115 DBBAGSIZE = IBAG + ISIZE
116 DBBAGMDATE = IBAG + IMDATE
117 DBBAGCRC32 = IBAG + ICRC32
118 DBBAGREAD = IBAG + IREAD
119 DBBAGPATH = IBAG + IPATH
120 DBBAGLINK = IBAG + ILINK
121
122 DBDBFLAG = IDB + IFLAG
123 DBDBSIZE = IDB + ISIZE
124 DBDBMDATE = IDB + IMDATE
125 DBDBCRC32 = IDB + ICRC32
126 DBDBREAD = IDB + IREAD
127 DBDBLINK = IDB + ILINK
128 DBDBPATH = IDB + IPATH
129
130 DBORIGFLAG = ISYNC + IFLAG
131 DBORIGSIZE = ISYNC + ISIZE
132 DBORIGMDATE = ISYNC + IMDATE
133 DBORIGCRC32 = ISYNC + ICRC32
134 DBORIGREAD = ISYNC + IREAD
135 DBORIGPATH = ISYNC + IPATH
136 DBORIGLINK = ISYNC + ILINK
137
138 DBDIR = 15
139 DBSYNC = 17
140 DBCOMPARE = 18
141 DBSYMLINK = 19
142 DBDESC = 20
143 DBDIRMAN = 21
144 DBDESCMAN = 22
145 DBITEMID = 23
146 DBDIRREADED = 24
147 DBDESCREADED = 25
148 DBSYMLINKEMUL = 26
149 DBBACKUP = 27
150
151
152
153 DBBACKUPYES = True
154 DBBACKUPNO = False
155 DBREADYES = True
156 DBREADNONE = bool()
157 DBSYMEMULNONE = bool()
158 DBFLAGNONE = unicode()
159 DBFLAGDIR = u'd'
160 DBFLAGFILE = u'f'
161 DBFLAGSYMLINK = u's'
162 DBFLAGUNKNOWN = u'u'
163 DBMDATENONE = float()
164 DBNONE = int()
165 DBPATHNONE = unicode()
166 DBDESCNONE = unicode(u'Not compared.')
167 DBDESCMANNONE = unicode(u'')
168 DBDESCOK = unicode(u'Ok.')
169 DBLINKNONE = u'-'
170 DBITEMNONE = None
171
172
173
174 DBDIRNONE = DBNONE
175 DBDIRBAG = 1
176 DBDIRORIG = 2
177 DBDIRDB = 4
178 DBDIRCOPY = 8
179 DBDIRDELETE = 16
180 DBDIRWARNING = 32
181 DBDIRCONFLICT = 64
182 DBDIRERROR = 128
183 DBDIRNEW = 256
184 DBDIRUNCHANGED = 512
185 DBDIRFORCED = 1024
186 DBDIRIGNORED = 2048
187 DBDIRDIFF = 4096
188 DBDIROK = 8192
189 DBDIRRESTORE = 16384
190 DBDIRTS = 32768
191
192 DBSYNCNONE = DBNONE
193 DBSYNCERRREADBAG = 1
194 DBSYNCERRREADSYNC = 2
195 DBSYNCERRREAD = DBSYNCERRREADBAG | DBSYNCERRREADSYNC
196 DBSYNCERRWRITEBAG = 4
197 DBSYNCERRWRITESYNC = 8
198 DBSYNCERRWRITE = DBSYNCERRWRITEBAG | DBSYNCERRWRITESYNC
199 DBSYNCOK = 16
200 DBSYNCERROTHER = 32
201 DBSYNCERRCOMPARE = 64
202 DBSYNCERROR = DBSYNCERRREAD | DBSYNCERRWRITE | DBSYNCERROTHER | DBSYNCERRCOMPARE
203 DBSYNCCOMPARE = 128
204 DBSYNCIGNORED = 256
205 DBSYNCCONFLICT = 512
206
207
208
209 DBFORCEDIRNONE = 0
210 DBFORCEDIRBAG = 1
211 DBFORCEDIRORIGIN = 2
212 DBFORCEDIROLDER = 4
213 DBFORCEDIRNEWER = 8
214 DBFORCEDIRBAGALL = 16
215 DBFORCEDIRORIGINALL = 32
216 DBFORCEDIRORIGINCOPY = 64
217 DBFORCEDIRBAGCOPY = 128
218
219 BACKUPDIR = DBFORCEDIRBAGALL
220
221 Z_DBFORCE = {
222 u'no':DBFORCEDIRNONE,
223 u'bag':DBFORCEDIRBAG,
224 u'origin':DBFORCEDIRORIGIN,
225 u'newer':DBFORCEDIRNEWER,
226 u'older':DBFORCEDIROLDER,
227 u'bagall':DBFORCEDIRBAGALL,
228 u'originall':DBFORCEDIRORIGINALL,
229 u'bagcopy':DBFORCEDIRBAGCOPY,
230 u'origincopy':DBFORCEDIRORIGINCOPY,
231 }
232
233 z_action_choise = [(u"No",DBFORCEDIRNONE), (u"To bag",DBFORCEDIRBAG), (u"To origin",DBFORCEDIRORIGIN),
234 (u"Newer",DBFORCEDIRNEWER), (u"Older",DBFORCEDIROLDER),
235 (u"Newer, to bag",DBFORCEDIRNEWER | DBFORCEDIRBAG), (u"Newer, to origin",DBFORCEDIRNEWER | DBFORCEDIRORIGIN),
236 (u"Older, to bag",DBFORCEDIROLDER | DBFORCEDIRBAG), (u"Older, to origin",DBFORCEDIROLDER | DBFORCEDIRORIGIN),
237 (u"To bag all",DBFORCEDIRBAGALL), (u"To origin all",DBFORCEDIRORIGINALL), (u"To bag copy",DBFORCEDIRBAGCOPY),
238 (u"To origin copy",DBFORCEDIRORIGINCOPY),
239 ]
240
241
242
243
244 COL_NAME = 0
245 COL_HEADING = 1
246 COL_VISIBLE = 2
247 COL_WIDTH = 3
248 COL_FORMAT = 4
249
250
251
252 P_IGNORE = u'ignore'
253 P_SYMLINK = u'symlink'
254 P_COMPARE = u'compare'
255 P_BACKUP = u'backup'
256 P_SELECTDEFAULT = u'selectdefault'
257
258 P_IGNORENONE = u''
259 P_SYMLINKIGNORE = u'ignore'
260 P_SYMLINKIGNORENOEMUL = u'ignorenoemul'
261 P_SYMLINKCOPY = u'copy'
262 P_SYMLINKCOPYNOEMUL = u'copynoemul'
263 P_COMPARESTAT = u'stat'
264 P_COMPARECRC32 = u'crc32'
265 P_BACKUPYES = u'1'
266 P_BACKUPNO = u'0'
267 P_SELECTDEFAULTYES = u'1'
268 P_SELECTDEFAULTNO = u'0'
269
270 P_SYMLINK_IGNORE = (P_SYMLINKIGNORE, P_SYMLINKIGNORENOEMUL)
271 P_SYMLINK_EMUL = (P_SYMLINKIGNORE, P_SYMLINKCOPY)
272
273
274
275 z_symlink_choice = [P_SYMLINKIGNORE, P_SYMLINKIGNORENOEMUL, P_SYMLINKCOPY,
276 P_SYMLINKCOPYNOEMUL]
277
278 z_compare_choice = [P_COMPARESTAT, P_COMPARECRC32]
279
280 P_DEFIGNORE = P_IGNORENONE
281 P_DEFSYMLINK = P_SYMLINKCOPY
282 P_DEFCOMPARE = P_COMPARESTAT
283 P_DEFBACKUP = P_BACKUPNO
284 P_DEFSELECTDEFAULT = P_SELECTDEFAULTNO
285
286 DBESCAPE = u' %'
287 """Escape symbols. DBESCESC and DBSEP is autoadded in start of secuence.
288 Used in previous to 0.2.1 versions. Now used inline symbols = space only.
289 """
290
291 DBESCESC = u'#'
292
293 DBSEP = u'/'
294
295 P_MDDELTA = u'mddelta'
296 MDDELTA_DEFAULT = u'5.0'
297
298 REPORTDIR_DEFAULT = u'bonhdyfwce'
299 """Report direction filter default settings."""
300
301 REPORTFORMAT_DEFAULT = u's'
302 """Report format default."""
303
304 REPORTPATT_DEFAULT = u'!.*'
305 """Report pattern default."""
306
307 REPORTTYPE_DEFAULT = u'1234'
308 """Report type default."""
309
310 REPORTPAGE_DEFAULT = u'0'
311 """Report page size default."""
312
313 REPORTFILTER_DEFAULT = REPORTFORMAT_DEFAULT + REPORTDIR_DEFAULT + REPORTTYPE_DEFAULT
314 """Report filter default settings."""
315
316
317 O_REPORTFORMAT = {u'l':u'%(forced)s %(dir)s %(err)s [%(path)s]\n\t%(desc)s',
318 u's':u'%(forced)s %(dir)s %(err)s [%(path)s]',
319 u'p':u'\t[%(path)s]-->\n\t == "%(desc)s".'
320 }
321 """Report formats option.
322 - B{l} - Long format of report.
323 - B{s} - Short format of report.
324 - B{p} - Old (as in previous version) format.
325 - B{m} - Manual specified format.
326 - B{z00} - List report by I{n} items per page.
327 """
328
329 O_REPORTFILTER = {u'b':DBDIRBAG, u'o':DBDIRORIG,
330 u'n': DBDIRNEW, u'h':DBDIRCOPY,
331 u'd':DBDIRDELETE, u'y':DBDIRTS, u'i':DBDIRIGNORED,
332 u'u':DBDIRUNCHANGED, u'f':DBDIRFORCED,
333 u'w':DBDIRWARNING,
334 u'c':DBDIRCONFLICT, u'e':DBDIRERROR
335 }
336 """Report filter options.
337 - B{b} - Operation with direction to bag.
338 - B{o} - Operation with direction to origin.
339 - B{n} - Operation with new files.
340 - B{h} - Operation with changed (copied) files.
341 - B{d} - Operation with deleted files.
342 - B{y} - Timeshift operations.
343 - B{i} - Ignored files.
344 - B{u} - Unchanged files.
345 - B{f} - Forced action.
346 - B{w} - Warnings.
347 - B{c} - Conflicts.
348 - B{e} - Errors.
349 """
350
351 O_REPORTTYPE = {u'1':u'f',
352 u'2': u'd',
353 u'3':u's',
354 u'4': u'u'
355 }
356 """Report type options.
357 - B{1} - Files.
358 - B{2} - Directories.
359 - B{3} - Symlinks.
360 - B{4} - Unknown.
361 - B{r} - Path wilds or regexp filter. If not specified then all paths displayed.
362 """
363
364 z_backupmode = {P_BACKUPNO:DBFORCEDIRBAGCOPY, P_BACKUPYES:DBFORCEDIRBAGALL}
365 """Backup mode === direction."""
366
367 O_ACTION = [u'bag', u'origin', u'delete', u'skip', u'restore',
368 u'tsbag', u'tsorigin', u'tsreset']
369 """Available actions in cli menu."""
370
371 O_K_LIST = [u'c', u'i', u'copy', u'ignore', u'cn', u'in', u'copynoemul', u'ignorenoemul']
372 O_K_DICT = {u'c':P_SYMLINKCOPY, u'copy':P_SYMLINKCOPY,
373 u'i':P_SYMLINKIGNORE, u'ignore':P_SYMLINKIGNORE,
374 u'cn':P_SYMLINKCOPYNOEMUL, u'copynoemul':P_SYMLINKCOPYNOEMUL,
375 u'in':P_SYMLINKIGNORENOEMUL, u'ignorenoemul':P_SYMLINKIGNORENOEMUL}
376
377 O_S_LIST = [u'stat', u'crc32']
378 O_S_DICT ={u'stat':P_COMPARESTAT, u'crc32':P_COMPARECRC32}
379
380 z_db_formatlist =[
381 (DBBAGFLAG,unicode,DBFLAGNONE,u'DBBAGFLAG'),
382 (DBBAGSIZE,int,DBNONE,u'DBBAGSIZE'),
383 (DBBAGMDATE,float,DBMDATENONE,u'DBBAGMDATE'),
384 (DBBAGCRC32,int,DBNONE,u'DBBAGCRC32'),
385 (DBBAGREAD,bool,DBREADNONE,u'DBBAGREAD'),
386 (DBBAGPATH,unicode,DBPATHNONE,u'DBBAGPATH'),
387 (DBBAGLINK,unicode,DBLINKNONE,u'DBBAGLINK'),
388 (DBDBFLAG,unicode,DBFLAGNONE,u'DBDBFLAG'),
389 (DBDBSIZE,int,DBNONE,u'DBDBSIZE'),
390 (DBDBMDATE,float,DBMDATENONE,u'DBDBMDATE'),
391 (DBDBCRC32,int,DBNONE,u'DBDBCRC32'),
392 (DBDBREAD,bool,DBREADNONE,u'DBDBREAD'),
393 (DBDBPATH,unicode,DBPATHNONE,u'DBDBPATH'),
394 (DBDBLINK,unicode,DBLINKNONE,u'DBDBLINK'),
395 (DBORIGFLAG,unicode,DBFLAGNONE,u'DBORIGFLAG'),
396 (DBORIGSIZE,int,DBNONE,u'DBORIGSIZE'),
397 (DBORIGMDATE,float,DBMDATENONE,u'DBORIGMDATE'),
398 (DBORIGCRC32,int,DBNONE,u'DBORIGCRC32'),
399 (DBORIGREAD,bool,DBREADNONE,u'DBORIGREAD'),
400 (DBORIGPATH,unicode,DBPATHNONE,u'DBORIGPATH'),
401 (DBORIGLINK,unicode,DBLINKNONE,u'DBORIGLINK'),
402 (DBDIR,int,DBNONE,u'DBDIR'),
403 (DBSYNC,int,DBNONE,u'DBSYNC'),
404 (DBCOMPARE,unicode,P_DEFCOMPARE,u'DBCOMPARE'),
405 (DBSYMLINK,unicode,P_DEFSYMLINK,u'DBSYMLINK'),
406 (DBDESC,unicode,DBDESCNONE,u'DBDESC'),
407 (DBDIRMAN,int,DBNONE,u'DBDIRMAN'),
408 (DBDESCMAN,unicode,DBDESCMANNONE,u'DBDESCMAN'),
409 (DBITEMID,int,DBITEMNONE,u'DBITEMID'),
410 (DBDIRREADED,int,DBNONE,u'DBDIRREADED'),
411 (DBDESCREADED,unicode,DBDESCNONE,u'DBDESCREADED'),
412 (DBSYMLINKEMUL,bool,DBSYMEMULNONE,u'DBSYMLINKEMUL'),
413 (DBBACKUP,bool,DBBACKUPNO,u'DBBACKUP'),
414 ]
415