mast 1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,12 +1,33 @@
1
1
  = RELEASE HISTORY
2
2
 
3
- == 1.0.0 / 2009-07-02
3
+ == 1.2 / 2010-02-19
4
4
 
5
- This is the initial release of Mast.
5
+ This release adjusts the plugins directory to conform
6
+ to the new Plugin gem and add the -i shortcut to the
7
+ command-line help.
8
+
9
+ Changes:
10
+
11
+ * Rename lib/plugin to lib/plugins.
12
+ * Add -i to help output.
13
+
14
+
15
+ == 1.1 / 2009-10-24
16
+
17
+ This release fixes the show and clean commands and makes
18
+ some additional adjustments under the hood.
6
19
 
7
20
  Changes:
8
21
 
9
- * 1 Major Enhancement
22
+ * Fix clean and show commands.
23
+ * Change to MIT license.
24
+
25
+
26
+ == 1.0 / 2009-07-02
27
+
28
+ This is the initial release of Mast.
29
+
30
+ Changes:
10
31
 
11
- * Happy Birthday!
32
+ * Happy Birthday!
12
33
 
@@ -1,35 +1,37 @@
1
1
  = Mast
2
+ ___
3
+ .-----'---'-.
4
+ | |
5
+ | |
6
+ | |
7
+ '-----------'
2
8
 
3
- * home: http://proutils.github.com/mast
4
- * source: http://github.com/proutils/mast
5
-
9
+ * home: http://proutils.github.com/mast/
10
+ * work: http://github.com/proutils/mast/
11
+ * wiki: http://wiki.github.com/proutils/mast/
6
12
 
7
13
  == DESCRIPTION
8
14
 
9
- Mast is a commandline utility for generating MANIFEST lists and optionally checksums.
10
- It can be useful in conjunction with packaging tools (such as Box), or as a stand-alone
11
- tool for monitoring file changes.
15
+ Mast is a commandline utility for generating MANIFEST and DIGEST lists.
16
+ It can be useful in conjunction with packaging tools (such as Box),
17
+ or as a stand-alone tool for monitoring file changes.
12
18
 
13
19
 
14
20
  == FEATURES
15
21
 
22
+ * Intuitive command-line interface --simply specify what to include.
16
23
  * Self-referential header makes updating manifests easy.
17
- * Checksum lists can highlight changes to current files.
18
-
19
-
20
- == RELEASE NOTES
24
+ * Checksum digests can highlight file changes.
21
25
 
22
- Please see the HISTORY.rdoc file.
23
26
 
27
+ == USAGE
24
28
 
25
- == SYNOPSIS
29
+ Mast makes the process of generating manifests very easy, and even allows manifests
30
+ to be updated without repeating inclusion/exclusion criteria by storing the command
31
+ parameters in a comment line at the top of the generated output.
26
32
 
27
- Mast is a convenient commandline tool for generating manifest and file hash lists.
28
- It makes the process very simple, and even allows manifests to be updated
29
- without repeating inclusion/exclusion criteria by storing the command parameters
30
- in a comment line at the top of the generated output.
31
-
32
- Lets try a simple example. Lets say we have the following folder structure:
33
+ Lets try a simple example. Lets say we have the following folder structure, using
34
+ <tt>ls -R</tt> we see:
33
35
 
34
36
  $ ls -R
35
37
  .:
@@ -90,14 +92,15 @@ lets say the mint directory is extraneous and we do not want it included in the
90
92
  demo_rtar/web/rocklobster.jpg
91
93
 
92
94
  So you can see how the commandline options carry over to the top comment line of the ouput. The advantage of
93
- this is that if you save the output to a standard location, ie. a file named MANIFEST or meta/manifest with
94
- an optional .txt prefix (case insensitive), then you can automaitcally update the file by calling +mast update+.
95
+ this is that if you save the output to a standard location, i.e. a file named MANIFEST or meta/manifest with
96
+ an optional .txt prefix (case insensitive), then you can automaitcally update the file by calling +mast --update+.
95
97
 
96
98
  $ mast -x mint > MANIFEST
97
- $ mast update
99
+
100
+ $ mast --update
98
101
  MANIFEST updated.
99
102
 
100
- You can also add a checksum to the file list.
103
+ You can also add a checksum to the file list to create a *DIGEST*.
101
104
 
102
105
  $ mast -x mint -g sha1
103
106
 
@@ -1,5 +1,5 @@
1
1
  module Mast
2
- VERSION = "1.1" #:till: VERSION="<%= version %>"
2
+ VERSION = "1.2.0" #:till: VERSION="<%= version %>"
3
3
  end
4
4
 
5
5
  require 'mast/manifest'
@@ -32,18 +32,18 @@
32
32
  # --dir When creating a list include directory paths; by default
