unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#25671: Feature request: emacs -Q --script as a single binary
@ 2017-02-09 21:14 Clément Pit--Claudel
  2017-02-09 21:27 ` Glenn Morris
  2017-02-10  7:37 ` Eli Zaretskii
  0 siblings, 2 replies; 12+ messages in thread
From: Clément Pit--Claudel @ 2017-02-09 21:14 UTC (permalink / raw)
  To: 25671


[-- Attachment #1.1: Type: text/plain, Size: 1138 bytes --]

Hi bug-gnu-emacs,

Since version 22 Emacs lets scripts begin with a shebang line:

  #!/usr/bin/emacs --script
  ;; Some ELisp code here

This breaks if Emacs isn't installed in /usr/bin, though.  Thus, one would want to write this:

  #!/usr/bin/env emacs --script
  ;; Some ELisp code here

But this doesn't work (env doesn't split its arguments), and it also breaks even if one is happy with hardcoding /usr/bin/emacs but tries to pass more than one argument (think -Q and --script).  Thus one writes this:

  #!/bin/sh
  ":"; exec emacs -Q --script "$0" "$@" # -*- mode: emacs-lisp; lexical-binding: t; -*-

(See http://stackoverflow.com/questions/6238331/emacs-shell-scripts-how-to-put-initial-options-into-the-script/6259330#6259330)

This isn't pretty.  Could we set up emacs to assume --script and possibly -Q when started as "elisp", or "emacs-script", or some other name (that is, could we make it so that invoking emacs with argv[0] = ".../elisp" starts emacs -Q --script)? (And ideally Emacs would ignore all options after the script's name, to let the script itself process them).

Thanks!
Clément.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread
* bug#20682: 25.0.50; Enable users to combine --script and --quick
@ 2015-05-28 13:57 Michael Heerdegen
  2015-05-28 18:48 ` Stefan Monnier
  0 siblings, 1 reply; 12+ messages in thread
From: Michael Heerdegen @ 2015-05-28 13:57 UTC (permalink / raw)
  To: 20682


Hello!

This is a feature request to enable users to write emacs scripts (à la
--script) that can be executed in a way that --quick does (i.e. avoid
loading site stuff).

AFAIK this is not directly possible currently, because if you try with a
file starting like this:

#!/usr/bin/emacs -Q --script

the "#!" implementation on most Unices will not be able to pass more
than one argument to the interpreter.

The only thing that can be done to force --quick is to define a separate
interpreter like this:

--8<---------------cut here---------------start------------->8---
#!/bin/bash

emacs --quick --script $@
--8<---------------cut here---------------end--------------->8---

(suggested by saint@eng.it in g.e.help).

I have been told in the same thread that if --script would be available
as -s, one could start scripts with "#!/usr/bin/emacs -Qs" and that
would already solve the problem.


These are the main reason why using --quick can be desirable:

 - There are no messages like:

     Loading 00debian-vars...
     Loading /etc/emacs/site-start.d/50a2ps.el (source)...
     Loading /etc/emacs/site-start.d/50autoconf.el (source)...
     Loading /etc/emacs/site-start.d/50cmake-data.el (source)...
     Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...
     Loading debian-ispell...
     Loading /var/cache/dictionaries-common/emacsen-ispell-default.el (source)...
     Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)...
     Loading /etc/emacs/site-start.d/51debian-el.el (source)...

   when running a script.  That would be a nice thing if you wanted to
   write something like wc or so.

 - It would speed up startup by a factor of five (for me, 0.01 secs
   vs. 0.002 secs when using the wrapper from above)

 - It might not be necessary to load site stuff.  On the contrary, if
   you want to write portable scripts, it might be more desirable to be
   able to write environment independent scripts


Many thanks,

Michael.




In GNU Emacs 25.0.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.5)
 of 2015-05-27 on drachen
Windowing system distributor `The X.Org Foundation', version 11.0.11701000
System Description:	Debian GNU/Linux testing (stretch)

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY
LIBXML2 FREETYPE XFT ZLIB






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

end of thread, other threads:[~2022-05-05 22:14 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-09 21:14 bug#25671: Feature request: emacs -Q --script as a single binary Clément Pit--Claudel
2017-02-09 21:27 ` Glenn Morris
2017-02-09 21:32   ` Clément Pit--Claudel
2017-02-10  7:37 ` Eli Zaretskii
2017-02-10 14:17   ` Clément Pit--Claudel
2017-02-10 15:02     ` Eli Zaretskii
2017-02-10 16:45       ` Clément Pit--Claudel
2017-02-10 16:58         ` Eli Zaretskii
2017-02-10 20:21           ` Clément Pit--Claudel
2017-02-10 17:32         ` Glenn Morris
2017-02-10 20:21           ` Clément Pit--Claudel
  -- strict thread matches above, loose matches on Subject: below --
2015-05-28 13:57 bug#20682: 25.0.50; Enable users to combine --script and --quick Michael Heerdegen
2015-05-28 18:48 ` Stefan Monnier
2015-05-28 20:30   ` Glenn Morris
2022-04-18 11:01     ` bug#20682: bug#25671: Feature request: emacs -Q --script as a single binary Lars Ingebrigtsen
2022-05-05 22:14       ` Michael Heerdegen

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

	https://git.savannah.gnu.org/cgit/emacs.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).