Welcome to devenv.sh! Your portal to the future, in the style of the past!

devenv.sh

Explore the world of devenv.sh, built with the best technologies of the 90s and the power of modern web development!

Best viewed with IE Logo or Netscape Logo

Getting Started

This section is Under Construction, but here are some hints:

Topic Status
Files and variables Ready!
Ad-hoc environments Ready!
Writing devenv.nix Ready!
Writing devenv.yaml Under Construction

Scripts

Scripts are your friends!

devenv.nix
{pkgs,...}:{
packages=[pkgs.curl pkgs.jq];
scripts.silly-example.exec='curl "https://httpbin.org/get?$1" | jq '.args'';
}
            

Aliases & args

Here's an example that shows how to define an alias & forward arguments:

scripts.foo.exec = ''npx @foo/cli "$@";'';
            

Pinning packages inside scripts

Sometimes we don't want to expose the tools to the shell but still make sure they are pinned in a script:

devenv.nix
{pkgs,...}:{
scripts.silly-example.exec='${pkgs.curl}/bin/curl "https://httpbin.org/get?$1" |${pkgs.jq}/bin/jq '.args'';
}
            

Using your favourite language

Scripts can also execute using a package and have a description, which can be useful in yourenterShell.

devenv.nix
{pkgs,config,lib,...}:{
scripts.python-hello={exec='print("Hello, world!")';package=config.languages.python.package;description="hello world in Python";};
scripts.nushell-greet={exec='def greet [name] {["hello" $name]}greet "world"'';package=pkgs.nushell;binary="nu";description="Greet in Nu Shell";};
enterShell='echoecho 🦾 Helper scripts you can run to make your development richer:echo 🦾${pkgs.gnused}/bin/sed -e 's| |••|g' -e 's|=| |' <
            
          
Under Construction New! Generate your own 90s page here! Under Construction