exogenesis icon indicating copy to clipboard operation
exogenesis copied to clipboard

exogenesis command

Open moonglum opened this issue 12 years ago • 4 comments

@railsbros-dirk talked about his idea to create a thor-powered exogenesis command. And I thought about how one could implement this. So I came up with the following:

  • The exogenesis command reads a yml file whenever it is started. You can provide it with a --file option to give the path to a file. When you do not give a path, it will try exogenesis.yml, .exogenesis.yml and ~./exogenesis.yml in that order. This way you can call exogenesis from wherever you are on your system right now. But when you set it up for the first time, you can just give the path to the checked out file in your dotfile repo.
  • The exogenesis command then iterates through the list items of the yml file and initializes each of the items with the child nodes of this node as arguments.
  • It then executes the given command

An example for a YML file:

rvm:
  rubies:
    - ruby-1.9.3
    - ruby-2.0.0
dotfiles:
  path: "~/Code/dotfiles/tilde"

This would initialize the class RVM with the argument RVM.new(["ruby-1.9.3", "ruby-2.0.0"]) and the dotfiles class with Dotfile.new("~/Code/dotfiles/tilde"). The names for the parameters are just for the convenience of the user and are not used in any way. Once Apple bundles Ruby 2.0 (In 2043 approx.) we can then use Keyword-arguments for this ^^

The command can be called like this:

exogenesis update
# or
exogenesis --file exogenesis.yml install

What do you think?

moonglum avatar Apr 08 '13 09:04 moonglum

It's also imaginable that the initialize method always takes a hash, which is even simpler to implement. Then the names wouldn't go to waste.

moonglum avatar Apr 08 '13 09:04 moonglum

Really looking forward to this. The Rakefile is the No.1 thing I want to have removed from my dotfiles :wink:

bitboxer avatar Feb 13 '14 22:02 bitboxer

Yep, that’s going to make things simpler :wink:

moonglum avatar Feb 14 '14 10:02 moonglum

I will adjust this ticket as soon as #23 is done.

moonglum avatar Feb 14 '14 10:02 moonglum