Oye
A continuous monitoring tool that does a few things:
1. listens for changes in bare git repos
2. updates cloned repos when the corresponding bare repo changes
3. restarts the rails app with the new code
[ ] use multithreaading. each thread should watch a unique repo.
[ ] run rails tests inside Oye.monitor
[ ] check for irregularities in @repos, e.g two repeated cloned repos
[ ] give warning if port is not open by using port_open?
method
- fix possible port conflicts. for example
oye -p 3000
will add that port to the list of ports (or sockets) already specified in the app's config file (unicorn.rb). but you print an error if there are port conflicts [ ] why is the trap withFileUtils.rm_f(oye_pidfile)
not removing the PID file [ ] make a website for 'oye' where you provide better documentation. e.g. - how to set up oye.yml
[ ] create a git brach called 'oye' and pull from that one instead of 'origin'.
[ ] suport remote branches via 'ssh'. e.g. you can use
Net::SSH
as i use in '~/.ruby/req' [ ] support for webrick app server [ ] support for apps that dont use an app server (e.g. oye.dance and sergioro.mx run in nginx alone) [ ] support 'jekyll serve' for people that dont want to use a web server for jekyll [ ] split the file. use Oye::Actions as a namespace for update, restart, start, stop methods [ ] read environment for each app from oye.yml. e.g. user cn specify 'production' for one app and 'development' for another. The '-e' option is the default environment to be used if none is specified in oye.yml [ ] change %x() to system() to prevent undesired prints to console (e.g. if you stop 'oye' while it is running '%x(bundler)' it will dump bundler errors to the console.) [ ] give specific help for each command like jekyl doesjekyll [cmd] -h
- e.g. with
oye port -h
[ ] there might be a hard-to-find-bug ifoye
is executing agit pull
while the origin repo is receiving data from agit push
. [ ] in 'oye.yml' you could pass an aditional parameter to specify what type of app it is. in this way you dont need to useis_rails?
. e.g. /git/pete.land.git:- /var/www/html/pete.land: type: jekyll