Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
lfescript(1)							  lfescript(1)

NAME
       lfescript - Lisp	Flavoured Erlang (LFE) scripting support

SYNOPSIS
       lfescript  provides support for running short LFE programs without hav-
       ing to compile them first and an	easy way to retrieve the command  line
       arguments.

EXPORTS
       script-name script-arg1 script-arg2 ...

       lfescript lfescript-flags script-name script-arg1 script-arg2 ...

       lfescript runs a	script written in LFE.

       lfescript:script_name() -> File

       Types:

	      File = filename()

       The script_name/0 function returns the name of the lfescript being exe-
       cuted.  If the function is invoked outside the context of an lfescript,
       the behavior is undefined.

EXAMPLE
       Here follows an example script.

	      $	cat factorial
	      #! /usr/bin/env lfescript
	      ;; -*- mode: lfe -*-
	      ;;! -smp enable -sname factorial -mnesia debug verbose

	      (defun main
		([(list	string)]
		 (try
		     (let* ((n (list_to_integer	string))
			    (f (fac n)))
		       (lfe_io:format "factorial ~w = ~w\n" (list n f)))
		   (catch
		     ((tuple _ _ _) (usage)))))
		([_] (usage)))

	      (defun fac
		([0] 1)
		([n] (*	n (fac (- n 1)))))

	      (defun usage ()
		(lfe_io:format "usage: factorial integer\n" ()))

       The  header  of	the  LFE script	is different from a normal LFE module.
       The first line is an interpreter	line which invokes  lfescript  if  the
       script  is run as in the	first command line above.  If lfescript	is ex-
       plicitly	invoked	in the second command line above then this header line
       will be ignored.	 On the	second or third	line it	is  possible  to  give
       arguments to the	emulator with the syntax:

	      ;;! -smp enable -sname factorial -mnesia debug verbose

       In  the example the second line is an optional directive	to Emacs which
       causes it to enter LFE mode when	editing	the script file.

       The rest	of the file contains LFE source	code.  It must always  contain
       the  function  main/1.	When  the  script is run this function will be
       called with a list of strings representing the arguments	with which the
       script was called.  It is possible to define, include and use macros in
       the source code.

       The source code is checked and warnings and errors will be printed.  If
       there are errors	the script will	not run	and it will terminate with ex-
       it status 127.  Otherwise the code will be interpreted.	If  the	 func-
       tion  main/1  returns  successfully then	the exit status	for the	script
       will be 0 but if	an exception is	raised then exit status	will be	127.

OPTIONS
       The following option is accepted	by lfescript

        -s - Only perform a syntactic and semantic check of the script	 file.
	 Warnings  and errors (if any) are written to the standard output, but
	 the script will not be	run.  The exit status will be 0	if there  were
	 no errors, and	127 otherwise.

       Unrecognised options are	ignored.

ENVIRONMENT VARIABLES
       LFESCRIPT_EMULATOR

       The command used	to start the emulator.	Default	is `erl'.  This	can be
       useful for passing arguments into the emulator, for example

	      LFESCRIPT_EMULATOR="erl -pa sune"

       will add	the directory sune to the code path.

SEE ALSO
       lfe(1), lfe_guide(7)

AUTHORS
       Robert Virding.

				   2013-2016			  lfescript(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=lfescript&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help