emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Eric Schulte" <schulte.eric@gmail.com>
To: Bill Harris <bill_harris@facilitatedsystems.com>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>, Noorul Islam <noorul@noorul.com>
Subject: Re: File-level execute permissions?
Date: Mon, 27 Sep 2010 07:46:14 -0600	[thread overview]
Message-ID: <87iq1r1eqh.fsf@gmail.com> (raw)
In-Reply-To: <877hi94d2w.fsf@moenchweiler.bach> (Bill Harris's message of "Sat, 25 Sep 2010 16:29:11 -0700")

Hi Bill,

The `org-confirm-babel-evaluate' variable can be set to a function which
can query the user to confirm code block evaluation.  The following code
does two things.
1) it creates and maintains a list of the files that the user has said
   are safe for evaluation (this list will need to be rebuilt every time
   you re-start Emacs)
2) it shows the language and body of the code block to the user when
   querying for evaluation

--8<---------------cut here---------------start------------->8---
(setq babel-safe-files '())

(defun my-babel-confirmation (lang body)
  (let ((file (buffer-file-name)))
    (if (member file babel-safe-files)
        nil
      (if (y-or-n-p
           (format
            (concat "#+begin_src %s\n%s#+end_src\n"
                    "Evaluate this code block "
                    "(and all others in this file) "
                    "on your system? ") lang body))
          (prog1 nil
            (setq babel-safe-files (cons file babel-safe-files)))
        t))))

(setq org-confirm-babel-evaluate #'my-babel-confirmation)
--8<---------------cut here---------------end--------------->8---

This above can be added to your configuration to get close to the
functionality you describe.

I agree that the default confirmation should show the code block in
question when asking if it should be evaluated.  I'll add this to our
development task list.

Note: the above requires that you pull down the latest version of
Org-mode.

Best -- Eric

Bill Harris <bill_harris@facilitatedsystems.com> writes:

> Noorul Islam <noorul@noorul.com> writes:
>
>> How about setting `org-confirm-babel-evaluate' to nil
>
> Noorul,
>
> Thank you for the suggestion.  Setting that to nil, according to the
> documentation, prevents _any_ confirmation requests in any file, at
> least as best as I can tell.  I don't really want that.  
>
> What I want is to have to confirm once at the first code block in an org
> file and then have the rest go without confirmation.  Since I don't see
> the code blocks anyway when I get asked for confirmation, I'm not sure
> there's a lot of benefit to a confirmation request on each block, but I
> do want a reminder that there is one or more code blocks in a file
> before I blithely execute the entire thing.
>
> Bill

  reply	other threads:[~2010-09-27 13:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-24 13:11 File-level execute permissions? Bill Harris
2010-09-25  5:40 ` Noorul Islam
2010-09-25 23:29   ` Bill Harris
2010-09-27 13:46     ` Eric Schulte [this message]
2010-09-28  1:08       ` Bill Harris
2010-09-28 17:40         ` Eric Schulte
2010-09-29  2:36           ` Bill Harris

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=87iq1r1eqh.fsf@gmail.com \
    --to=schulte.eric@gmail.com \
    --cc=bill_harris@facilitatedsystems.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=noorul@noorul.com \
    /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).