77 lines
1.8 KiB
Bash
Executable File
77 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
{
|
|
sudo cat << EOF
|
|
[Unit]
|
|
Description=Create a `/nix` directory to be used for bind mounting
|
|
PropagatesStopTo=nix-daemon.service
|
|
PropagatesStopTo=nix.mount
|
|
DefaultDependencies=no
|
|
After=grub-recordfail.service
|
|
After=steamos-finish-oobe-migration.service
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=steamos-readonly disable
|
|
ExecStart=mkdir -vp /nix
|
|
ExecStart=chmod -v 0755 /nix
|
|
ExecStart=chown -v root /nix
|
|
ExecStart=chgrp -v root /nix
|
|
ExecStart=steamos-readonly enable
|
|
ExecStop=steamos-readonly disable
|
|
ExecStop=rmdir /nix
|
|
ExecStop=steamos-readonly enable
|
|
RemainAfterExit=true
|
|
EOF
|
|
} > /etc/systemd/system/nix-directory.service
|
|
{
|
|
sudo cat << EOF
|
|
[Unit]
|
|
Description=Mount `/home/nix` on `/nix`
|
|
PropagatesStopTo=nix-daemon.service
|
|
PropagatesStopTo=nix-directory.service
|
|
After=nix-directory.service
|
|
Requires=nix-directory.service
|
|
ConditionPathIsDirectory=/nix
|
|
DefaultDependencies=no
|
|
|
|
[Mount]
|
|
What=/home/nix
|
|
Where=/nix
|
|
Type=none
|
|
DirectoryMode=0755
|
|
Options=bind
|
|
EOF
|
|
} > /etc/systemd/system/nix.mount
|
|
{
|
|
sudo cat << EOF
|
|
[Unit]
|
|
Description=Ensure Nix related units which are symlinked resolve
|
|
After=nix.mount
|
|
Requires=nix-directory.service
|
|
Requires=nix.mount
|
|
PropagatesStopTo=nix-directory.service
|
|
PropagatesStopTo=nix.mount
|
|
DefaultDependencies=no
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
ExecStart=/usr/bin/systemctl daemon-reload
|
|
ExecStart=/usr/bin/systemctl restart --no-block sockets.target timers.target multi-user.target
|
|
|
|
[Install]
|
|
WantedBy=sysinit.target
|
|
EOF
|
|
} > /etc/systemd/system/ensure-symlinked-units-resolve.service
|
|
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable --now ensure-symlinked-units-resolve.service
|
|
|
|
|
|
sh <(curl -L https://nixos.org/nix/install) --daemon
|
|
|
|
|
|
sudo echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf
|
|
|
|
echo "export XDG_DATA_DIRS="$HOME/.nix-profile/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" >>
|