mast 1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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