file-stash 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig ADDED
Binary file
data/Manifest ADDED
@@ -0,0 +1,8 @@
1
+ Manifest
2
+ README.markdown
3
+ Rakefile
4
+ bin/stash
5
+ lib/stash.rb
6
+ man/stash
7
+ man/stash.ronn
8
+ man/stash.txt
data/README.markdown ADDED
@@ -0,0 +1,25 @@
1
+ stash(1) -- UNIX File Stasher
2
+ =============================
3
+
4
+ ## NAME
5
+
6
+ stash -- store unused files in a configurable location
7
+
8
+ ## SYNOPSIS
9
+
10
+ `stash` [--message MSG] [--stash PATH] FILES
11
+
12
+ ## DESCRIPTION
13
+
14
+ Stash gets rid of files you are no longer interested in. Pass it a list of
15
+ files and it will move them to the path specified by the `STASH_PATH`
16
+ environment variable, or `~/.stash` by default. It places the files listed in a
17
+ folder based upon the current time within the stash.
18
+
19
+ You may specify an optional message with the `-m` or `--message` parameter.
20
+
21
+ stash -m "Old css for TwitterClone" public/stylesheets/*.css cache/*.css
22
+
23
+ Those files would then be relocated to a folder named something like:
24
+
25
+ /home/alexmchale/.stash/2010-09-01T19:35:01+00:00-old.css.for.twitterclone
data/Rakefile ADDED
@@ -0,0 +1,33 @@
1
+ require "rubygems"
2
+ require "rake"
3
+ require "echoe"
4
+
5
+ namespace :man do
6
+ Dir["man/*.ronn"].each do |ronn|
7
+ basename = File.basename(ronn, ".ronn")
8
+ roff = "man/#{basename}"
9
+
10
+ file roff => ["man", ronn] do
11
+ sh "ronn --roff --pipe #{ronn} > #{roff}"
12
+ end
13
+
14
+ file "#{roff}.txt" => roff do
15
+ sh "groff -Wall -mtty-char -mandoc -Tascii #{roff} | col -b > #{roff}.txt"
16
+ end
17
+
18
+ task :build => "#{roff}.txt"
19
+ end
20
+ end
21
+
22
+ Echoe.new("file-stash", "0.0.1") do |p|
23
+
24
+ p.description = "A utility to get rid of files that are no longer interesting without deleting them."
25
+ p.url = "http://github.com/alexmchale/file-stash"
26
+ p.author = "Alex McHale"
27
+ p.email = "alexmchale@gmail.com"
28
+ p.ignore_pattern = %w( tmp/* script/* )
29
+ p.runtime_dependencies = []
30
+ p.development_dependencies = [ "ronn" ]
31
+ p.require_signed = true
32
+
33
+ end
data/bin/stash ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "stash"
4
+
5
+ Stash.stash!
@@ -0,0 +1,37 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{file-stash}
5
+ s.version = "0.0.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Alex McHale"]
9
+ s.cert_chain = ["/home/alexmchale/.ssh/gem-public_cert.pem"]
10
+ s.date = %q{2010-09-01}
11
+ s.default_executable = %q{stash}
12
+ s.description = %q{A utility to get rid of files that are no longer interesting without deleting them.}
13
+ s.email = %q{alexmchale@gmail.com}
14
+ s.executables = ["stash"]
15
+ s.extra_rdoc_files = ["README.markdown", "bin/stash", "lib/stash.rb"]
16
+ s.files = ["Manifest", "README.markdown", "Rakefile", "bin/stash", "lib/stash.rb", "man/stash", "man/stash.ronn", "man/stash.txt", "file-stash.gemspec"]
17
+ s.homepage = %q{http://github.com/alexmchale/file-stash}
18
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "File-stash", "--main", "README.markdown"]
19
+ s.require_paths = ["lib"]
20
+ s.rubyforge_project = %q{file-stash}
21
+ s.rubygems_version = %q{1.3.7}
22
+ s.signing_key = %q{/home/alexmchale/.ssh/gem-private_key.pem}
23
+ s.summary = %q{A utility to get rid of files that are no longer interesting without deleting them.}
24
+
25
+ if s.respond_to? :specification_version then
26
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
27
+ s.specification_version = 3
28
+
29
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
30
+ s.add_development_dependency(%q<ronn>, [">= 0"])
31
+ else
32
+ s.add_dependency(%q<ronn>, [">= 0"])
33
+ end
34
+ else
35
+ s.add_dependency(%q<ronn>, [">= 0"])
36
+ end
37
+ end
data/lib/stash.rb ADDED
@@ -0,0 +1,75 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "time"
4
+ require "fileutils"
5
+ require "optparse"
6
+
7
+ class Stash
8
+
9
+ def initialize(path)
10
+ @path = File.expand_path(path)
11
+ end
12
+
13
+ # Validate all specified files.
14
+ def validate(files)
15
+ rejected_files = files.find_all { |filename| !File.exists? filename }
16
+ if rejected_files.count > 0
17
+ rejected_files.each { |filename| puts "cannot find file: #{filename}" }
18
+ raise "stash not performed"
19
+ end
20
+
21
+ self
22
+ end
23
+
24
+ # Perform the stash.
25
+ def stash(files, options = {})
26
+ validate files
27
+
28
+ message = options[:message].to_s.gsub(/\s/, ".").downcase.gsub(/[^a-z0-9\.]/, "")
29
+ node_note = "-#{message}" unless message.empty?
30
+ node_name = Time.now.iso8601 + node_note.to_s
31
+ node_path = File.join(@path, node_name)
32
+
33
+ FileUtils.mkdir_p node_path
34
+
35
+ ARGV.each do |src|
36
+ dst = File.join(node_path, File.basename(src))
37
+ FileUtils.mv src, dst
38
+ end
39
+ rescue Exception => e
40
+ puts e.message
41
+ end
42
+
43
+ # Run the stasher based upon command line options.
44
+ def self.stash!
45
+ opts =
46
+ OptionParser.new do |opts|
47
+
48
+ opts.banner = "Usage: stash [options] <files>"
49
+
50
+ opts.on("-m", "--message MSG", String, "Note to attach to this stash") do |msg|
51
+ ENV["STASH_MSG"] = msg
52
+ end
53
+
54
+ opts.on("-s", "--stash STASH", String, "Path to the stash to use [defaults to STASH_PATH or ~/.stash]") do |stash|
55
+ ENV["STASH_PATH"] = stash
56
+ end
57
+
58
+ opts.on_tail("-h", "--help", "Show this message") do
59
+ puts opts
60
+ exit
61
+ end
62
+
63
+ end
64
+
65
+ opts.parse!
66
+
67
+ if ARGV.empty?
68
+ puts opts
69
+ exit
70
+ end
71
+
72
+ Stash.new(ENV["STASH_PATH"] || "~/.stash").stash(ARGV, :message => ENV["STASH_MSG"])
73
+ end
74
+
75
+ end
data/man/stash ADDED
@@ -0,0 +1,43 @@
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "STASH" "1" "September 2010" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBstash\fR \- UNIX File Stasher
8
+ .
9
+ .SH "NAME"
10
+ stash \-\- store unused files in a configurable location
11
+ .
12
+ .SH "SYNOPSIS"
13
+ \fBstash\fR [\-\-message MSG] [\-\-stash PATH] FILES
14
+ .
15
+ .SH "DESCRIPTION"
16
+ Stash gets rid of files you are no longer interested in\. Pass it a list of files and it will move them to the path specified by the \fBSTASH_PATH\fR environment variable, or \fB~/\.stash\fR by default\. It places the files listed in a folder based upon the current time within the stash\.
17
+ .
18
+ .P
19
+ You may specify an optional message with the \fB\-m\fR or \fB\-\-message\fR parameter\.
20
+ .
21
+ .IP "" 4
22
+ .
23
+ .nf
24
+
25
+ stash \-m "Old css for TwitterClone" public/stylesheets/*\.css cache/*\.css
26
+ .
27
+ .fi
28
+ .
29
+ .IP "" 0
30
+ .
31
+ .P
32
+ Those files would then be relocated to a folder named something like:
33
+ .
34
+ .IP "" 4
35
+ .
36
+ .nf
37
+
38
+ /home/alexmchale/\.stash/2010\-09\-01T19:35:01+00:00\-old\.css\.for\.twitterclone
39
+ .
40
+ .fi
41
+ .
42
+ .IP "" 0
43
+
data/man/stash.ronn ADDED
@@ -0,0 +1,25 @@
1
+ stash(1) -- UNIX File Stasher
2
+ =============================
3
+
4
+ ## NAME
5
+
6
+ stash -- store unused files in a configurable location
7
+
8
+ ## SYNOPSIS
9
+
10
+ `stash` [--message MSG] [--stash PATH] FILES
11
+
12
+ ## DESCRIPTION
13
+
14
+ Stash gets rid of files you are no longer interested in. Pass it a list of
15
+ files and it will move them to the path specified by the `STASH_PATH`
16
+ environment variable, or `~/.stash` by default. It places the files listed in a
17
+ folder based upon the current time within the stash.
18
+
19
+ You may specify an optional message with the `-m` or `--message` parameter.
20
+
21
+ stash -m "Old css for TwitterClone" public/stylesheets/*.css cache/*.css
22
+
23
+ Those files would then be relocated to a folder named something like:
24
+
25
+ /home/alexmchale/.stash/2010-09-01T19:35:01+00:00-old.css.for.twitterclone
data/man/stash.txt ADDED
@@ -0,0 +1,39 @@
1
+ STASH(1) STASH(1)
2
+
3
+
4
+
5
+ NAME
6
+ stash - UNIX File Stasher
7
+
8
+ NAME
9
+ stash -- store unused files in a configurable location
10
+
11
+ SYNOPSIS
12
+ stash [--message MSG] [--stash PATH] FILES
13
+
14
+ DESCRIPTION
15
+ Stash gets rid of files you are no longer interested in. Pass it a list
16
+ of files and it will move them to the path specified by the STASH_PATH
17
+ environment variable, or ~/.stash by default. It places the files
18
+ listed in a folder based upon the current time within the stash.
19
+
20
+ You may specify an optional message with the -m or --message parameter.
21
+
22
+
23
+
24
+ stash -m "Old css for TwitterClone" public/stylesheets/*.css cache/*.css
25
+
26
+
27
+
28
+ Those files would then be relocated to a folder named something like:
29
+
30
+
31
+
32
+ /home/alexmchale/.stash/2010-09-01T19:35:01+00:00-old.css.for.twitterclone
33
+
34
+
35
+
36
+
37
+
38
+
39
+ September 2010 STASH(1)
metadata ADDED
@@ -0,0 +1,117 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: file-stash
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Alex McHale
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain:
17
+ - |
18
+ -----BEGIN CERTIFICATE-----
19
+ MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMRMwEQYDVQQDDAphbGV4
20
+ bWNoYWxlMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNj
21
+ b20wHhcNMTAwODMxMTQ1NjExWhcNMTEwODMxMTQ1NjExWjBBMRMwEQYDVQQDDAph
22
+ bGV4bWNoYWxlMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZ
23
+ FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIUoy5sx2lmVzR
24
+ higIWdA6zFNSt1eibOVF0nCptQ2BejzefTmfhpgwWKDX9FvGdF213WBwxIGJFP0c
25
+ yOJTOoTgKQwQd6zCSoeNgNNHrXwbd42OKfHBTN1+DvNVoK9mLB659fUJ5CoCqNLU
26
+ FI6RtILyZVH/Hja8nnHJrfGjJ0aWSRueVuO/06QmKvm19EJEVbTSd/DwAbJTYrQD
27
+ 6snqEY+64mcx8gvF2aCmGXKSpLqnTedsr3/16cd1rkHw7dZqbzyKc1uZaQL+giwp
28
+ Ijyn2SdMV+OKTf6xe/aL22aW/Z2b+tjQO8elB+/cz5kOlAkhtN3ENjf2e3H3UZSs
29
+ r+JQgRSdAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
30
+ BBS84ERhhfvntDfJzJe0/by+aeVeqDANBgkqhkiG9w0BAQUFAAOCAQEAFZRn7kGl
31
+ gvITFgcLlGAWNwYTfDiXm+8xjNXCyFLP2YgZvzNmP9HtzxnJHG9pk1tvAzKVgGQB
32
+ w+yPgHA9ASVnNP8/YifMVQtRkOYvmYiK+ynLTgqn3cCod0Q4mWcZ3mTsVfAqGxAZ
33
+ fyoyfn4C+7Ks6j3k7yXzcKoAi4w0RiHYUrNQAOFzkahHaovvophs88nIgq/HNSY6
34
+ tgs+JaGdLZUsgj0TZpzELi4d6iFDD44D/pAKN8VIpSlcbyKXkIyQa/NrKOTSie7u
35
+ AH5EvwIudku4RjdH363cTYX1xZ69LjcwrUpDrCJbG9jNK8icMoAOTEw0huZYvGRC
36
+ qyGdKMrvQEbACA==
37
+ -----END CERTIFICATE-----
38
+
39
+ date: 2010-09-01 00:00:00 +00:00
40
+ default_executable:
41
+ dependencies:
42
+ - !ruby/object:Gem::Dependency
43
+ name: ronn
44
+ prerelease: false
45
+ requirement: &id001 !ruby/object:Gem::Requirement
46
+ none: false
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ hash: 3
51
+ segments:
52
+ - 0
53
+ version: "0"
54
+ type: :development
55
+ version_requirements: *id001
56
+ description: A utility to get rid of files that are no longer interesting without deleting them.
57
+ email: alexmchale@gmail.com
58
+ executables:
59
+ - stash
60
+ extensions: []
61
+
62
+ extra_rdoc_files:
63
+ - README.markdown
64
+ - bin/stash
65
+ - lib/stash.rb
66
+ files:
67
+ - Manifest
68
+ - README.markdown
69
+ - Rakefile
70
+ - bin/stash
71
+ - lib/stash.rb
72
+ - man/stash
73
+ - man/stash.ronn
74
+ - man/stash.txt
75
+ - file-stash.gemspec
76
+ has_rdoc: true
77
+ homepage: http://github.com/alexmchale/file-stash
78
+ licenses: []
79
+
80
+ post_install_message:
81
+ rdoc_options:
82
+ - --line-numbers
83
+ - --inline-source
84
+ - --title
85
+ - File-stash
86
+ - --main
87
+ - README.markdown
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ hash: 3
96
+ segments:
97
+ - 0
98
+ version: "0"
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ hash: 11
105
+ segments:
106
+ - 1
107
+ - 2
108
+ version: "1.2"
109
+ requirements: []
110
+
111
+ rubyforge_project: file-stash
112
+ rubygems_version: 1.3.7
113
+ signing_key:
114
+ specification_version: 3
115
+ summary: A utility to get rid of files that are no longer interesting without deleting them.
116
+ test_files: []
117
+
metadata.gz.sig ADDED
@@ -0,0 +1 @@
1
+ ���p�-��(S^n��!�$>����vj:�u{���Ig��p��LA���D�Q!�d���U鼷���r[y�g� ���`�u�6��E|���0Y_T�>Vm�������s5�#��\dS� W�) 1���Qw������K �����Ce%aS�Dc�V���8�v �D�j�fλ��Js.�;��T 1��T�(R�&��|͒�x�I"����!9��N��6�P� � ����]k�&df�j���g��