diff options
author | sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org> | 2021-02-11 13:27:18 +0100 |
---|---|---|
committer | sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org> | 2021-02-11 13:29:38 +0100 |
commit | 5bd756eaf27882820cb59e0ecf9c305f08b3b3e3 (patch) | |
tree | 7c9a2be8c947b6fb4ae3e144a0cf8de3c61b0efc /pkgs/profpatsch/nman | |
parent | 249ebd12a60a8828f79af0a36b1e049afac8b4d0 (diff) |
modules/user/sternenseemann/sway: fix startup by enabling opengl
sway needs opengl driver's to be enabled and loadable in order to start. I previously didn't notice this oversight as I still had them loaded and did not reboot after the rebuild.
Diffstat (limited to 'pkgs/profpatsch/nman')
-rw-r--r-- | pkgs/profpatsch/nman/default.nix | 15 | ||||
-rw-r--r-- | pkgs/profpatsch/nman/nman.rs | 34 |
2 files changed, 36 insertions, 13 deletions
diff --git a/pkgs/profpatsch/nman/default.nix b/pkgs/profpatsch/nman/default.nix index 96699833..bb4b4544 100644 --- a/pkgs/profpatsch/nman/default.nix +++ b/pkgs/profpatsch/nman/default.nix @@ -1,14 +1,3 @@ -{ lib, runCommand, go }: - -runCommand "nman" { - meta = with lib; { - description = "Invoke manpage in temporary nix-shell"; - license = licenses.gpl3; - }; -} '' - mkdir cache - env GOCACHE="$PWD/cache" \ - ${lib.getBin go}/bin/go build -o nman ${./nman.go} - install -D nman $out/bin/nman -'' +{ writeRustSimpleBin }: +writeRustSimpleBin "nman" {} ./nman.rs diff --git a/pkgs/profpatsch/nman/nman.rs b/pkgs/profpatsch/nman/nman.rs new file mode 100644 index 00000000..16bd6271 --- /dev/null +++ b/pkgs/profpatsch/nman/nman.rs @@ -0,0 +1,34 @@ +#[derive(Debug)] +enum DrvOutput<'a> { + Out, + Bin, + Lib, + Man, + Dev, + DevDoc, + DevMan, + Other(&'a [u8]), +} + +#[derive(Debug)] +struct DrvWithOutput<'a> { + drv_path: &'a [u8], + output: DrvOutput<'a>, +} + +fn parse_drv_path<'a>(path: &'a [u8]) -> Option<DrvWithOutput<'a>> { + let mut split = path.split(|c| char::from(c.to_owned()) == '!'); + split.next().map(|p| DrvWithOutput { + drv_path: p, + output: split.next().map(|s| DrvOutput::Other(s)) + .unwrap_or(DrvOutput::Out), + }).and_then(|parsed| match split.next() { + Some(_) => None, + None => Some(parsed), + }) +} + +fn main() -> std::io::Result<()> { + println!("{:?}", parse_drv_path(b"/nix/store/58i9psln992xjwk8ig1v3l3a4p9sslnp-lowdown-0.7.9.drv")); + Ok(()) +} |