Comments (1)
I agree that the alternate runs backend should not be defined before all of Runbook is loaded. Breaking out all require statements to be present in all files where they are needed seems like it would incur quite a bit of overhead as opposed to simply including each file once, up front.
The extensions are implemented the way they are as a proof of concept for how Runbook can be extended with plugins. One solution could be to simply require the shared_variables
extension before runbook/run.rb
, drop the Runbook.runs
logic in the extension and invoke ::Runbook::Extensions::SharedVariables::RunHooks.register_shared_variables_hooks
within the Runbook::Run.included method.
I think the broader pattern that is missing is a place to invoke initialization logic, after any plugins or extensions have been loaded, but before the runbook is loaded/evaluated.
For individual projects, this is the Configuration.load_config method that is invoked before any Runbook logic, however there isn't any explicit pattern for initialization code that could be used for Runbook or other plugins. Long term, this is probably the missing pattern that needs to be implemented.
from runbook.
Related Issues (20)
- What username is used for ssh? HOT 2
- Best practices HOT 2
- cd exit status: 127 (SSHKit::Command::Failed) HOT 4
- How does "previous position detected" work? HOT 2
- Dealing with errors HOT 2
- Long running processes HOT 5
- tmux_command HOT 2
- tmux_command doesn't seem to respect server HOT 2
- command `curl` doesn't do what I expected HOT 1
- Ability to set `report_on_exception = false`? HOT 2
- rescue from command Exception HOT 2
- Ruby 3 compatibility issue? :into keyword in `ask?` HOT 2
- Builds broken after version bump to 1.0
- Switch to Github Actions?
- Is Local Command Execution supported? HOT 1
- Add support for Ruby 3.1
- Crash when generating projects with `-`
- Jump to specific Position doesn't check input
- DidYouMean update
- Clarification: context of `path`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from runbook.