<div dir="ltr"><div class="gmail_default" style><span style="color:rgb(34,34,34);font-family:arial;font-size:small">The Rubyist in you </span><div class="gmail_default" style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;font-size:small;display:inline">​senses</div><span style="color:rgb(34,34,34);font-family:arial;font-size:small"> an SRP violation. The cron knows too much about the inner workings of your app. A shim script in the app itself that the cron invokes directly will solve it:</span><div style="color:rgb(34,34,34);font-family:arial;font-size:small"><br></div><div style="color:rgb(34,34,34);font-size:small"><font face="courier new, monospace">#/bin/bash -e</font></div><div style="color:rgb(34,34,34);font-size:small"><br></div><div style><div style><font face="courier new, monospace">exec 3> >(logger -t cron.app.rake) 1>&3 2>&3 </font><span style="font-family:'courier new',monospace"># Logs stdout and stderr to syslog with cron.app.rake tag</span></div><div style><span style="font-family:'courier new',monospace">                                             # ... because there is nothing worse than cron jobs that don't log to syslog!</span></div><div style><font face="courier new, monospace"><br></font></div><div style><font face="courier new, monospace">APP_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" </font><span style="font-family:'courier new',monospace"># the equivalent in Ruby: File.expand_path("../", __FILE__)</span></div><div style><font face="courier new, monospace">                                                            # if the script itself is a symlink, see SO for a beefed up version</font></div><div style><font face="courier new, monospace"><br></font></div><div style><font face="courier new, monospace">cd $APP_DIR                </font><span style="font-family:'courier new',monospace"># you're in your app's root dir, carry on</span></div><div style><font face="courier new, monospace">echo "bundle exec rake..." # substitute for the actual command</font></div></div><div style="color:rgb(34,34,34);font-family:arial;font-size:small"><br></div><span style="color:rgb(34,34,34);font-family:arial;font-size:small">Your app now exposes an executable that anything can call, without knowing anything about Rake, app path or any other app specific detail.</span><br style="color:rgb(34,34,34);font-family:arial"><div style="color:rgb(34,34,34);font-family:arial;font-size:small"><br></div><div style="color:rgb(34,34,34);font-family:arial;font-size:small">Gerhard</div></div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr"><br><hr style="font-family:arial,helvetica,sans-serif"><font color="#3333ff"><font face="arial, helvetica, sans-serif"><a href="http://twitter.com/#!/gerhardlazu" target="_blank">Twitter</a> <a href="https://github.com/gerhard" target="_blank">Github</a> </font><a href="http://gerhard.lazu.co.uk/" style="font-family:arial,helvetica,sans-serif" target="_blank">Blog</a></font></div></div>
<br><div class="gmail_quote">On Thu, Oct 9, 2014 at 11:08 AM, Andrew Stewart <span dir="ltr"><<a href="mailto:boss@airbladesoftware.com" target="_blank">boss@airbladesoftware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 9 Oct 2014, at 11:36, Stephen Best <<a href="mailto:bestie@gmail.com">bestie@gmail.com</a>> wrote:<br>
> I'm not sure what the virtue of removing the `cd` step from your cronjob is. It sounds way more trouble than it's worth. However this was interesting to think about the answers were great also.<br>
<br>
</span>I was mainly trying to understand why rake couldn't be run from outside its path.<br>
<br>
Most unix programs can be run from wherever you like on the file system; the program figures out its own location, if necessary, and does its thing.  In contrast rake needs you to be in the project's top-level directory, or a subdirectory.  I've never tried to run rake from outside a project's directory, so I hadn't encountered this constraint before.<br>
<br>
Cheers,<br>
Andy<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br>
Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" target="_blank">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>
Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>
List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
</div></div></blockquote></div><br></div>