emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* getting directory of org installation in elisp
@ 2014-05-23  8:15 Rainer M Krug
  2014-05-23 13:28 ` Bastien
  0 siblings, 1 reply; 6+ messages in thread
From: Rainer M Krug @ 2014-05-23  8:15 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 838 bytes --]

Hi

I want to load some R code into org when using R with org (i.e. in
ob-R.el) which would be part of org mode. Therefore I have two
questions:

1) Where can I put the R code? My idea would be to put it in
ORGDIR/etc/R/ - would this be OK with the general philosophy of directory
structures?

2) How can I get the ORGDIR under elisp, so that I can use it to load
From ORGDIR/R/*.R ?

Thanks,

Rainer


-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: Type: application/pgp-signature, Size: 494 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: getting directory of org installation in elisp
  2014-05-23  8:15 getting directory of org installation in elisp Rainer M Krug
@ 2014-05-23 13:28 ` Bastien
  2014-05-23 14:01   ` Rainer M Krug
  0 siblings, 1 reply; 6+ messages in thread
From: Bastien @ 2014-05-23 13:28 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

Hi Rainer,

Rainer M Krug <Rainer@krugs.de> writes:

> I want to load some R code into org when using R with org (i.e. in
> ob-R.el) which would be part of org mode. Therefore I have two
> questions:

I'm not sure I understand: why do you need to put R code in an
external file?  For testing purpose?

> 1) Where can I put the R code? My idea would be to put it in
> ORGDIR/etc/R/ - would this be OK with the general philosophy of directory
> structures?
>
> 2) How can I get the ORGDIR under elisp, so that I can use it to load
> From ORGDIR/R/*.R ?

I can't parse this too :)  If that helps, please send a patch with
what you would do, and we'll discuss from the patch.

Thanks,

-- 
 Bastien

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: getting directory of org installation in elisp
  2014-05-23 13:28 ` Bastien
@ 2014-05-23 14:01   ` Rainer M Krug
  2014-05-23 20:11     ` Aaron Ecay
  2014-05-30 12:17     ` Bastien
  0 siblings, 2 replies; 6+ messages in thread
From: Rainer M Krug @ 2014-05-23 14:01 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 3277 bytes --]

Bastien <bzg@gnu.org> writes:

> Hi Rainer,
>
> Rainer M Krug <Rainer@krugs.de> writes:
>
>> I want to load some R code into org when using R with org (i.e. in
>> ob-R.el) which would be part of org mode. Therefore I have two
>> questions:
>
> I'm not sure I understand: why do you need to put R code in an
> external file?  For testing purpose?

No - there is quite a bit of R code in ob-R.el which gives quite abit of
options for customization. As R users are usually more comfortable with
using R then elisp, I am moving the R code into external .R files which
are loaded and the code in these is used for variable transfer and
(planned) the wrapping when creating graphs. Fallbacks, i.e. default
code stored in ob-R.el when the file can not be loaded, id=s in the
process of being implemented. You can see how it looks in [1] where my
changes are sitting.

And I want to load this R code into R, controlled from org.

Here is the relevant code:

,----
| (defun org-babel-expand-body:R (body params &optional graphics-file)
|   "Expand BODY according to PARAMS, return the expanded body."
|   (mapconcat 'identity
| 	     (append
| 	      (when (cdr (assoc :prologue params))
| 		(list (cdr (assoc :prologue params))))
| 	      (list 
| 	       " while ('org:functions' %in% search()) { detach(pos=grep('org:functions', search())) } 
| 	        attach( what = NULL, name = 'org:functions' ) ")
| 	      (list
| 	       (format " userdir <- '%s' 
| 	        for( f in dir(userdir, pattern='.R', full.names=TRUE) ){ try(source(f, keep.source = FALSE)) } " org-babel-R-directory-in-org))
| 	      (list (format "     .org.createEnvironment('%s')" org-babel-R-variable-environment-name ))
| 	      (org-babel-variable-assignments:R params)
| 	      (list body)
| 	      (when (cdr (assoc :epilogue params))
| 		(list (cdr (assoc :epilogue params)))))
| 	     "\n"))
`----


