emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: William Denton <wtd@pobox.com>
To: Steven Harris <steve@stevenharris.info>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: Beginning with org-babel.
Date: Thu, 24 Feb 2022 21:08:35 -0500 (EST)	[thread overview]
Message-ID: <alpine.DEB.2.22.394.2202242043250.66839@shell3.miskatonic.org> (raw)
In-Reply-To: <CAFBwRkKmKksNvC98cSdbtVXPVd2HZtqT3PZWmgpNeXctwZq2-A@mail.gmail.com>

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

On 25 February 2022, Steven Harris wrote:

> The current problem is that I have a config file that I want to substitute
> a value into.  I want the conf-mode highlighting.  Conf is not a
> programming language of course, just a text format.
>
> I'm trying something like
>
> #+begin_src conf :tangle yes :noweb yes
>  [defaults]
>  private_key_file = <<ssh_private_key_file>>
> #+end_src
>
> I have tried something similar to the SQL comment example in the
> documentation to no avail and also setting :var headers. How can I
> substitute a value here?

I think there are a few different ways, but they depend on Org knowing about the 
language of the source block (as I realized after writing most of this, and 
deciding I'd send it along anyway in case it's helpful):

One way I do it is like so, first with defining a variable.

#+NAME: RUBY_VERSION
| 3.1.1 |

Then, in a source block, call in the variable with :var, like so:

#+begin_src shell :tangle conforg/scripts/ruby-install-personal.sh :shebang "#!/bin/bash" :var RUBY_VERSION=RUBY_VERSION
rbenv install --verbose $RUBY_VERSION
rbenv global $RUBY_VERSION ~/conforg/scripts/ruby-install-gems.sh
echo "Now run bundle install where needed."
#+end_src

I'm using the RUBY_VERSION variable name in two places: first on its own in Org, 
then in the shell script as an environment variable that is set to the value of 
the Org variable.  No point in using two different variable names for this, I 
thought.  But in other cases one would want to.

(This is from Conforguration,¹ my system for setting up my dot files and some 
languages or services I want to run from source.)

But Org knows about shell scripts and can pass variables in to them (like it can 
with SQL), and Org doesn't know about INI files or other config files the same 
way.  So (unless I'm mistaken) this method won't work.

However, surely there's another way ...

Bill

¹ https://github.com/wdenton/conforguration

--
William Denton
https://www.miskatonic.org/
Librarian, artist and licensed private investigator.
Toronto, Canada

      reply	other threads:[~2022-02-25  2:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-25  1:20 Beginning with org-babel Steven Harris
2022-02-25  2:08 ` William Denton [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.22.394.2202242043250.66839@shell3.miskatonic.org \
    --to=wtd@pobox.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=steve@stevenharris.info \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).