-
Notifications
You must be signed in to change notification settings - Fork 1
/
analyze_ologs_dir.py
144 lines (124 loc) · 4.84 KB
/
analyze_ologs_dir.py
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
import sys
import os
import config
from config import configuration
class UndoTask:
def __init__(self):
return
def get_todo_task_path(self):
return get_undo_task(0)
def finished_task_at_path(self, path):
delete_undo_task_at_path(path)
add_completed_task_at_path(path)
def add_completed_task_at_path(path):
instance_config = configuration()
root_path = instance_config.get_oringal_log_path()
toadd_task = path.replace(root_path + '\\', '')
file_completed_task_list = instance_config.get_completed_task_list_path()
try:
file_obj = open(file_completed_task_list, 'a+')
except IOError:
print '=== ERROR: OPEN FAILED!(' + file_completed_task_list + ')'
else:
print '=== ADDING COMPLETED TASK TO LIST! (' + toadd_task + ')'
toadd_task = toadd_task + '\n'
file_obj.write(toadd_task)
file_obj.close()
def read_completed_tasks_list():
completed_task_list = []
global configs
file_completed_task_list = configs.get_completed_task_list_path()
print '= READ COMPLETED TASK LIST FILE: ' + file_completed_task_list
try:
file_obj = open(file_completed_task_list, 'r')
except IOError:
print '=== ERROR: OPEN FAILED!(' + file_completed_task_list + ')'
else:
print '=== START READING!'
completed_task_list = file_obj.readlines()
file_obj.close()
print ''.join(completed_task_list)
print '=== READING COMPLETED!'
return completed_task_list
def add_undo_task(task_key, task_name):
global undo_task_dict
if undo_task_dict.has_key(task_key):
undo_task_dict[task_key].append(task_name)
else:
tasks = [task_name]
undo_task_dict[task_key] = tasks
def get_undo_task(index):
instance_config = configuration()
file_undo_task_list = instance_config.get_undo_task_list_path()
try:
file_obj = open(file_undo_task_list, 'r')
except IOError:
print '=== ERROR: OPEN FAILED!(' + file_undo_task_list + ')'
else:
for line_count, line in enumerate(file_obj):
if line_count == index:
path = os.path.join(instance_config.get_oringal_log_path(), line).strip('\n')
print 'undo task = '+ path
return path
def delete_undo_task_at_path(path):
instance_config = configuration()
root_path = instance_config.get_oringal_log_path()
todelete_task = path.replace(root_path + '\\', '')
todelete_task = todelete_task + '\n'
file_undo_task_list = instance_config.get_undo_task_list_path()
try:
file_obj = open(file_undo_task_list, 'r')
except IOError:
print '=== ERROR: OPEN FAILED!(' + file_undo_task_list + ')'
else:
lines = file_obj.readlines()
file_obj.close()
if lines.count(todelete_task)>0:
lines.remove(todelete_task)
try:
file_obj = open(file_undo_task_list, 'w')
except IOError:
print '=== ERROR: OPEN FAILED!(' + file_undo_task_list + ')'
else:
file_obj.write(''.join(lines))
file_obj.close()
def write_undo_task_list():
global configs
file_undo_task_list = configs.get_undo_task_list_path()
total_count = 0
try:
file_obj = open(file_undo_task_list, 'w+')
except IOError:
print '=== ERROR: OPEN FAILED!(' + file_undo_task_list + ')'
else:
global undo_task_dict
for key, value in undo_task_dict.items():
total_count = total_count + len(value)
print key + '\n'
for v in value:
print '\t | '+ v
task_string = '\n'.join(value) + '\n'
file_obj.writelines(task_string)
file_obj.close()
print '=== UNDO TASK LIST SAVED(TOTAL: ' + str(total_count) + ')\n'
if __name__ == '__main__':
print 'STEP 0 : READ CONFIGUARTIONS'
configs = configuration()
configs.print_configs()
undo_task_dict = {}
print '\nSTEP 1 : READ COMPLETED TASK LIST'
completed_task_list = read_completed_tasks_list()
print '\nSTEP 2 : CHECK LATEST UPLOADED TASKS'
ologs_dir = configs.get_oringal_log_path()
for root, dirs, files, in os.walk(ologs_dir, True):
for name in files:
checking_task_key = os.path.basename(root)
checking_task_name = os.path.join(checking_task_key, name)
print '= CHECKING TASK: ' + checking_task_name
checking_task_name = checking_task_name + '\n'
if completed_task_list.count(checking_task_name) == 0:
print '=== NEW TASK ---> ADDING UNDO TASK'
add_undo_task(checking_task_key, checking_task_name.strip('\n'))
print '= CHECKING COMPLETED'
print '\nSTEP 3 : SAVE UNDO TASK LIST'
write_undo_task_list()