-
Notifications
You must be signed in to change notification settings - Fork 177
/
TODO.txt
137 lines (115 loc) · 3.93 KB
/
TODO.txt
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
Feature: trash-rm
Usage example:
> trash-list
2010-11-15 19:27:29 /home/kfrance/handbook/introduction.html
2010-11-15 19:27:25 /home/kfrance/handbook/activities.html
2011-02-21 09:23:37 /home/kfrance/dissertation/src/bad_creature.o
2011-02-21 09:23:37 /home/kfrance/dissertation/src/Color_gene.o
2011-02-21 09:23:37 /home/kfrance/dissertation/src/Perceptron.o
> trash-rm '*.o'
> trash-list
2010-11-15 19:27:29 /home/kfrance/handbook/introduction.html
2010-11-15 19:27:25 /home/kfrance/handbook/activities.html
TODO:
- add trash-rm command
x add trash-rm entry_point in setup.py
x add rm.py package to setup.py
x write test for trash-rm in entry-point
- check setup.py on Linux
- write integration test for trash-rm logic
To clean:
- describe_trash_list -> test_trash_list
How commands get the list of trashed_files?
- trash-list
- AvailableTrashDirs
- FileSystemReader
- trash-empty
- AvailableTrashDirs
- FileSystemReader
- trash-put
- GlobalTrashCan (_possible_trash_directories_for)
- _home_trash_dir
- trash_directories_for_volume
- restore-trash
- GlobalTrashCan.trashed_files
- all_info_files
- _create_trashed_file_from_info_file
- trash-rm:
- def list_files_to(self, output)
for file in files:
out.garbage(original_path, info_file, original_file)
Design todo:
- get rid of logging package
- get rid of TrashDirectory.info_dir and files_dir properties
- remove all the duplication
- all_info_files, trashed_files and for_all_trashed_files
- restore the stress test for persist trashinfo (not sure)
- remove NullReporter if not used
- get rid of TrashInfo abstraction
- get rid of TimeUtils.parse_iso8601 if not used
- rename remove_file in to remove_existing_file
- refactor TrashPutCmd for simplicity
TrashPutCmd dependencies:
- stderr
- stdout
- environ
- (internal) reporter
- (internal) GlobalTrashCan
- (internal) Logger
GlobalTrashCan dependencies:
- environ
- reporter
- getuid
- list_mount_points
- datetime.now
TrashDirectory collaborators:
- os.path.normpath
- os.path.basename
- os.path.abspath
- os.path.exists
- os.path.join
- os.path.isabs
- os.chmod
- os.open/os.write/os.close
- TrashInfo
- TrashedFile
- datetime
- shutil.move
GlobalTrashCan responsibilies:
- enumerates possible TrashDirectories for a file to be trashed
- enumerates all trashed files
- trash a file in the right location
- knows when a file should be skipped
- knows when a file can be trashed in a TrashDir
- enumerates all TrashDir of a Volume
- compose method 1 and method 2 TrashDir
Features backlog:
- trash-list should handle .trashinfo from home trashdir that contains
relative path
- trash-list should print also the orphan files
- support alias rmdir=trash-put
- don't use world writable trash
- enable trash-put home fallback
- trash-empty removes files until a certain amount of space has been restored
- trash-list --raw
- trash-list <directory-name>
- trash-list -R <directory-name> # recursive
- trash-restore <path> # restore the newest
- trash-restore <path> <dest> # restore to a certain destination
- trash-restore --trashed-on="Apr 15, 08" <path>
- trash-restore --version
- trash-empty --from=/.Trash
- trash-rm '*.o'
- trash-empty should empty even the mac trash directory
Test to be ported to nosetests:
- trash-put:
- trash in home trashcan
- print version
- trash in volume trashcan 1
- trash in volume trashcan 2
- it should trash to $topdir/.Trash-UID when $topdir/.Trash is not suitable
- when $topdir/.Trash does not exists
- when $topdir/.Trash is a symlink
- when $topdir/.Trash is not sticky
- should refuse to create the $topdir/.Trash/$uid directory if the
$topdir/.Trash is not sticky