attic-cleanup 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -96,4 +96,22 @@ attic-cleanup new --name projects --path ~/MyProjects/CurrentProject
96
96
 
97
97
  This will generate a new shortcut. The shortcut name will be @projects and the path will be ~/MyProjects/CurrentProject
98
98
 
99
- You can always adjust shortcuts and default location in MyAttic folder.
99
+ You can always adjust shortcuts and default location in MyAttic folder.
100
+
101
+ Setting default with the 'default' command
102
+ ==========================================
103
+ attic-cleanup default ~/MyProject
104
+
105
+
106
+ This will adjust the default location for the store command to ~/MyProject instead of Desktop
107
+
108
+
109
+ Adding files to ignore
110
+ ========================
111
+ attic-cleanup ignore ~/Desktop/MyProject
112
+
113
+ This will add the path to MyProject to the ignore_files.txt file.
114
+ Every path in this file will be ignored if you try to store it (or all).
115
+ So let's say you want to store all the files that are on your desktop except the MyProject folder.
116
+ You just add it to the ignore_files.txt file or use the ignore command.
117
+ Once you try to store all the files on your Desktop, it will skip MyProjects folder.
@@ -4,6 +4,7 @@ module AtticCleanup
4
4
  # Default text for the custom_paths.txt file
5
5
  CUSTOM_FILE = "#Write all your custom paths here.
6
6
  #Or generate them with the 'attic-cleanup new' command
7
+ #Write all your custom paths like the examples, no extra spaces.
7
8
  doc #{File.join(ENV['HOME'], 'Documents')}
8
9
  pic #{File.join(ENV['HOME'], 'Pictures')}
9
10
  mus #{File.join(ENV['HOME'], 'Music')}
@@ -14,6 +15,18 @@ dow #{File.join(ENV['HOME'], 'Downloads')}"
14
15
  DEFAULT_FILE = "#Write your default location here.
15
16
  #{File.join(ENV['HOME'], 'Desktop')}"
16
17
 
18
+ # Default text for the ignore_files.txt file
19
+ IGNORE_FILE = "#Write all the files/folders you want to ignore here.
20
+ #Don't write any spaces before or after the paths, just write it like the examples.
21
+ #{File.join(ENV['HOME'], 'Desktop')}
22
+ #{File.join(ENV['HOME'], 'Documents')}
23
+ #{File.join(ENV['HOME'], 'Pictures')}
24
+ #{File.join(ENV['HOME'], 'Music')}
25
+ #{File.join(ENV['HOME'], 'Movies')}
26
+ #{File.join(ENV['HOME'], 'Downloads')}
27
+ #{File.join(ENV['HOME'], 'Dropbox')}
28
+ #{File.join(ENV['HOME'], 'MyAttic')}"
29
+
17
30
  # Checks if folder exists, if it doesn't it will be created
18
31
  def self.check_folder(value)
19
32
  if !File.directory? value
@@ -31,6 +44,8 @@ dow #{File.join(ENV['HOME'], 'Downloads')}"
31
44
  text = CUSTOM_FILE
32
45
  elsif value == MyAttic::DEFAULT
33
46
  text = DEFAULT_FILE
47
+ elsif value == MyAttic::IGNORE
48
+ text = IGNORE_FILE
34
49
  end
35
50
  w.write(text)
36
51
  end
@@ -41,11 +56,11 @@ dow #{File.join(ENV['HOME'], 'Downloads')}"
41
56
  def self.clear
42
57
  attic_folders = Dir.glob(File.join(MyAttic::ATTIC, "*"));
43
58
  attic_folders.each do |f|
44
- if f == MyAttic::CUSTOM || f == MyAttic::LOG || f == MyAttic::TODAY || f == MyAttic::DEFAULT
59
+ if f == MyAttic::CUSTOM || f == MyAttic::LOG || f == MyAttic::TODAY || f == MyAttic::DEFAULT || f == MyAttic::IGNORE
45
60
  elsif Dir[File.join(f, "/*")].empty?
46
61
  FileUtils.rm_rf(f)
47
62
  end
48
63
  end
49
64
  end
50
65
  end
51
- end
66
+ end
@@ -2,7 +2,7 @@ module AtticCleanup
2
2
  module Path
3
3
  class Custom
4
4
  attr_accessor :name, :path, :file, :line_nr
5
-
5
+
6
6
  # Gets the last line in the default_path.txt file,
7
7
  # which is the path to the default route
8
8
  def self.default
@@ -76,6 +76,19 @@ module AtticCleanup
76
76
  end
77
77
  end
78
78
 
