Commit graph

478 commits

Author SHA1 Message Date
Eelco Dolstra ac238d619c Typo
Reported by Shea.
2012-10-12 10:21:04 -04:00
Eelco Dolstra bfaa5635de Manual: Don't use a store path that actually exists
http://hydra.nixos.org/build/3124130
2012-10-04 13:37:30 -04:00
Eelco Dolstra e35d6f78dc Rename nix-worker to nix-daemon 2012-10-03 17:59:23 -04:00
Eelco Dolstra 522ecab9b8 Drop support for running nix-worker in "slave" mode
AFAIK nobody uses this, setuid binaries are evil, and there is no good
reason why people can't just run the daemon.
2012-10-03 17:30:45 -04:00
Eelco Dolstra 9c41c66c5b Document ‘--repair’ 2012-10-03 15:53:25 -04:00
Eelco Dolstra 8e3a7bd712 nix-store --verify: Add an option ‘--repair’ to repair all missing/corrupt paths
Also, return a non-zero exit code if errors remain after
verifying/repairing.
2012-10-02 15:12:56 -04:00
Eelco Dolstra 9958bd6992 Add operation ‘nix-store --repair-path’
This operation allows fixing corrupted or accidentally deleted store
paths by redownloading them using substituters, if available.

Since the corrupted path cannot be replaced atomically, there is a
very small time window (one system call) during which neither the old
(corrupted) nor the new (repaired) contents are available.  So
repairing should be used with some care on critical packages like
Glibc.
2012-10-02 14:08:59 -04:00
Eelco Dolstra 95c74eae26 Allow dashes in identifiers
In Nixpkgs, the attribute in all-packages.nix corresponding to a
package is usually equal to the package name.  However, this doesn't
work if the package contains a dash, which is fairly common.  The
convention is to replace the dash with an underscore (e.g. "dbus-lib"
becomes "dbus_glib"), but that's annoying.  So now dashes are valid in
variable / attribute names, allowing you to write:

  dbus-glib = callPackage ../development/libraries/dbus-glib { };

and

  buildInputs = [ dbus-glib ];