33
33
  # only files are listed.
34
34
  # -s --show Show files using the options from the manifest file.
35
- # -f --file PATH Path to manifest file. When using update command, if not
36
- # given then the file matching 'MANIFEST', case-insensitive
37
- # and with an optional '.txt' extension, will be looked for
38
- # in the current directory. If the path of the manifest file
39
- # is anything else then --file option must be specified.
40
- # -g --digest TYPE Include crytogrpahic signiture. Type can be either
35
+ # -f --file PATH Path to manifest file. This applies to comparison commands.
36
+ # If not given then the file matching 'MANIFEST', case-insensitive
37
+ # and with an optional '.txt' extension, in the current directory
38
+ # is used. If the path of the manifest file is anything else then
39
+ # the --file option must be specified.
40
+ # -g --digest TYPE Include crytographic signiture. Type can be either
41
41
  # md5, sha1, sha128, sha256, or sha512.
42
42
  # -x --exclude PATH Exclude a file or dir from the manifest matching against
43
43
  # full pathname. You can use --exclude repeatedly.
44
- # --ignore PATH Exclude a file or dir from the manifest matching against
44
+ # -i --ignore PATH Exclude a file or dir from the manifest matching against
45
45
  # an entries basename. You can use --ignore repeatedly.
46
- # -q --quiet Suppress extraneous output.
46
+ # -q --quiet Suppress any extraneous output.
47
47
 
48
48
  require 'mast'
49
49
 
@@ -406,9 +406,9 @@ module Mast
406
406
  #
407
407
  def report_verify(check)
408
408
  if check
409
- report "Manifest if good."
409
+ report "Manifest is good."
410
410
  else
411
- report "Manifest if bad!"
411
+ report "Manifest is bad!"
412
412
  end
413
413
  end
414
414
  end
@@ -0,0 +1,100 @@
1
+ module Syckle::Plugins
2
+
3
+ # = Mast Manifest Plugin
4
+ #
5
+ class Mast < Service
6
+
7
+ precycle :main, :package => :generate
8
+
9
+ cycle :main, :reset
10
+ cycle :main, :clean
11
+
12
+ # not that this is necessary, but ...
13
+ available do |project|
14
+ begin
15
+ require 'mast'
16
+ true
17
+ rescue LoadError
18
+ false
19
+ end
20
+ end
21
+
22
+ # Default MANIFEST filename.
23
+ DEFAULT_FILENAME = 'MANIFEST'
24
+
25
+ # Default files/dirs to include.
26
+ DEFAULT_INCLUDE = %w{ bin lib meta script test [A-Z]* }
27
+
28
+ # Default files/dirs to exclude.
29
+ DEFAULT_EXCLUDE = %w{ }
30
+
31
+ # Default files/dirs to ignore. Unlike exclude, this work
32
+ # on files basenames, and not full pathnames.
33
+ DEFAULT_IGNORE = %w{ .svn }
34
+
35
+ #
36
+ attr_accessor :include
37
+
38
+ #
39
+ attr_accessor :exclude
40
+
41
+ #
42
+ attr_accessor :ignore
43
+
44
+ #
45
+ attr_accessor :output
46
+
47
+ #
48
+ #def output=(path)
49
+ # @output = Pathname.new(path)
50
+ #end
51
+
52
+ #
53
+ def manifest
54
+ @manifest ||= Manifest.new(options)
55
+ end
56
+
57
+ # Generate manifest.
58
+ def generate
59
+ manifest.generate
60
+ report "Updated #{output.to_s.sub(Dir.pwd+'/','')}"
61
+ end
62
+
63
+ # Mark MANIFEST as out-of-date.
64
+ # TODO: Implement reset.
65
+ def reset
66
+ end
67
+
68
+ # Remove MANIFEST.
69
+ # TODO: Currently a noop. Not sure removing manfest is a good idea.
70
+ def clean
71
+ end
72
+
73
+ private
74
+
75
+ #
76
+ def initialize_defaults
77
+ @include = DEFAULT_INCLUDE
78
+ @exclude = DEFAULT_EXCLUDE
79
+ @ignore = DEFAULT_IGNORE
80
+ @output = (file || project.root + DEFAULT_FILENAME).to_s
81
+ end
82
+
83
+ #
84
+ def file
85
+ project.root.glob("MANIFEST{,.txt}").first
86
+ end
87
+
88
+ #
89
+ def options
90
+ { :include => include,
91
+ :exclude => exclude,
92
+ :ignore => ignore,
93
+ :file => output
94
+ }
95
+ end
96
+
97
+ end
98
+
99
+ end
100
+
@@ -1 +1 @@
1
- <tigerops-community@googlegroups.com>
1
+ proutils@googlegroups.com
@@ -1 +1,4 @@
1
- Mast is a command line tool for generating manifests.
1
+ Mast is a command line tool for generating manifests and digests.
2
+ Mast makes it easy to compare a manifest to a current directory structure,
3
+ and to update the manifest with a simple command by storing the command
4
+ option it the manifest file itself.
@@ -0,0 +1 @@
1
+ http://github.com/proutils/mast/downloads
@@ -1 +1 @@
1
- http://proutils.rubyforge.org/mast
1
+ http://proutils.github.com/mast
File without changes
data/meta/ruby CHANGED
@@ -1,2 +1,3 @@
1
+ ---
1
2
  - 1.8.6