79
+ def self.check_ignore(file)
80
+ is_file = false
81
+ lines = []
82
+ File.open(MyAttic::IGNORE, 'r') do |r|
83
+ while line = r.gets do
84
+ if line == file || line == file+"\n"
85
+ is_file = true
86
+ end
87
+ end
88
+ end
89
+ is_file
90
+ end
91
+
79
92
  # Write to the custom_paths.txt file
80
93
  def write
81
94
  File.open(@file, 'a') do |w|
@@ -83,7 +96,13 @@ module AtticCleanup
83
96
  end
84
97
  end
85
98
 
86
- def self.default(value)
99
+ def self.set_ignore(value)
100
+ File.open(MyAttic::IGNORE, 'a') do |w|
101
+ w.write("\n"+value)
102
+ end
103
+ end
104
+
105
+ def self.set_default(value)
87
106
  File.open(MyAttic::DEFAULT, 'w') do |w|
88
107
  w.write("#Write your default location here.\n#{value}")
89
108
  end
@@ -124,12 +124,14 @@ module AtticCleanup
124
124
 
125
125
  # Moves each file to the MyAttic folder
126
126
  @bundle_items.each do |b|
127
+ selected_file = File.join( location, AtticCleanup::Storage::FolderFiles.find(folder_files.all_files, b) )
127
128
  # If the file wasn't found, print error
128
129
  if AtticCleanup::Storage::FolderFiles.find(folder_files.all_files, b) == nil
129
130
  puts "File ID " + b.to_s + " was not found"
131
+ elsif AtticCleanup::Path::Custom.check_ignore(selected_file) == true
132
+ puts "Ignored #{selected_file}"
130
133
  else
131
134
  # If file was found move it, print it and record it in the log
132
- selected_file = File.join( location, AtticCleanup::Storage::FolderFiles.find(folder_files.all_files, b) )
133
135
  puts "Moving " + selected_file + " to your attic.."
134
136
  AtticCleanup::Log.save(selected_file, MyAttic::TODAY)
135
137
  FileUtils.mv(selected_file, MyAttic::TODAY)
@@ -56,9 +56,13 @@ module AtticCleanup
56
56
 
57
57
  desc "default", "Set a default path for store."
58
58
  def default(input)
59
- AtticCleanup::Path::Custom.default(input)
59
+ AtticCleanup::Path::Custom.set_default(input)
60
60
  end
61
61
 
62
+ desc "ignore", "Add a file or folder you want to ignore."
63
+ def ignore(input)
64
+ AtticCleanup::Path::Custom.set_ignore(input)
65
+ end
62
66
  desc "shortcuts", "View all available shortcuts"
63
67
  # Show all the availible shortcuts from the custom_paths.txt file
64
68
  def shortcuts
@@ -67,4 +71,4 @@ module AtticCleanup
67
71
  end
68
72
  end
69
73
  end
70
- end
74
+ end
data/lib/attic-cleanup.rb CHANGED
@@ -25,6 +25,7 @@ module MyAttic
25
25
  TODAY = File.join(ENV["HOME"], "MyAttic", Date.today.to_s)
26
26
  CUSTOM = File.join(ENV["HOME"], "MyAttic/custom_paths.txt")
27
27
  DEFAULT = File.join(ENV["HOME"], "MyAttic/default_path.txt")
28
+ IGNORE = File.join(ENV["HOME"], "MyAttic/ignore_files.txt")
28
29
  LOG = File.join(ENV["HOME"], "MyAttic/log.txt")
29
30
 
30
31
  # Checks if all the folders and files exist, also deletes any empty folders
@@ -32,6 +33,7 @@ module MyAttic
32
33
  AtticCleanup::Init.check_folder(MyAttic::TODAY)
33
34
  AtticCleanup::Init.check_file(MyAttic::DEFAULT)
34
35
  AtticCleanup::Init.check_file(MyAttic::CUSTOM)
36
+ AtticCleanup::Init.check_file(MyAttic::IGNORE)
35
37
  AtticCleanup::Init.clear
36
38
 
37
39
  # This constant is set after the initializers because it reads
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attic-cleanup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-04 00:00:00.000000000Z
12
+ date: 2011-12-05 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &70232866257560 !ruby/object:Gem::Requirement
16
+ requirement: &74494500 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70232866257560
24
+ version_requirements: *74494500
25
25
  description:
26
26
  email: kevin.van.rooijen@gmail.com
27
27
  executables:
@@ -59,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
59
59
  version: '0'
60
60
  requirements: []
61
61
  rubyforge_project:
62
- rubygems_version: 1.8.11
62
+ rubygems_version: 1.8.10
63
63
  signing_key:
64
64
  specification_version: 3
65
65
  summary: attic-cleanup is a gem to easily store your files when you need to get them