faa4b16358
This module is a continuation of #2630 by MaeIsBad. It also adds a module `virtualisation.oci-containers` that is equivalent to the one in NixOS. Basically it allows a simple toggle to activate oci-container services and commands. We also support Podman on mac. Note, Podman requires a VM on mac, which has to be started before any Podman commands can be executed. Users might sometimes require VMs that use different architectures than the default VM started by Podman. Thus, they get the option to define the VM(s) that will be initialized and started by podman. Since Podman has to start a machine, it's best to do it using launchd. The configuration of the machines requires a JSON, generated from an attrset in Home Manager, which is where Python script comes into play to take care of diff-ing the `podman machine list` to CRUD them. PR #4331 Co-authored-by: MaeIsBad <26093674+MaeIsBad@users.noreply.github.com>
271 lines
8 KiB
Nix
271 lines
8 KiB
Nix
{ pkgs ? import <nixpkgs> {}, enableBig ? true }:
|
|
|
|
let
|
|
|
|
lib = import ../modules/lib/stdlib-extended.nix pkgs.lib;
|
|
|
|
nmt = fetchTarball {
|
|
url =
|
|
"https://gitlab.com/api/v4/projects/rycee%2Fnmt/repository/archive.tar.gz?sha=4df00c569b1badfedffecd7ccd60f794550486db";
|
|
sha256 = "1cyly1zazgj8z6bazml4js7lqaqvpp8lw045aqchlpvp42bl1lp4";
|
|
};
|
|
|
|
modules = import ../modules/modules.nix {
|
|
inherit lib pkgs;
|
|
check = false;
|
|
} ++ [
|
|
{
|
|
# Bypass <nixpkgs> reference inside modules/modules.nix to make the test
|
|
# suite more pure.
|
|
_module.args.pkgsPath = pkgs.path;
|
|
|
|
# Fix impurities. Without these some of the user's environment
|
|
# will leak into the tests through `builtins.getEnv`.
|
|
xdg.enable = true;
|
|
home = {
|
|
username = "hm-user";
|
|
homeDirectory = "/home/hm-user";
|
|
stateVersion = lib.mkDefault "18.09";
|
|
};
|
|
|
|
# Avoid including documentation since this will cause
|
|
# unnecessary rebuilds of the tests.
|
|
manual.manpages.enable = lib.mkDefault false;
|
|
|
|
imports = [ ./asserts.nix ./big-test.nix ./stubs.nix ];
|
|
|
|
test.enableBig = enableBig;
|
|
}
|
|
];
|
|
|
|
isDarwin = pkgs.stdenv.hostPlatform.isDarwin;
|
|
isLinux = pkgs.stdenv.hostPlatform.isLinux;
|
|
|
|
in
|
|
|
|
import nmt {
|
|
inherit lib pkgs modules;
|
|
testedAttrPath = [ "home" "activationPackage" ];
|
|
tests = builtins.foldl' (a: b: a // (import b)) { } ([
|
|
./lib/generators
|
|
./lib/types
|
|
./modules/files
|
|
./modules/home-environment
|
|
./modules/misc/fontconfig
|
|
./modules/misc/manual
|
|
./modules/misc/nix
|
|
./modules/misc/specialisation
|
|
./modules/programs/aerc
|
|
./modules/programs/alacritty
|
|
./modules/programs/alot
|
|
./modules/programs/antidote
|
|
./modules/programs/aria2
|
|
./modules/programs/atuin
|
|
./modules/programs/autojump
|
|
./modules/programs/bacon
|
|
./modules/programs/bash
|
|
./modules/programs/bat
|
|
./modules/programs/bottom
|
|
./modules/programs/broot
|
|
./modules/programs/browserpass
|
|
./modules/programs/btop
|
|
./modules/programs/carapace
|
|
./modules/programs/cava
|
|
./modules/programs/comodoro
|
|
./modules/programs/darcs
|
|
./modules/programs/dircolors
|
|
./modules/programs/direnv
|
|
./modules/programs/emacs
|
|
./modules/programs/feh
|
|
./modules/programs/fish
|
|
./modules/programs/gallery-dl
|
|
./modules/programs/gh
|
|
./modules/programs/gh-dash
|
|
./modules/programs/git
|
|
./modules/programs/git-cliff
|
|
./modules/programs/gpg
|
|
./modules/programs/gradle
|
|
./modules/programs/granted
|
|
./modules/programs/helix
|
|
./modules/programs/himalaya
|
|
./modules/programs/htop
|
|
./modules/programs/hyfetch
|
|
./modules/programs/i3status
|
|
./modules/programs/irssi
|
|
./modules/programs/jujutsu
|
|
./modules/programs/k9s
|
|
./modules/programs/kakoune
|
|
./modules/programs/khal
|
|
./modules/programs/khard
|
|
./modules/programs/kitty
|
|
./modules/programs/ledger
|
|
./modules/programs/less
|
|
./modules/programs/lf
|
|
./modules/programs/lsd
|
|
./modules/programs/lieer
|
|
./modules/programs/man
|
|
./modules/programs/mbsync
|
|
./modules/programs/micro
|
|
./modules/programs/mpv
|
|
./modules/programs/mu
|
|
./modules/programs/mujmap
|
|
./modules/programs/ncmpcpp
|
|
./modules/programs/ne
|
|
./modules/programs/neomutt
|
|
./modules/programs/neovim
|
|
./modules/programs/newsboat
|
|
./modules/programs/nheko
|
|
./modules/programs/nix-index
|
|
./modules/programs/nnn
|
|
./modules/programs/nushell
|
|
./modules/programs/oh-my-posh
|
|
./modules/programs/openstackclient
|
|
./modules/programs/pandoc
|
|
./modules/programs/papis
|
|
./modules/programs/pet
|
|
./modules/programs/pistol
|
|
./modules/programs/pls
|
|
./modules/programs/powerline-go
|
|
./modules/programs/pubs
|
|
./modules/programs/pyenv
|
|
./modules/programs/qcal
|
|
./modules/programs/qutebrowser
|
|
./modules/programs/readline
|
|
./modules/programs/rio
|
|
./modules/programs/ripgrep
|
|
./modules/programs/rtx
|
|
./modules/programs/ruff
|
|
./modules/programs/sagemath
|
|
./modules/programs/sapling
|
|
./modules/programs/sbt
|
|
./modules/programs/scmpuff
|
|
./modules/programs/sioyek
|
|
./modules/programs/sm64ex
|
|
./modules/programs/ssh
|
|
./modules/programs/starship
|
|
./modules/programs/taskwarrior
|
|
./modules/programs/texlive
|
|
./modules/programs/thefuck
|
|
./modules/programs/tmate
|
|
./modules/programs/tmux
|
|
./modules/programs/topgrade
|
|
./modules/programs/translate-shell
|
|
./modules/programs/vim-vint
|
|
./modules/programs/vscode
|
|
./modules/programs/watson
|
|
./modules/programs/wezterm
|
|
./modules/programs/yazi
|
|
./modules/programs/zellij
|
|
./modules/programs/zplug
|
|
./modules/programs/zsh
|
|
./modules/services/syncthing/common
|
|
./modules/virtualisation/podman
|
|
./modules/xresources
|
|
] ++ lib.optionals isDarwin [
|
|
./modules/launchd
|
|
./modules/services/git-sync-darwin
|
|
./modules/services/imapnotify-darwin
|
|
./modules/targets-darwin
|
|
] ++ lib.optionals isLinux [
|
|
./modules/config/i18n
|
|
./modules/i18n/input-method
|
|
./modules/misc/debug
|
|
./modules/misc/editorconfig
|
|
./modules/misc/gtk
|
|
./modules/misc/numlock
|
|
./modules/misc/pam
|
|
./modules/misc/qt
|
|
./modules/misc/xdg
|
|
./modules/misc/xsession
|
|
./modules/programs/abook
|
|
./modules/programs/autorandr
|
|
./modules/programs/awscli
|
|
./modules/programs/beets # One test relies on services.mpd
|
|
./modules/programs/borgmatic
|
|
./modules/programs/boxxy
|
|
./modules/programs/firefox
|
|
./modules/programs/foot
|
|
./modules/programs/fuzzel
|
|
./modules/programs/getmail
|
|
./modules/programs/gnome-terminal
|
|
./modules/programs/hexchat
|
|
./modules/programs/i3status-rust
|
|
./modules/programs/imv
|
|
./modules/programs/kodi
|
|
./modules/programs/looking-glass-client
|
|
./modules/programs/mangohud
|
|
./modules/programs/ncmpcpp-linux
|
|
./modules/programs/pqiv
|
|
./modules/programs/rbw
|
|
./modules/programs/rofi
|
|
./modules/programs/rofi-pass
|
|
./modules/programs/swaylock
|
|
./modules/programs/swayr
|
|
./modules/programs/terminator
|
|
./modules/programs/thunderbird
|
|
./modules/programs/waybar
|
|
./modules/programs/wlogout
|
|
./modules/programs/wofi
|
|
./modules/programs/wpaperd
|
|
./modules/programs/xmobar
|
|
./modules/programs/yt-dlp
|
|
./modules/services/avizo
|
|
./modules/services/barrier
|
|
./modules/services/borgmatic
|
|
./modules/services/cachix-agent
|
|
./modules/services/cliphist
|
|
./modules/services/clipman
|
|
./modules/services/comodoro
|
|
./modules/services/darkman
|
|
./modules/services/devilspie2
|
|
./modules/services/dropbox
|
|
./modules/services/emacs
|
|
./modules/services/espanso
|
|
./modules/services/flameshot
|
|
./modules/services/fluidsynth
|
|
./modules/services/fnott
|
|
./modules/services/fusuma
|
|
./modules/services/git-sync
|
|
./modules/services/gpg-agent
|
|
./modules/services/gromit-mpx
|
|
./modules/services/home-manager-auto-upgrade
|
|
./modules/services/imapnotify
|
|
./modules/services/kanshi
|
|
./modules/services/lieer
|
|
./modules/services/mopidy
|
|
./modules/services/mpd
|
|
./modules/services/mpd-mpris
|
|
./modules/services/mpdris2
|
|
./modules/services/pantalaimon
|
|
./modules/services/parcellite
|
|
./modules/services/pass-secret-service
|
|
./modules/services/pasystray
|
|
./modules/services/pbgopy
|
|
./modules/services/picom
|
|
./modules/services/playerctld
|
|
./modules/services/polybar
|
|
./modules/services/recoll
|
|
./modules/services/redshift-gammastep
|
|
./modules/services/screen-locker
|
|
./modules/services/signaturepdf
|
|
./modules/services/swayidle
|
|
./modules/services/swayosd
|
|
./modules/services/sxhkd
|
|
./modules/services/syncthing/linux
|
|
./modules/services/trayer
|
|
./modules/services/twmn
|
|
./modules/services/udiskie
|
|
./modules/services/window-managers/bspwm
|
|
./modules/services/window-managers/herbstluftwm
|
|
./modules/services/window-managers/hyprland
|
|
./modules/services/window-managers/i3
|
|
./modules/services/window-managers/spectrwm
|
|
./modules/services/window-managers/sway
|
|
./modules/services/wlsunset
|
|
./modules/services/xsettingsd
|
|
./modules/systemd
|
|
./modules/virtualisation/oci-containers
|
|
./modules/targets-linux
|
|
]);
|
|
}
|