buildfoundation / mainframer

Tool for remote builds. Sync project to remote machine, execute command, sync back.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OS-wide usage

arturdryomov opened this issue · comments

After using Mainframer for a while with different projects we’ve been pointed to a specific pain point — shipping the tool with a project forces you to ship it with all projects.

In other words, the suggested way is to include the mainframer.sh in a VCS of choice and update it manually on a project-level basis. Unfortunately it does not scale well.

I think it is time to evolve Mainframer to a system-wide tool, so it can be just like big boys.

TODO

  • Rename mainframer.sh to mainframer.
  • Support global configuration file in $XDG_CONFIG_HOME and $HOME, respecting local overrides. ignore, localignore, remoteignore will stay on a project level.
  • Provide a Homebrew Tap since I doubt we can get into the Homebrew Core. We can try though. There are too many Linux distributions and package formats to support all (or any) of them, so I would leave Linux out of scope at this point.
  • Change naming from mainframer to Mainframer everywhere to provide a better brand experience.
  • Change description from remote builder to sync and remote execution or something like that.

Homebrew Formula is mostly ready and actually works.

class Mainframer < Formula
  desc "Sync and remote execution"
  homepage "https://github.com/gojuno/mainframer"

  version "2.1.0"
  url "https://github.com/gojuno/mainframer/archive/v#{version}.tar.gz"
  sha256 "78f9928527720eeeda4997f048591518fdbf76c8b894bf3c827363a8a6d12d30"

  def install
    bin.install "mainframer.sh"
  end
end

Do we want to finish initial 3.0 before going to repositories like Homebrew?

What do you have in mind for 3.0?

Everything from your list is blocking and I also want that, other than that:

  • #182 Plugin system (optional, shouldn't block 3.0 release)