<div dir="ltr">I recommend writing the program like Leif suggests or using "raco exe". I don't recommend using cat/sed/etc.<div><br></div><div>Jay</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 14, 2015 at 1:46 PM, Leif Andersen <span dir="ltr"><<a href="mailto:leif@leifandersen.net" target="_blank">leif@leifandersen.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>If you want it to be a single file script you can execute, you can just make your file be:<br><br></div><div>#!/usr/bin/env racket<br>#lang racket/base<br><br>(module foo racket/base<br>  (provide x)<br>  (define x 5))<br><br>(module bar racket/base<br>  (require (submod ".." foo))<br>  (display x))<br><br>(require 'foo 'bar)<span class="HOEnZb"><font color="#888888"><br><br></font></span></div></div><div class="gmail_extra"><span class="HOEnZb"><font color="#888888"><br clear="all"><div><div><div dir="ltr"><div><br></div>~Leif Andersen</div></div></div>
<br></font></span><div class="gmail_quote"><div><div class="h5">On Wed, Jan 14, 2015 at 11:06 AM, Norman Gray <span dir="ltr"><<a href="mailto:norman@astro.gla.ac.uk" target="_blank">norman@astro.gla.ac.uk</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><br>
Jay, hello.<br>
<span><br>
> On 2015 Jan 14, at 13:41, Jay McCarthy <<a href="mailto:jay.mccarthy@gmail.com" target="_blank">jay.mccarthy@gmail.com</a>> wrote:<br>
><br>
> 1. Create a directory where the files will go: $ROOT<br>
><br>
> I do this anyways, because everything is in git somewhere.<br>
><br>
> 2. Make prog.sh in $ROOT that looks like this:<br>
><br>
> #!/bin/sh<br>
><br>
> cd $(dirname $(grealpath $0))<br>
> racket -t prog.rkt<br>
><br>
> 3. Link $ROOT/prog.sh into my ~/bin as 'prog'<br>
<br>
</span>Sure -- that's what I was thinking of when saying 'installed a bunch of files in a directory tree along with a launch script' (and using exec, of course).<br>
<br>
But the problem with that is that it's inherently a rather more ...floppy object.  My 'make install' actions would probably do something like install the various .rkt files into ~/local/bin/prog.contents/ and make the link from ~/local/bin/prog -> ~/local/bin/prog.contents/launch-prog.sh.  But one doesn't typically expect a script to have a directory attached to it (ie, this smells non-standard, and there isn't really a standard place for such a prog.contents/ directory to go), and it means that if I blow away ~/local/bin/prog I have to remember to delete prog.contents, too.<br>
<br>
Also if, in this scenario, I delete $ROOT because I think it's redundant and I've forgotten about the link, then ~/local/bin/prog has broken without me realising it.<br>
<br>
Having ~/local/bin/prog link to the live checked-out files means that I can't hack away at those and be sure that the 'stable' version in ~/local/bin/prog is still working.<br>
<br>
None of the above are grievous problems -- I could live with all of them -- but they're less neat than 'here is a script file; put it somewhere in your path'.<br>
<br>
Perhaps the concatenate-with-rewriting is the best solution here, after all.<br>
<br>
All the best,<br>
</div></div><div><div><div><div class="h5"><br>
Norman<br>
<br>
--<br>
Norman Gray  :  <a href="http://nxg.me.uk" target="_blank">http://nxg.me.uk</a><br>
SUPA School of Physics and Astronomy, University of Glasgow, UK<br>
<br>
<br></div></div><span class="">
____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</span></div></div></blockquote></div><br></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Jay McCarthy<br><a href="http://jeapostrophe.github.io" target="_blank">http://jeapostrophe.github.io</a><br><br>           "Wherefore, be not weary in well-doing,<br>      for ye are laying the foundation of a great work.<br>And out of small things proceedeth that which is great."<br>                          - D&C 64:33</div>
</div>