Project

stamper

0.0
No commit activity in last 3 years
No release in over 3 years
Prepends a blurb of text to any files you specify while respecting a list of includes and exclude patterns for maximum flexibility.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.6
~> 0.10.0
~> 10.3.0
~> 0.23.0

Runtime

~> 0.7.3
 Project Readme

Stamper

Prepends a blurb of text to any files you specify while respecting a list of includes and exclude patterns for maximum flexibility.

Installation

Add this line to your application's Gemfile:

gem 'stamper'

And then execute:

$ bundle

Or install it yourself as:

$ sudo gem install stamper

Usage

CLI

$ stamper --help
Usage: stamper -s STAMPFILE [options]

Prepends a blurb of text to any files you specify while respecting
a list of includes and exclude patterns for maximum flexibility.

Required:
    -s, --stamp STAMPFILE            Read the stamp from the specified file.

Options:
    -p, --path DIRECTORY             Directory to scan for files. Defaults to current directory.
    -i, --include 'REGEXP'           Only stamp files that match this pattern. Can be used multiple times.
                                     Defaults to [".*\\.rb$"].
    -e, --exclude 'REGEXP'           Do not stamp files that match this pattern. Can be used multiple times.
                                     Evaluated after includes. Defaults to ["^vendor/"].
    -r, --respect 'REGEXP'           If the first line in the file matches this pattern,
                                     place stamp under that line.
                                     Can be used multiple times. Defaults to ["^#", "^<!"].
    -d, --dry-run                    Report which files need stamping, but don't make any changes.
    -q, --quiet                      Do not print any output.
    -h, --help                       Show this message.
        --version                    Show version.

Note: The --respect option is nice for telling Stamper to leave any first magic-encoding lines untouched and unmoved. The stamp will be placed under the matching line. Will only respect the first line, however, if matched.

Hint: You may want to try a few runs with the --dry-run option on to see what its doing, until you get all the options you want right.

Programmatic

require 'stamper'

Stamper.stamp(
  stamp: IO.read('copyright.txt'),
  files: Stamper::DEFAULTS[:files], # This is a glob. Will be fed into Dir.glob()
  includes: Stamper::DEFAULTS[:includes], # Defaults to ['.*\.rb$']
  excludes: Stamper::DEFAULTS[:excludes], # Defaults to ['^vendor/']
  respect_first_marks: Stamper::DEFAULTS[:respect_first_marks], # Defaults to ['^#', '^<!'']
  dryrun: false,
  quiet: true
)

Contributing

  1. Fork it ( https://github.com/renier/stamper/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request