Hey Doug,

What types of things are in GeneralORGTools.org? Are those babel
definitions? Or something else?

-s-

On Tue, Jun 16, 2020 at 11:21 AM Salomon Turgman <sturg...@gmail.com> wrote:

> Thanks for the useful example. I will take a look. Didn't know about
> org-sbe!
>
> -s-
>
> On Mon, 15 Jun 2020 15:52:16 -0400
> Douglas Perrin <doug2...@gmail.com> wrote:
>
> > Hi Salomon Turgman,
> > I do this a lot and have had success using a combination of #+SETUPFILE
> to
> > bring in names and configuration, and org-sbe to do initialization. I mix
> > emacs vars and org names in my source headers with back quoting.
> >
> > The following example has a template file containing user/local
> > information. This is brought into the example file, on load, through
> #:eval
> > calling org-babel-lob-ingest and org-sbe, in addition, parameters are
> > pulled in with #+SETUPFILE and the same template file name. The end
> result
> > for this example is a running docker image with access to local paths and
> > "remote" execution via tramp. More complex orchestration and actions in
> the
> > template are certainly possible using org-sbe calls in the init elisp
> > source blocks but hopefully, this shows the flavor of what can be done.
> >
> > In addition to avoiding code duplication, I have found this to be very
> > effective when my group is all working from the same org file (via git)
> but
> > everyone has their own template file with credentials, local paths, and
> org
> > more preferences (ie showstars).
> > Regards,
> > Doug
> >
> >
> ---------------------------------------------------------------------------------------------------------------------------------
> > TemplatingExample.org
> >
> ---------------------------------------------------------------------------------------------------------------------------------
> > #+SETUPFILE: Template-Loader.org
> >
> > * Init Code, run when file is opened
> > #+name: Execute-On-Load
> > #+begin_src elisp  :results output
> >    ;; for this the container and image have the same name
> >     (setq *DockerName* "ContanerName")
> > #+end_src
> >
> > * Run Contaner
> > #+begin_src bash  :results raw drawer :var DockerName=`,*DockerName*
> > DockerHubUID=`,*DockerHubUID* containerName=`,*DockerContainer*
> > LocalWorkPath=`,*LocalWorkPath* LocalDataPath=`,*LocalDataPath*
> >    docker run --rm -d \
> >           -v $LocalWorkPath:/root/Workdir \
> >           -v $LocalDataPath:/root/Data \
> >           --name $DockerName $DockerHubUID/$DockerName bash -c "tail -f
> > /dev/null"
> >   #+end_src
> >
> > * run IN contaner
> > #+begin_src bash  :results output :dir (concat "/docker:" `,*DockerName*
> > ":/root/Workdir/")
> > ls
> > #+end_src
> >
> > # Local Variables:
> > # eval: (org-babel-lob-ingest "Template-Loader.org")
> > # eval: (org-sbe "Init-Template")
> > # eval: (org-sbe "Execute-On-Load")
> > # End:
> >
> >
> ---------------------------------------------------------------------------------------------------------------------------------
> > Template-Loader.org
> >
> ---------------------------------------------------------------------------------------------------------------------------------
> > #+STARTUP: showstars
> > #+PROPERTY: header-args :mkdirp yes
> >
> > #+name: Init-Template
> > #+begin_src emacs-lisp :results none
> >   ;; This is called expecitly via org-sbe in the buffer that will uses
> the
> > templating
> >     (setq *DockerHubUID* "MyUserName")
> >     (setq *LocalWorkPath* "/run/desktop/mnt/host/c/Users/.....")
> >     (setq *LocalDataPath* "/run/desktop/mnt/host/d/devData/")
> >
> >   ;; ingest + SBE can be used to bring in a hierarchy of templates
> >   (org-babel-lob-ingest "./GroupTools/GeneralORGTools.org")
> >   (org-sbe "GeneralORGTools.org")
> >
> > #+end_src
>
>
> --
> Salomon Turgman <sturg...@gmail.com>
>

Reply via email to