Experimental NixOS repo
Find a file
bors[bot] 01b0555117
Merge #225
225: lib: only readDir if path exists with safeReadDir r=nrdxp a=Pacman99

After doing this for the second time, I realized it might be good to make a lib function for it and do it across lib.
Create a function called `safeReadDir` that only uses `builtins.readDir` if the path exists. With `optionalAttrs` any function that relies on the output won't fail since they still get an empty attrset.
Then replace all uses of `readDir` with the safe version.

Co-authored-by: Pacman99 <pachum99@gmail.com>
2021-04-01 20:08:55 +00:00
.github changelog: only on release 2021-03-23 22:59:01 -06:00
cachix cachix: fix link after name change 2021-02-17 22:39:43 -07:00
compat flake: manage flake-compate as input 2021-02-14 22:08:24 -07:00
doc doc: enact bootstrapping section 2021-03-16 19:24:47 -05:00
extern users: wire up all user profiles to userSuites and pass to home-manager 2021-03-23 09:43:37 -07:00
hosts move hosts implementation logic to lib as mkHosts 2021-03-29 09:05:54 -07:00
lib lib: only readDir if path exists with safeReadDir 2021-04-01 11:39:02 -07:00
modules project rename: nixflk -> devos 2021-02-17 18:31:33 -07:00
nix ci: don't build legacyPackages 2021-03-26 18:29:48 -06:00
overlays nix: remove patch for default unstable features 2021-03-22 23:29:30 -06:00
overrides subflakes: make first class citizens 2021-03-14 21:27:58 -06:00
pkgs nix: remove patch for default unstable features 2021-03-22 23:29:30 -06:00
profiles core: really fix #162 2021-03-14 21:49:35 -06:00
secrets project rename: nixflk -> devos 2021-02-17 18:31:33 -07:00
shell shell: get extern and overrides to pass to mkpkgs 2021-03-27 10:09:05 -07:00
suites move suites implementation logic to lib as mkSuites 2021-03-29 09:05:54 -07:00
tests lib: only readDir if path exists with safeReadDir 2021-04-01 11:39:02 -07:00
theme doc: finish flk reference 2021-02-14 17:41:15 -07:00
users users: add Home Manager section to doc 2021-03-23 09:43:37 -07:00
.editorconfig editorconfig: fixup 2020-12-30 01:00:12 -07:00
.envrc treewide cleanups and refactoring for initial tests (#157) 2021-03-14 07:10:51 +00:00
.gitignore doc: new mdbook documentation 2021-02-14 02:46:05 -07:00
book.toml book.toml: no longer needed 2021-02-17 22:40:36 -07:00
bors.toml bors: no squash merge 2021-03-16 15:15:26 -06:00
cachix.nix format: apply nixpkgs-fmt 2020-07-30 22:17:28 -06:00
COPYING init 2019-12-02 22:18:30 -07:00
default.nix treewide cleanups and refactoring for initial tests (#157) 2021-03-14 07:10:51 +00:00
flake.lock Merge #220 2021-03-27 00:10:58 +00:00
flake.nix flake: update to use mkSuites and mkHosts 2021-03-29 09:05:54 -07:00
README.md README.md: update NixOS badge 2021-03-27 09:16:37 -06:00
shell.nix compat: fixes 2021-01-23 16:45:10 -07:00
SUMMARY.md doc: enact bootstrapping section 2021-03-16 19:24:47 -05:00

Bors enabled MIT License NixOS

⚠ Advisory ⚠

DevOS requires the flakes feature available via an experimental branch of nix. Until nix 3.0 is released, this project should be considered unstable, though quite usable as flakes have been maturing well for a while.

Introduction

DevOS grants a simple way to use, deploy and manage NixOS systems for personal and productive use. A sane repository structure is provided, integrating several popular projects like home-manager, devshell, and more.

Striving for nix first™ solutions with unobstrusive implementations, a flake centric approach is taken for useful conveniences such as automatic source updates.

Skip the indeterminate nature of other systems, and the perceived tedium of bootstrapping Nix. It's easier than you think!

Status: Alpha

A lot of the implementation is less than perfect, and huge redesigns will happen. There are unstable versions (0.x.x) to help users keep track of changes and progress.

Getting Started

Check out the guide to get up and running.

In the Wild

The author maintains his own branch, so you can take inspiration, direction, or make critical comments about the code. 😜

Motivation

NixOS provides an amazing abstraction to manage our environment, but that new power can sometimes bring feelings of overwhelm and confusion. Having a turing complete system can easily lead to unlimited complexity if we do it wrong. Instead, we should have a community consensus on how to manage a NixOS system and its satellite projects, from which best practices can evolve.

The future is declarative! 🎉

Upstream

I'd love to see this in the nix-community should anyone believe its reached a point of maturity to be generally useful, but I'm all for waiting until 1.0#121 to save the cache work, too.

Community Profiles

There are two branches from which to choose: core and community. The community branch builds on core and includes several ready-made profiles for discretionary use.

Every package and NixOS profile declared in community is uploaded to cachix, so everything provided is available without building anything. This is especially useful for the packages that are overridden from master, as without the cache, rebuilds are quite frequent.

Inspiration & Art

License

DevOS is licensed under the MIT License.