monofile - read in / parse monorepo / mono source tree definitions - a list of git (and github) projects, and more
- home :: github.com/rubycoco/monos
- bugs :: github.com/rubycoco/monos/issues
- gem :: rubygems.org/gems/monofile
- rdoc :: rubydoc.info/gems/monofile
Usage
Use Monofile.read to read in / parse monorepo / mono source tree definitions - supporting a ruby or a yaml format.
Example - Monofile:
project "@openfootball/england"
project "@openfootball/world-cup"
project "@geraldb/austria"
project "@geraldb/geraldb.github.io"
project "geraldb", "catalog"
project "openfootball", "europe"
project "openfootball", "south-america"
or
Example - monofile.yml:
geraldb:
- austria
- catalog
- geraldb.github.io
openfootball:
- england
- europe
- south-america
- world-cup
To read use.
monofile = Monofile.read( "./Monofile" )
# -or-
monofile = Monofile.read( "./monofile.yml" )
pp monofile.to_a
#=> ["@openfootball/england",
# "@openfootball/world-cup",
# "@geraldb/austria",
# "@geraldb/geraldb.github.io",
# "@geraldb/catalog",
# "@openfootball/europe"]
# "@openfootball/south-america"]
pp monofile.to_h
#=> {"openfootball"=>["england", "world-cup", "europe", "south-america"],
# "geraldb" =>["austria", "geraldb.github.io", "catalog"]}
monofile.each do |proj|
puts " #{proj}"
end
#=> @openfootball/england
# @openfootball/world-cup
# @geraldb/austria
# @geraldb/geraldb.github.io
# @geraldb/catalog
# @openfootball/europe
# @openfootball/south-america
monofile.size
#=> 7
and so on. That's it for now.
Troubleshooting / Debugging
Use the monofile command line tool to test reading in of
monorepo / mono source tree definitions.
Example:
# option 1) try to find default name (e.g. Monofile, Monofile.rb, etc.)
$ monofile
# option 2) pass in monofiles
$ monofile ./Monofile
$ monofile ./monfile.yml
# ...
Printing the normalized / canonical names of the repo sources. Example.
@openfootball/england
@openfootball/world-cup
@geraldb/austria
@geraldb/geraldb.github.io
@geraldb/catalog
@openfootball/europe
@openfootball/south-america
Real-World Usage
See the monos package that incl. the mono (or short mo)
command line tool lets you run
git commands on multiple repo(sitories) with a single command.
Installation
Use
gem install monofile
or add to your Gemfile
gem 'monofile'
License
The monofile scripts are dedicated to the public domain.
Use it as you please with no restrictions whatsoever.