From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Charles C. Berry" Subject: Re: [BABEL] Tangling to a hierarchy of files? Date: Tue, 18 Jan 2011 22:45:42 -0800 Message-ID: References: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Return-path: Received: from [140.186.70.92] (port=34382 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PfRnf-000789-IB for emacs-orgmode@gnu.org; Wed, 19 Jan 2011 01:45:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PfRne-0004c7-90 for emacs-orgmode@gnu.org; Wed, 19 Jan 2011 01:45:47 -0500 Received: from tajo.ucsd.edu ([137.110.122.165]:57112) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PfRnd-0004bn-VH for emacs-orgmode@gnu.org; Wed, 19 Jan 2011 01:45:46 -0500 In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Christopher Maier Cc: emacs-orgmode@gnu.org On Wed, 19 Jan 2011, Christopher Maier wrote: > I've been experimenting with literate programming using Org mode recently and am > really enjoying it. I am trying to figure out the best way to create a nested > hierarchy of tangled files from a single Org file, and am not sure the best way > to go about it. > > I know that, for example, this block, when tangled, will produce a file > "foo.clj" in the same directory as my Org file... so far so good. > > #+begin_src clojure :tangle foo.clj > (ns foo) > > (defn my-inc [x] > (+ x 1)) > #+end_src > > However, I would like to be able to do something like this: > > #+begin_src clojure :tangle src/foo.clj > (ns foo) > > (defn my-inc [x] > (+ x 1)) > #+end_src > > (I'm trying to automatically generate a Leiningen project for Clojure, if that > helps any.) > > If I tangle an Org file that contains a block like this, and I haven't already > created a "src" directory, then I get an error ("Opening output file: No such > file or directory..."). > > I could create a shell script block in my file that will create whatever > directory hierarchy I need, but it looks like I'd have to manually execute that > prior to tangling my source code. I've seen some examples on the mailing list > using Emacs Lisp code blocks to set up a custom org-babel-pre-tangle-hook, but > it still seems that there's a manual execution step required. Maybe a file that starts something like this would work for you: ,---- | # -*- eval: (make-directory "src" ".") -*- | #+Title: Evaluates code on startup | | * contents `---- On opening, a 'src' directory is created if it doesn't already exist. > > Is there a better (maybe already built-in?) way to achieve this? Ideally, I'd > eventually like to set things up so that I could invoke a single function that > would create the file hierarchy, tangle the files, generate documentation, and > then run tests and other build-related stuff. Is that possible without leaving > Org? An emacs-lisp src block to do all those things, perhaps? HTH, Chuck > > Thanks in advance for any help. > > > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > Charles C. Berry Dept of Family/Preventive Medicine cberry@tajo.ucsd.edu UC San Diego http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901