| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Upstream is deprecating `stdenv.lib`, so let’s do the same.
|
|
|
|
| |
Small script to deploy my machines.
|
|
|
|
|
|
|
|
|
|
|
| |
skarnet thought it would be wise to completely change the skalibs
exec function interface without any backwards compat, so here we are.
Have to reverse the code a bit, because `xmexec0` is a recursive
`#define` pointing to `xmexec0_af`.
`record-get` gets a rust treatment, it doesn’t really need the C
interface just to exec into prog.
|
|
|
|
| |
Dumb wrapper around `nix-instantiate` for something I often need.
|
|
|
|
|
|
|
|
|
| |
Small tool which takes a block of nix options that should produce a
script to run, and then calls the script with the rest of argv
e nix-run { -A foobar } a b c
calls `nix-build -A foobar && ./result a b c`.
|
|
|
|
|
|
|
|
|
|
| |
This is a working PoC of specifying module configs as toml
configuration with simple to understand semantics.
Both the option definitions and the actual config values can be
specified via the toml DSL.
This is extremely happy-path for now, so errors are gonna be horrible.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the goal of using `e` with argv is interactive execution of
block-style commands from the command line, the use of { and } for
blocks is sub-optimal, since bash (and ostensibly also fish) interpret
them as metacharacters and assign some semantics.
[ and ] on the other hand are not taken (apart from the `[`
executable, which is only relevant in command position and can always
be replaced by the `test` command). So we translate a stand-alone "["
argument to "{" and the same for "]"/"}", giving us a transparent
block syntax.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Often times I want to execute “block-style” programs directly, but it
is rather inconvenient to type out `execlineb -c "…"` every time, plus
-c wants the argv as a single string instead of an argv.
The alternative, using the block representation with leading spaces,
is even less ergonomic.
So instead of
execlineb -c "nix-run { -A pkgs.profpatsch.e ~/vuizvui } echo hello"
or even
nix-run ' -A' ' pkgs.profpatsch.e' ' /home/me/vuizvui' '' echo hello
I can now write
e nix-run { -A pkgs.profpatsch.e ~/vuizvui } echo hello
and it will work as expected (provided your shell expands inside {}
blocks, which bash does but fish doesn’t for some reason).
If no argument is passed, e falls back to opening a shell prompt.
|
|
|
|
|
| |
The tex sources are in a different place currently, planning to move
them here once I’ve nixified them sometime in the future.
|
|
|
|
| |
Co-Authored-By: midzer <midzer@gmail.com>
|
|
|
|
|
|
|
| |
It was only used for a single use-case, by now all browsers support
this functionality. It’s a pretty heavy dependency for a single use :)
Co-Authored-By: midzer <midzer@gmail.com>
|
| |
|
|
|
|
| |
Improvements to filterSourceGitignore were made.
|
| |
|
| |
|
| |
|
|
|
|
| |
Before, nman had a habit of leaving result* links lying around.
|
|
|
|
|
|
|
| |
The other lightning is not an official Unicode codepoint, so most
fonts don’t have it.
Thanks sterni!
|
| |
|
|
|
|
| |
It’s referenced in id.txt, but I forgot to add it.
|
|
|
|
|
|
| |
I’ve been expanding the list somewhat, it’s time to put them on the
website. Moves them into a separate file, which was easier than
expected.
|
| |
|
|
|
|
|
|
|
| |
- Add Paris as location
- bump date
- Change XMPP account to headcounter.org
- clearsign
|
|
|
|
|
|
| |
Those tell the browser that it’s going to need them later, even it
hasn’t found them yet (e.g. the fonts can only be found after loading
the CSS).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'm not familiar with the "easy-dhall-nix" project, but the repository
is imported into Vuizvui via import-from-derivation. While this by
itself is not a big issue (apart from contributing hugely to evaluation
time, we're already at around an hour), the "dhall-nix" derivation is in
turn imported again via importDhall, so whenever something breaks with
dhall-nix, our evaluation will break as well.
Unfortunately, something is broken right now:
building '/nix/store/c363947v9qk287d07qj2kpj60rmzwalj-dhall-nix-1.1.14-x86_64-linux.tar.bz2.drv'...
trying https://github.com/dhall-lang/dhall-haskell/releases/download/1.32.0/dhall-nix-1.1.14-x86_64-linux.tar.bz2
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 648 100 648 0 0 2592 0 --:--:-- --:--:-- --:--:-- 2581
100 2255k 100 2255k 0 0 1639k 0 0:00:01 0:00:01 --:--:-- 6287k
hash mismatch in fixed-output derivation '/nix/store/yhls1ffnvp1nbjsm0xr3l1z6j6x4waqh-dhall-nix-1.1.14-x86_64-linux.tar.bz2':
wanted: sha256:1j32jf0is0kikfw7h9w3n8ikw70bargr32d1cyasqgmb7s7mvs1c
got: sha256:1qs5p05qfk5xs1ajwyhn27m0bzs96lnlf3b4gnkffajhaq7hiqll
cannot build derivation '/nix/store/aj5ag721b9gm4an6yxh2ljg19ixg4alv-dhall-nix-simple.drv': 1 dependencies couldn't be built
The reason why this happens is because GitHub's tarballs are not
deterministic and whenever GitHub changes something in the way these are
generated, we get a hash mismatch.
For exactly that reason, the fetchFromGitHub wrapper in nixpkgs uses
fetchzip instead of fetchurl, so that file ordering in the archive
doesn't matter.
Unfortunately, the upstream project still uses fetchurl, but since the
URLs and hashes have changed due to a bump to Dhall version 1.33.1, I've
choosen to switch to latest master instead of monkeypatching via
extraPostFetch.
With this bandaid, we shouldn't run into a hash collision until either
the next GC or until the upstream project has switched to either
fetchFromGitHub or fetchzip.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Profpatsch, @justinwoo
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
I want to be able to open http(s) links that are e.g. images directly
in the right application. Aka web urls should be transparent, instead
of always opening everthing in the browser.
This adds some silly ways of connecting to the server and parsing
out the headers, in order to fetch the content-type.
|
|
|
|
|
|
|
|
| |
This is an experiment about whether we can get away with using the
non-recursive version by default.
The U::Record variant uses a Vec instead of a HashMap by default, to
make encoding from lists easier, and keep the ordering as given.
|
| |
|
|
|
|
|
|
|
|
| |
It’s a lot simpler to just export the parsed attribute as envvars.
Remove the substitute stuff (it already went into the el_substitute
lib anyway) and replace the xpathexec0 code with the function from the
el_exec lib.
|
|
|
|
|
| |
A small parser for http/https URLs.
Substitutes host/port/path in argv.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This was previously located verbatim on my webserver.
Since `df.eu` thought it was a good idea to unilaterally cancel it
when I moved my domain, it is now a good idea to nixify what was
there.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The C implementation of el_semicolon in execline only reads one
argument at a time and returns an index into the rest of argv.
This makes sense for the usual application of programs using it, which
is just reading a few arguments and a block or two, and then executing
into `prog`. `prog` could be anything really, including additional
blocks.
The new `el_semicolon_full_argv` function exports the previous
behaviour of parsing the whole thing.
As a nice side-effect, we return the rest of argv in-place.
|
|
|
|
|
|
|
|
|
|
|
| |
el_exec: wraps the various execve wrappers in skalib that are useful
for writing execline-like utils. currently only `xpathexec0` is
supported, which execs into the argv you give it or errors with the
right error if file not found.
el_substitute: execline argv substitution! Wraps the execline
function, so it will behave exactly the same as the existing execline
utils, like `importas`.
|
| |
|
|
|
|
|
| |
We can define a more or less complete generator in less than 50 lines
of nix. Nice.
|
| |
|
| |
|
|
|
|
|
| |
Instead of adding a new type, it just uses the 2^1 natural, which has
exactly two possibilities.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The “shallow” parser uses the fact that every netencode value is
length-encoded (or a scalar with a fixed length).
It does not need to parse the inner values in order to get the
structure of the thing.
That means that we can implement very fast structure-based operations,
like “take the first 5 elements of a list” or “get the record value
with the key name `foo`”.
We can even do things like intersperse elements into a list of values
and write the resulting netencode structure to a socket, without ever
needing to copy the data (it’s all length-indexed pointers to bytes).
|
|
|
|
|
| |
Less generic, has the spirit of “netstrings, but extended to a
structured encoding format”.
|
| |
|
| |
|
| |
|