class MStrap::Project

Included Modules

Defined in:

mstrap/project.cr

Class Method Summary

Instance Method Summary

Instance methods inherited from module MStrap::DSL::System

cmd(env : Hash?, command : String, args : Array(String)?, shell = true, input = Process::Redirect::Inherit, output = Process::Redirect::Inherit, error = Process::Redirect::Inherit, quiet = false, sudo = false) cmd

Instance methods inherited from module MStrap::DSL::Logging

log(msg) log, logc(msg) logc, logd(msg) logd, logn(msg) logn, logw(msg) logw, success(msg) success

Class Method Detail

def self.for(project_def : Defs::ProjectDef) #

Factory constructor for Project from a project definition


[View source]

Instance Method Detail

def bootstrap #

Executes script/bootstrap and script/setup (if either exists and are configured to run) or executes conventional runtime bootstrapping as determined by mstrap.


[View source]
def clone #

Clones the project from Git


[View source]
def cname : String #

Returns canonical name for the project. This must be unique among projects.


[View source]
def git_uri #

Returns a usable Git URI for the project


[View source]
def has_scripts? #

Whether project has any bootstrapping/setup scripts a-la scripts-to-rule-them-all


[View source]
def hostname : String #

Returns hostname for the project.


[View source]
def name : String #

Returns friendly display name for the project.


[View source]
def path : String #

Returns path to the project on the filesystem.


[View source]
def port : Int32? #

Returns the port for the project, if configured.


[View source]
def pull #

Updates the project from Git, including auto-stashing any unstaged and uncommited changes.


[View source]
def repo : String #

Returns the configured GitHub path or URI for the project's repo.


[View source]
def run_scripts? : Bool #

Returns whether to execute and scripts-to-rule-them-all scripts, if they exist.


[View source]
def runtimes : Array(String) #

Returns the language runtimes of the project, if specified.


[View source]
def upstream #

Returns the NGINX upstream for the project. Relevant only to web projects.


[View source]
def web? : Bool #

Returns whether the project is a web project.


[View source]
def websocket? : Bool #

Returns whether the project requires a websocket connection


[View source]