Since we don't have a negation or subtraction operation in Nix, this
is unambiguous.
2012-09-27 15:49:20 -04:00
Eelco Dolstra f46612be96 Add "on Linux" qualifier 2012-09-25 16:30:37 -04:00
Eelco Dolstra 0f358ca5b6 Document that Nix requires GNU Make
Fixes #44.
2012-09-25 16:17:30 -04:00
Eelco Dolstra cb6651e878 Update release notes 2012-09-25 16:04:50 -04:00
Eelco Dolstra 983220bcd4 nix-collect-garbage: Support --dry-run 2012-09-13 18:09:20 -04:00
Eelco Dolstra 9fd9dedf12 nix-env --delete-generations: Support --dry-run flag
Fixes #43.
2012-09-13 18:05:04 -04:00
Eelco Dolstra c845c0ccad nix-channel: Add option to force fetching of manifests 2012-09-13 12:11:40 -04:00
Shea Levy 360056e174 Document importing from a directory in the import documentation 2012-08-29 18:07:51 -04:00
Eelco Dolstra 9e2fc6951c Disable the binary cache substituter by default for now 2012-08-27 14:20:14 -04:00
Eelco Dolstra 9c2decaa19 Merge branch 'master' into no-manifests 2012-08-01 18:03:49 -04:00
Eelco Dolstra 5170c5691a nix-channel: Use binary caches advertised by channels
Channels can now advertise a binary cache by creating a file
<channel-url>/binary-cache-url.  The channel unpacker puts these in
its "binary-caches" subdirectory.  Thus, the URLS of the binary caches
for the channels added by root appear in
/nix/var/nix/profiles/per-user/eelco/channels/binary-caches/*.  The
binary cache substituter reads these and adds them to the list of
binary caches.
2012-08-01 17:56:11 -04:00
Eelco Dolstra 4d1b64f118 Allow daemon users to override ‘binary-caches’
For security reasons, daemon users can only specify caches that appear
in the ‘binary-caches’ and ‘trusted-binary-caches’ options in
nix.conf.
2012-07-31 18:56:22 -04:00
Eelco Dolstra 89a8207029 Add an option ‘build-fallback’ (equivalent to the --fallback flag) 2012-07-31 17:56:02 -04:00
Eelco Dolstra 157170059d Manual: Remove reference to non-existent -I option 2012-07-30 22:29:42 -04:00
Eelco Dolstra 9de6d10d11 Get rid of $NIX_BINARY_CACHES
You can use ‘--option binary-caches URLs’ instead.
2012-07-30 16:39:31 -04:00
Eelco Dolstra f15083c10a Document the --option flag
Pointed out by Daniel Santa Cruz on IRC.
2012-07-29 14:37:40 -04:00
Eelco Dolstra 8c79100839 Merge branch 'master' into no-manifests 2012-07-26 15:14:33 -04:00
Eelco Dolstra 6193105710 Automatically optimise the Nix store when a new path is added
Auto-optimisation is enabled by default.  It can be turned off by
setting auto-optimise-store to false in nix.conf.
2012-07-23 17:14:15 -04:00
Eelco Dolstra 58337e0e61 Set release date 2012-07-18 11:51:27 -04:00
Eelco Dolstra fe241ece29 Merge branch 'master' into no-manifests 2012-07-18 10:47:59 -04:00
Eelco Dolstra 51d71ad3d7 Manual: Don't claim we support Cygwin 2012-07-17 11:49:47 -04:00
Eelco Dolstra 6c01fb4d68 Update Nix 1.1 release notes 2012-07-17 10:06:20 -04:00
Eelco Dolstra 53b24f3518 Allow disabling log compression 2012-07-17 09:40:12 -04:00
Eelco Dolstra 04559a0d45 Merge branch 'master' of github.com:NixOS/nix into no-manifests 2012-07-11 18:53:27 -04:00
Eelco Dolstra e4d6bcb6cd Update release notes 2012-07-11 18:52:23 -04:00
Eelco Dolstra 5755a5c354 Install a nix.conf manpage 2012-07-09 11:33:38 -04:00
Eelco Dolstra 099125435f download-from-binary-cache: add nix.conf options 2012-07-09 10:57:28 -04:00
Eelco Dolstra 8da6772ed4 Update release notes 2012-06-23 14:59:13 -04:00
Eelco Dolstra 2c26985835 Add option ‘build-keep-log’ to enable/disable writing of build logs
Fixes #26.
2012-05-29 16:42:05 -04:00
Eelco Dolstra 8058dab26e Clean up the installation section; document the generic binary tarballs 2012-05-24 12:04:07 -04:00
Eelco Dolstra 587b408210 Set release date 2012-05-11 17:40:58 -04:00
Eelco Dolstra 8a08813d6c Manual updates 2012-05-11 17:39:06 -04:00
Eelco Dolstra 2b00e6990c CSS tweaks 2012-05-11 16:21:21 -04:00
Eelco Dolstra 4d383f57f4 Document "nix-build --run-env" 2012-05-10 19:29:36 -04:00
Eelco Dolstra 6a7b24a3f2 Document "nix-store --add" 2012-05-10 18:09:45 -04:00
Eelco Dolstra cb1248d208 Document some nix-store subcommands 2012-05-09 19:06:39 -04:00
Eelco Dolstra 7a213ffc69 Document $NIX_PATH / -I 2012-05-09 19:06:13 -04:00
Eelco Dolstra a58efdb69b Update the release notes 2012-05-09 19:05:30 -04:00
Eelco Dolstra afa7b8a479 nix-channel --update: allow updating only the specified channels 2012-05-07 17:55:56 -04:00
Eelco Dolstra db5b86ef13 * Add an option ‘build-use-substitutes’, which can be set to ‘false’
to disable use of substitutes; i.e., force building from source.
  Fixes Nix/221.
2012-04-30 19:15:34 -04:00
Eelco Dolstra 59a26360c7 Support mandatory system features in the build hook
Mandatory features are features that MUST be present in a derivation's
requiredSystemFeatures attribute.  One application is performance
testing, where we have a dedicated machine to run performance tests
(and nothing else).  Then we would add the label "perf" to the
machine's mandatory features and to the performance testing
derivations.
2012-04-30 17:22:45 -04:00
Eelco Dolstra 82ae0e688c Update the documentation of build-remote.pl 2012-04-30 16:49:00 -04:00
Eelco Dolstra 9cd3ff1059 nix-instantiate: default to "default.nix" if no arguments are given 2012-04-17 17:19:43 +02:00
Eelco Dolstra 8745fade03 Added utility command ‘nix-instantiate --find-file’ to look up a file in Nix's search path 2012-04-17 17:14:14 +02:00
Eelco Dolstra e855c7e2c9 nix-channel improvements
"nix-channel --add" now accepts a second argument: the channel name.
This allows channels to have a nicer name than (say) nixpkgs_unstable.
If no name is given, it defaults to the last component of the URL
(with "-unstable" or "-stable" removed).

Also, channels are now stored in a profile
(/nix/var/nix/profiles/per-user/$USER/channels).  One advantage of
this is that it allows rollbacks (e.g. if "nix-channel --update" gives
an undesirable update).
2012-04-14 18:38:52 +02:00
Shea Levy 055e803851 Add the '--show-progress' flag to nix-copy-closure 2012-04-13 14:29:12 +02:00
Shea Levy 242a99c95a Nix is on github now 2012-04-08 23:59:02 -04:00
Eelco Dolstra 533250a4a3 Fix building from the tarball 2012-04-06 22:54:15 +02:00
Eelco Dolstra 831c7aa410 Documentation fix 2012-04-06 22:03:19 +02:00
Eelco Dolstra 5863987bba Include environment variables in the manpages 2012-04-06 21:56:20 +02:00
Eelco Dolstra 998b977ede Include common options in the manpages using some XInclude hackery 2012-04-06 21:45:00 +02:00
Eelco Dolstra d49ef039dd Update affiliation 2012-04-06 21:43:56 +02:00
Eelco Dolstra 5a6d50998d Add a missing DocBook source file to the tarball
Reported on IRC by Adrian Siekierka.
2012-04-06 20:26:30 +02:00
Eelco Dolstra 8be1979f1a Remove the --max-links GC option
We don't need this anymore now that current filesystems support more
than 32,000 files in a directory.
2012-03-26 20:00:02 +02:00
Eelco Dolstra b006a31d52 Drop the externals directory
Nix now requires SQLite and bzip2 to be pre-installed.  SQLite is
detected using pkg-config.  We required DBD::SQLite anyway, so
depending on SQLite is not a big problem.

The --with-bzip2, --with-openssl and --with-sqlite flags are gone.
2012-03-18 23:54:57 +01:00
Eelco Dolstra 4e624849b6 * Added a command ‘nix-store --print-env $drvpath’ that prints out the
environment of the given derivation in a format that can be sourced
  by the shell, e.g.

  $ eval "$(nix-store --print-env $(nix-instantiate /etc/nixos/nixpkgs -A pkg))"
  $ NIX_BUILD_TOP=/tmp
  $ source $stdenv/setup

  This is especially useful to reproduce the environment used to build
  a package outside of its builder for development purposes.

  TODO: add a nix-build option to do the above and fetch the
  dependencies of the derivation as well.
2012-01-17 23:07:22 +00:00
Eelco Dolstra 2a3f4110c5 * nix-build: put the temporary derivation symlink in a temporary
directory rather than the current directory.
* nix-build: --drv-link now implies --add-drv-link.
2012-01-13 23:35:07 +00:00
Eelco Dolstra 93e71e6ab6 * Follow our own coding conventions. 2011-12-30 17:39:03 +00:00
Eelco Dolstra f2d65c9c80 * Remove a redundant dot (Nicolas Pierron). 2011-12-30 17:31:58 +00:00
Eelco Dolstra ed11b17b2e * Fix doc error. 2011-12-30 13:43:29 +00:00
Peter Simons be9be4c147 doc/manual/nix-env.xml: fixed "nix-env -qaA" typo 2011-12-01 08:03:30 +00:00
Peter Simons 3c7ec8fc1b doc/manual/nix-env.xml: stripped trailing whitespace 2011-12-01 08:02:37 +00:00
Eelco Dolstra f3bc98b001 2011-11-23 15:39:54 +00:00
Eelco Dolstra 10e2b2b79e * Document the --include-outputs option. 2011-11-23 15:39:02 +00:00
Eelco Dolstra d5ac78e0d6 * Add bzip2 and xz support to nix-copy-closure. 2011-11-23 15:29:58 +00:00
Eelco Dolstra daed9aeac5 2011-11-03 19:22:24 +00:00
Eelco Dolstra d7b87bebe3 * The Nix configuration file is usually /etc/nix/nix.conf. 2011-11-03 18:47:10 +00:00
Eelco Dolstra 325b5a8aee * Fix permission on /nix/store in the manual for multi-user installs
(reported by Silvio Frischknecht).
2011-11-02 19:14:54 +00:00
Eelco Dolstra e6cb3d0a0d * Added a command ‘nix-store --verify-paths PATHS’ to check whether
the contents of any of the given store paths have been modified.
  E.g.

    $ nix-store --verify-path $(nix-store -qR /var/run/current-system)
    path `/nix/store/m2smyiwbxidlprfxfz4rjlvz2c3mg58y-etc' was modified! expected hash `fc87e271c5fdf179b47939b08ad13440493805584b35e3014109d04d8436e7b8', got `20f1a47281b3c0cbe299ce47ad5ca7340b20ab34246426915fce0ee9116483aa'

  All paths are checked; the exit code is 1 if any path has been
  modified, 0 otherwise.
2011-09-06 12:06:30 +00:00
Eelco Dolstra 1ecc97b6bd * Add a Nix expression search path feature. Paths between angle
brackets, e.g.

    import <nixpkgs/pkgs/lib>

  are resolved by looking them up relative to the elements listed in
  the search path.  This allows us to get rid of hacks like

    import "${builtins.getEnv "NIXPKGS_ALL"}/pkgs/lib"

  The search path can be specified through the ‘-I’ command-line flag
  and through the colon-separated ‘NIX_PATH’ environment variable,
  e.g.,

    $ nix-build -I /etc/nixos ...

  If a file is not found in the search path, an error message is
  lazily thrown.
2011-08-06 16:05:24 +00:00
Eelco Dolstra 0a623a10c7 * Allow a default value in attribute selection by writing
x.y.z or default

  (as originally proposed in
  https://mail.cs.uu.nl/pipermail/nix-dev/2009-September/002989.html).

  For instance, an expression like

    stdenv.lib.attrByPath ["features" "ckSched"] false args

  can now be written as

    args.features.ckSched or false
2011-07-13 12:19:57 +00:00
Ludovic Courtès 1ea6e06445 doc: Fix typo. 2011-06-30 15:48:40 +00:00
Ludovic Courtès 5c9e9f732d Add support for the build-timeout' and --timeout' options. 2011-06-30 15:19:13 +00:00
Eelco Dolstra 48bdbbf070 * Fix a bug in the documentation (reported by Olexiy Buyanskyy,
Nix/215).
2011-03-15 13:12:59 +00:00
Eelco Dolstra e60c962fb8 * Add an operation `nix-store -q --size'. 2010-11-17 12:40:52 +00:00
Eelco Dolstra fb9368b5a0 * Sync with the trunk. 2010-11-16 12:49:47 +00:00
Eelco Dolstra 26def5392f * Document Boehm GC support. 2010-10-29 14:44:02 +00:00
Rob Vermaas 8dadcede65 nix manual: fix 'install' -> 'uninstall' in garbage collection section of introduction 2010-10-06 19:04:04 +00:00
Eelco Dolstra 955d11aae7 * Sync with the trunk. 2010-08-24 09:56:28 +00:00
Eelco Dolstra 2de17f4edc * Update date. 2010-08-17 10:06:26 +00:00
Eelco Dolstra 86f65edf4e * Document --cores in the manual. 2010-08-17 07:22:05 +00:00
Eelco Dolstra b75e1043a3 * Typo. 2010-08-16 13:23:45 +00:00
Eelco Dolstra 12721a3a9a * Nix 0.16 release notes. 2010-08-16 12:38:32 +00:00
Eelco Dolstra aa45027818 * Sync with the trunk. 2010-05-12 22:13:09 +00:00
Eelco Dolstra 83dfa89870 * Sync with the trunk. 2010-05-07 14:46:47 +00:00
Eelco Dolstra 7fa338f4ba * Don't use smart quotes where normal ASCII quotes are intended.
Actually, don't use quotes at all.  (Reported by Howard B. Golden.)
2010-05-02 21:27:50 +00:00
Lluís Batlle i Rossell d77331d32f Fixing a typo in the nix-store manual, that could confuse a bit too much (--delete/--gc) 2010-04-25 20:52:49 +00:00
Eelco Dolstra d66ea83a76 * Sync with the trunk. 2010-04-20 09:20:29 +00:00
Eelco Dolstra f3b8833a48 * Drop the dependency on the ATerm library. 2010-04-19 14:51:58 +00:00
Eelco Dolstra c4cfb392d3 2010-03-17 10:08:34 +00:00
Eelco Dolstra 8e3d98eb41 * Release notes for Nix 0.15. 2010-03-16 13:12:18 +00:00
Eelco Dolstra fe1b8781ae * Fix a broken link (reported by Peter Koppstein). 2010-03-16 12:58:20 +00:00
Eelco Dolstra a3c63d0d6c * Disable fsync() in SQLite if the fsync-metadata option is set to
false.
* Change the default for `fsync-metadata' to true.
* Disable `fsync-metadata' in `make check'.
2010-02-24 13:12:57 +00:00
Eelco Dolstra 3b3e1025c3 * Typo. Reported by Peter Koppstein. 2010-02-12 10:50:30 +00:00
Eelco Dolstra e08dbff9a8 * Fix a broken link (reported by Bjorn Buckwalter). 2010-02-05 10:17:13 +00:00
Eelco Dolstra f36b7e7579 2010-02-04 14:00:47 +00:00
Eelco Dolstra 4d8a85b8f5 * Updated the release notes. 2010-02-03 11:00:35 +00:00
Eelco Dolstra 07ffdc2862 * Added an option "fsync-metadata" to fsync() changes to
/nix/var/nix/db.
* Removed the function writeStringToFile since it does (almost) the
  same thing as writeFile.
2010-01-29 12:22:58 +00:00
Eelco Dolstra 3a78af1e24 * Release notes. 2009-12-09 21:02:24 +00:00
Eelco Dolstra 3d55f1eb57 * A command `nix-store --query --roots <paths>' to find the garbage
collector roots that point (directly or indirectly) to the given
  paths.
2009-11-23 18:16:25 +00:00
Eelco Dolstra 8824d60fe5 * Remove the --use-atime / --max-atime garbage collector flags. Many
(Linux) machines no longer maintain the atime because it's too
  expensive, and on the machines where --use-atime is useful (like the
  buildfarm), reading the atimes on the entire Nix store takes way too
  much time to make it practical.
2009-11-20 17:12:38 +00:00
Eelco Dolstra 327a232c85 * Remove support for old (before Nix 0.12pre12020) databases. 2009-11-06 01:15:44 +00:00
Eelco Dolstra 268d90a03e * Various updates. 2009-11-05 09:07:43 +00:00
Eelco Dolstra 1ff8758f76 * Manual updates. 2009-11-04 16:52:35 +00:00
Eelco Dolstra 0f79ad47c5 2009-09-25 12:36:03 +00:00
Eelco Dolstra 51ad64cc07 * Use xmllint (>= 2.7.4) for RelaxNG validation instead of Jing. 2009-09-18 11:45:56 +00:00
Eelco Dolstra d413612029 * Remove the redundant <sections> around refentries. 2009-07-14 14:58:12 +00:00
Eelco Dolstra 1f169f43b3 * Leave out the collaborators / revision history page. 2009-07-10 13:42:12 +00:00
Eelco Dolstra 5e2e2f10ef 2009-07-10 11:48:49 +00:00
Eelco Dolstra f2c3fc5191 * Don't show trace information by default (`--show-trace' to enable).
NixOS evaluation errors in particular look intimidating and
  generally aren't very useful.  Ideally the builtins.throw messages
  should be self-contained.
2009-06-30 13:28:29 +00:00
Eelco Dolstra 14bc3ce3d6 * Canonicalise timestamps in the Nix store to 1 (1970-01-01 00:00:01
UTC) rather than 0 (00:00:00).  1 is a better choice because some
  programs use 0 as a special value.  For instance, the Template
  Toolkit uses a timestamp of 0 to denote the non-existence of a file,
  so it barfs on files in the Nix store (see
  template-toolkit-nix-store.patch in Nixpkgs).  Similarly, Maya 2008
  fails to load script directories with a timestamp of 0 and can't be
  patched because it's closed source.

  This will also shut up those "implausibly old time stamp" GNU tar
  warnings.
2009-06-13 16:30:58 +00:00
Eelco Dolstra c6cb792d48 2009-05-26 16:32:02 +00:00
Eelco Dolstra f751c2966b * Don't have a bugs section in the manual. Bugs should be kept in the
bug tracker.
2009-05-07 13:11:58 +00:00
Eelco Dolstra 435a93b5d8 * Remove references to __XXX primops. 2009-04-14 13:03:27 +00:00
Eelco Dolstra 8b2a01a8c2 * Release notes. 2009-04-14 12:02:22 +00:00
Eelco Dolstra 3a2bbe7f8a * Simplify communication with the hook a bit (don't use file
descriptors 3/4, just use stdin/stderr).
2009-03-28 19:29:55 +00:00
Marc Weber 2ef579d1aa documentation for previous commit 2009-02-05 19:35:44 +00:00
Eelco Dolstra 09bc0c502c * Install the release notes. 2008-11-29 00:31:39 +00:00
Eelco Dolstra c202523e53 2008-11-20 12:01:05 +00:00
Eelco Dolstra 60564410ef * Patterns. 2008-11-19 17:50:25 +00:00
Eelco Dolstra 2668a43388 2008-11-19 17:27:52 +00:00
Eelco Dolstra 63ccd72496 * Updated the manual. 2008-11-19 17:00:32 +00:00
Eelco Dolstra 7509d70f9d * Documented some of the sharing mechanisms. 2008-11-19 15:20:46 +00:00
Eelco Dolstra 2369b122d1 * Install documentation in $(docdir) (i.e. share/doc/nix). 2008-11-19 13:19:09 +00:00
Eelco Dolstra 07d3a38726 * Remove references to Berkeley DB, including most of the
troubleshooting section.  W00t.
2008-11-19 11:58:33 +00:00
Eelco Dolstra f5325d292d * Release notes. 2008-11-19 10:59:36 +00:00
Eelco Dolstra fa791116a3 * Get rid of nix-pack-closure / nix-unpack-closure, they're redundant. 2008-11-18 14:43:40 +00:00
Eelco Dolstra 72f3ea7358 * Moved some stuff to the Nixpkgs manual.
* Updated the release notes.
2008-08-05 11:03:05 +00:00
Eelco Dolstra 7cd88b1dec * Generalised the dependencyClosure primop to builtins.genericClosure,
which is hopefully more useful.
* New primops: length, mul, div.
2008-07-11 13:29:04 +00:00
Eelco Dolstra d567baabbd * Export the nix-env derivation name parsing and version comparison
logic through the `parseDrvName' and `compareVersions' primops.
  This will allow expressions to easily check whether some dependency
  is a specific needed version or falls in some version range.  See
  tests/lang/eval-okay-versions.nix for examples.
2008-07-01 10:10:32 +00:00
Eelco Dolstra 2818b7cee6 * Updated some URLs. 2008-06-11 15:39:38 +00:00
Eelco Dolstra 4ed01ed791 * Updated some URLs (did this a long time ago but forgot to
commit...).
2008-06-09 13:42:13 +00:00
Eelco Dolstra 66c51dc215 * nix-store --dump-db / --load-db to dump/load the Nix DB.
* nix-store --register-validity: option to supply the content hash of
  each path.
* Removed compatibility with Nix <= 0.7 stores.
2008-01-29 18:17:36 +00:00
Eelco Dolstra d4117859d6 2007-12-31 16:57:12 +00:00
Eelco Dolstra e0ca671491 * More documentation. 2007-12-31 02:52:17 +00:00
Eelco Dolstra 6bdecfacbb * Documented a bunch of nix-store commands. 2007-12-31 01:52:57 +00:00
Eelco Dolstra 454f571f87 2007-12-31 01:22:09 +00:00
Eelco Dolstra 4c82983010 2007-12-31 01:17:25 +00:00
Eelco Dolstra dedd62dd0c * More release notes. 2007-12-31 00:08:09 +00:00
Eelco Dolstra 59707975a3 * Documented indented string literals.
* Release notes.
2007-12-30 23:36:09 +00:00
Eelco Dolstra d4950f207f * component -> package. 2007-12-04 11:42:58 +00:00
Eelco Dolstra 6d6c68c0d2 * Added a new kind of multi-line string literal delimited by two
single quotes.  Example (from NixOS):

    job = ''
      start on network-interfaces

      start script

        rm -f /var/run/opengl-driver
        ${if videoDriver == "nvidia"        
          then "ln -sf ${nvidiaDrivers} /var/run/opengl-driver"
          else if cfg.driSupport
          then "ln -sf ${mesa} /var/run/opengl-driver"
          else ""
        }

        rm -f /var/log/slim.log

      end script
    '';

  This style has two big advantages:

  - \, ' and " aren't special, only '' and ${.  So you get a lot less
    escaping in shell scripts / configuration files in Nixpkgs/NixOS.
    The delimiter '' is rare in scripts (and can usually be written as
    "").  ${ is also fairly rare.

    Other delimiters such as <<...>>, {{...}} and <|...|> were also
    considered but this one appears to have the fewest drawbacks
    (thanks Martin).

  - Indentation is intelligently stripped so that multi-line strings
    can follow the nesting structure of the containing Nix
    expression.  E.g. in the example above 6 spaces are stripped from
    the start of each line.  This prevents unnecessary indentation in
    generated files (which sometimes even breaks things).

  See tests/lang/eval-okay-ind-string.nix for some examples.
2007-11-30 16:48:45 +00:00
Eelco Dolstra 12d0a1eb75 * Troubleshooting entry about running out of locks. 2007-11-29 14:15:33 +00:00