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

FreeBSD Manual Pages

  
 
  

home | help
nix3-repl(1)		    General Commands Manual		  nix3-repl(1)

	      Warning
	      This  program  is	 experimental <../../development/experimental-
	      features.md#xp-feature-nix-command> and its interface is subject
	      to change.

Name
       nix repl	- start	an interactive environment for evaluating Nix  expres-
       sions

Synopsis
       nix repl	[option...] installables...

Examples
         Display all special commands within the REPL:

       # nix repl
       nix-repl> :?

         Evaluate some	simple Nix expressions:

       # nix repl

       nix-repl> 1 + 2
       3

       nix-repl> map (x: x * 2)	[1 2 3]
       [ 2 4 6 ]

         Interact with	Nixpkgs	in the REPL:

       # nix repl --file example.nix
       Loading Installable ''...
       Added 3 variables.

       # nix repl --expr '{a={b=3;c=4;};}'
       Loading Installable ''...
       Added 1 variables.

       # nix repl --expr '{a={b=3;c=4;};}' a
       Loading Installable ''...
       Added 1 variables.

       # nix repl --extra-experimental-features	'flakes' nixpkgs
       Loading Installable 'flake:nixpkgs#'...
       Added 5 variables.

       nix-repl> legacyPackages.x86_64-linux.emacs.name
       "emacs-27.1"

       nix-repl> :q

       # nix repl --expr 'import <nixpkgs>{}'

       Loading Installable ''...
       Added 12439 variables.

       nix-repl> emacs.name
       "emacs-27.1"

       nix-repl> emacs.drvPath
       "/nix/store/lp0sjrhgg03y2n0l10n70rg0k7hhyz0l-emacs-27.1.drv"

       nix-repl> drv = runCommand "hello" { buildInputs	= [ hello ]; } "hello; hello > $out"

       nix-repl> :b drv
       this derivation produced	the following outputs:
       out -> /nix/store/0njwbgwmkwls0w5dv9mpc1pq5fj39q0l-hello

       nix-repl> builtins.readFile drv
       "Hello, world!\n"

       nix-repl> :log drv
       Hello, world!

Description
       This command provides an	interactive environment	for evaluating Nix ex-
       pressions. (REPL	stands for `readevalprint loop'.)

       On startup, it loads the	Nix expressions	named files and	adds them into
       the  lexical scope. You can load	addition files using the :l <filename>
       command,	or reload all files using :r.

Options
         --stdin <#opt-stdin>

	  Read installables from the standard input.  No  default  installable
	  applied.

   Common evaluation options
         --arg	<#opt-arg> name	expr

	  Pass the value expr as the argument name to Nix functions.

         --arg-from-file <#opt-arg-from-file> name path

	  Pass	the  contents  of  file	path as	the argument name to Nix func-
	  tions.

         --arg-from-stdin <#opt-arg-from-stdin> name

	  Pass the contents of stdin as	the argument name to Nix functions.

         --argstr <#opt-argstr> name string

	  Pass the string string as the	argument name to Nix functions.

         --debugger <#opt-debugger>

	  Start	an interactive environment if evaluation fails.

         --eval-store <#opt-eval-store> store-url

	  The URL  of  the  Nix	 store	<../../store/types/index.md#store-url-
	  format>  to  use  for	 evaluation,  i.e.  to store derivations (.drv
	  files) and inputs referenced by them.

         --impure <#opt-impure>

	  Allow	access to mutable paths	and repositories.

         --include <#opt-include> / -I	path

	  Add path to  search  path  entries  used  to	resolve	 lookup	 paths
	  <../../language/constructs/lookup-path.md>

	  This option may be given multiple times.

	  Paths	 added through -I take precedence over the nix-path configura-
	  tion setting <../../command-ref/conf-file.md#conf-nix-path> and  the
	  NIX_PATH  environment	variable <../../command-ref/env-common.md#env-
	  NIX_PATH>.

         --override-flake <#opt-override-flake> original-ref resolved-ref

	  Override the flake registries, redirecting original-ref to resolved-
	  ref.

   Common flake-related	options
         --commit-lock-file <#opt-commit-lock-file>

	  Commit changes to the	flake's	lock file.

         --inputs-from	<#opt-inputs-from> flake-url

	  Use the inputs of the	specified flake	as registry entries.

         --no-registries <#opt-no-registries>

	  Don't	allow lookups in the flake registries.

		 DEPRECATED

		 Use --no-use-registries <../../command-ref/conf-file.md#conf-
		 use-registries> instead.

         --no-update-lock-file	<#opt-no-update-lock-file>

	  Do not allow any updates to the flake's lock file.

         --no-write-lock-file <#opt-no-write-lock-file>

	  Do not write the flake's newly generated lock	file.

         --output-lock-file <#opt-output-lock-file> flake-lock-path

	  Write	the given lock file instead of flake.lock within the top-level
	  flake.

         --override-input <#opt-override-input> input-path flake-url

	  Override a specific flake input (e.g.	dwarffs/nixpkgs). This implies
	  --no-write-lock-file.

         --recreate-lock-file <#opt-recreate-lock-file>

	  Recreate the flake's lock file from scratch.

		 DEPRECATED

		 Use nix flake	update	<../../command-ref/new-cli/nix3-flake-
		 update.md> instead.

         --reference-lock-file	<#opt-reference-lock-file> flake-lock-path

	  Read	the given lock file instead of flake.lock within the top-level
	  flake.

         --update-input <#opt-update-input> input-path

	  Update a specific flake input	(ignoring its previous	entry  in  the
	  lock file).

		 DEPRECATED

		 Use  nix  flake update	<../../command-ref/new-cli/nix3-flake-
		 update.md> instead.

   Logging-related options
         --debug <#opt-debug>

	  Set the logging verbosity level to `debug'.

         --log-format <#opt-log-format> format

	  Set the format of log	output;	one of raw, internal-json, bar or bar-
	  with-logs.

         --print-build-logs <#opt-print-build-logs> / -L

	  Print	full build logs	on standard error.

         --quiet <#opt-quiet>

	  Decrease the logging verbosity level.

         --verbose <#opt-verbose> / -v

	  Increase the logging verbosity level.

   Miscellaneous global	options
         --help <#opt-help>

	  Show usage information.

         --offline <#opt-offline>

	  Disable substituters and consider all	 previously  downloaded	 files
	  up-to-date.

         --option <#opt-option> name value

	  Set	the  Nix  configuration	 setting  name	to  value  (overriding
	  nix.conf).

         --refresh <#opt-refresh>

	  Consider all previously downloaded files out-of-date.

         --repair <#opt-repair>

	  During evaluation, rewrite missing or	corrupted  files  in  the  Nix
	  store. During	building, rebuild missing or corrupted store paths.

         --version <#opt-version>

	  Show version information.

   Options that	change the interpretation of installables
         --expr <#opt-expr> expr

	  Interpret	       installables	       <../../command-ref/new-
	  cli/nix.md#installables> as attribute	paths relative to the Nix  ex-
	  pression expr.

         --file <#opt-file> / -f file

	  Interpret	       installables	       <../../command-ref/new-
	  cli/nix.md#installables> as attribute	paths relative to the Nix  ex-
	  pression  stored in file. If file is the character -,	then a Nix ex-
	  pression is read from	standard input.	Implies	--impure.

	  Note

	  See man nix.conf <../../command-ref/conf-file.md#command-line-flags>
	  for overriding configuration settings	with command line flags.

								  nix3-repl(1)

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

home | help