>
>> 1) Where can I put the R code? My idea would be to put it in
>> ORGDIR/etc/R/ - would this be OK with the general philosophy of directory
>> structures?
>>
>> 2) How can I get the ORGDIR under elisp, so that I can use it to load
>> From ORGDIR/R/*.R ?
>
> I can't parse this too :)  If that helps, please send a patch with
> what you would do, and we'll discuss from the patch.

I am using at the moment the following construct to get the directory I
want:

,----
| (defvar org-babel-R-directory-in-org 
|   (mapconcat 'identity
| 	     (append (butlast (split-string (locate-library "org") "/") 2) 
| 		     '("etc" "R" ""))
| 	     "/")
|   "Original org directory from which the *.R files will be loaded.
| This value should *not* be changed and is determined by the 
| installation location of org.")
`----


>
> Thanks,

Thanks,

Rainer

Footnotes: 
[1]  https://github.com/rkrug/orgmode-dev

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: Type: application/pgp-signature, Size: 494 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: getting directory of org installation in elisp
  2014-05-23 14:01   ` Rainer M Krug
@ 2014-05-23 20:11     ` Aaron Ecay
  2014-05-30 12:17     ` Bastien
  1 sibling, 0 replies; 6+ messages in thread
From: Aaron Ecay @ 2014-05-23 20:11 UTC (permalink / raw)
  To: Rainer M Krug, Bastien; +Cc: emacs-orgmode

Hi Rainer,

You might want to look at how ESS handles a similar situation, via the
variables ess-etc-directory and ess-lisp-directory in the ess-site.el
file.

--
Aaron Ecay

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: getting directory of org installation in elisp
  2014-05-23 14:01   ` Rainer M Krug
  2014-05-23 20:11     ` Aaron Ecay
@ 2014-05-30 12:17     ` Bastien
  2014-05-30 15:47       ` Rainer M Krug
  1 sibling, 1 reply; 6+ messages in thread
From: Bastien @ 2014-05-30 12:17 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

Hi Rainer,

Rainer M Krug <Rainer@krugs.de> writes:

> And I want to load this R code into R, controlled from org.

Ok, I understand now -- then yes, you can use the etc/ directory
for R code that will be loaded.  But please anticipate that this
new etc/ content needs to be added to Emacs when people install
Org -- see how ox-odt.el is dealing with the issue of adding
the data in etc/schemas and etc/styles.

HTH,

-- 
 Bastien

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: getting directory of org installation in elisp
  2014-05-30 12:17     ` Bastien
@ 2014-05-30 15:47       ` Rainer M Krug
  0 siblings, 0 replies; 6+ messages in thread
From: Rainer M Krug @ 2014-05-30 15:47 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1101 bytes --]

Bastien <bzg@gnu.org> writes:

> Hi Rainer,

Hi Bastien,

>
> Rainer M Krug <Rainer@krugs.de> writes:
>
>> And I want to load this R code into R, controlled from org.
>
> Ok, I understand now -- then yes, you can use the etc/ directory
> for R code that will be loaded.  But please anticipate that this
> new etc/ content needs to be added to Emacs when people install
> Org -- see how ox-odt.el is dealing with the issue of adding
> the data in etc/schemas and etc/styles.

Thanks for the hint to look at ox-odt.el ant their file in etc/ - I was
thinking about the installation issue but didn't look at it in detail
yet.


>
> HTH,

Definitely,

Rainer

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: Type: application/pgp-signature, Size: 494 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-05-30 15:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-23  8:15 getting directory of org installation in elisp Rainer M Krug
2014-05-23 13:28 ` Bastien
2014-05-23 14:01   ` Rainer M Krug
2014-05-23 20:11     ` Aaron Ecay
2014-05-30 12:17     ` Bastien
2014-05-30 15:47       ` Rainer M Krug

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).