2
3
  - 1.8.7
File without changes
@@ -0,0 +1 @@
1
+ Mast is a command line tool for generating manifests and digests.
@@ -1 +1 @@
1
- 1.1
1
+ 1.2.0
@@ -0,0 +1 @@
1
+ http://wiki.github.com/proutils/mast/
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mast
3
3
  version: !ruby/object:Gem::Version
4
- version: "1.1"
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 2
8
+ - 0
9
+ version: 1.2.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - "- Thomas Sawyer <transfire@gmail.com>"
@@ -9,43 +14,47 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2009-10-24 00:00:00 -04:00
17
+ date: 2010-02-19 00:00:00 -05:00
13
18
  default_executable:
14
19
  dependencies: []
15
20
 
16
- description: Mast is a command line tool for generating manifests.
17
- email: <tigerops-community@googlegroups.com>
21
+ description: |-
22
+ Mast is a command line tool for generating manifests and digests.
23
+ Mast makes it easy to compare a manifest to a current directory structure,
24
+ and to update the manifest with a simple command by storing the command
25
+ option it the manifest file itself.
26
+ email:
18
27
  executables:
19
28
  - mast
20
29
  extensions: []
21
30
 
22
- extra_rdoc_files:
23
- - HISTORY.rdoc
24
- - MANIFEST
25
- - LICENSE
26
- - README.rdoc
31
+ extra_rdoc_files: []
32
+
27
33
  files:
28
- - HISTORY.rdoc
29
- - LICENSE
30
- - MANIFEST
31
- - README.rdoc
32
34
  - bin/mast
33
- - lib/mast.rb
34
35
  - lib/mast/cli.rb
35
36
  - lib/mast/core_ext.rb
36
37
  - lib/mast/manifest.rb
38
+ - lib/mast.rb
39
+ - lib/plugins/syckle/mast.rb
37
40
  - meta/authors
38
41
  - meta/contact
39
42
  - meta/description
43
+ - meta/download
40
44
  - meta/homepage
41
- - meta/namespace
42
- - meta/package
45
+ - meta/name
43
46
  - meta/repository
44
47
  - meta/ruby
45
48
  - meta/sitemap
49
+ - meta/suite
50
+ - meta/summary
46
51
  - meta/version
52
+ - meta/wiki
53
+ - HISTORY.rdoc
54
+ - LICENSE
55
+ - README.rdoc
47
56
  has_rdoc: true
48
- homepage: http://proutils.rubyforge.org/mast
57
+ homepage: http://proutils.github.com/mast
49
58
  licenses: []
50
59
 
51
60
  post_install_message:
@@ -58,20 +67,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
58
67
  requirements:
59
68
  - - ">="
60
69
  - !ruby/object:Gem::Version
70
+ segments:
71
+ - 0
61
72
  version: "0"
62
- version:
63
73
  required_rubygems_version: !ruby/object:Gem::Requirement
64
74
  requirements:
65
75
  - - ">="
66
76
  - !ruby/object:Gem::Version
77
+ segments:
78
+ - 0
67
79
  version: "0"
68
- version:
69
80
  requirements: []
70
81
 
71
- rubyforge_project: proutils
72
- rubygems_version: 1.3.5
82
+ rubyforge_project: mast
83
+ rubygems_version: 1.3.6.pre.3
73
84
  signing_key:
74
85
  specification_version: 3
75
- summary: Mast is a command line tool for generating manifests.
86
+ summary: Mast is a command line tool for generating manifests and digests.
76
87
  test_files: []
77
88
 
data/MANIFEST DELETED
@@ -1,20 +0,0 @@
1
- HISTORY.rdoc
2
- LICENSE
3
- MANIFEST
4
- README.rdoc
5
- bin/mast
6
- lib/mast
7
- lib/mast.rb
8
- lib/mast/cli.rb
9
- lib/mast/core_ext.rb
10
- lib/mast/manifest.rb
11
- meta/authors
12
- meta/contact
13
- meta/description
14
- meta/homepage
15
- meta/namespace
16
- meta/package
17
- meta/repository
18
- meta/ruby
19
- meta/sitemap
20
- meta/version