-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate-nix-environment.sh
77 lines (67 loc) · 1.88 KB
/
create-nix-environment.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/sh
#
# A modified version for PCs from ChrisTitusTech's
# Steam Deck as a Desktop cheat sheet
# source: https://christitus.com/steamdeck-as-a-desktop/
#
if test `whoami` = root
then
echo "Do not run this script as root"
exit 1
fi
if test ! /etc/systemd/system/nix-directory.service
then
echo "[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=mkdir -vp /nix
ExecStart=chmod -v 0755 /nix
ExecStart=chown -v root /nix
ExecStart=chgrp -v root /nix
ExecStop=rmdir /nix
RemainAfterExit=true
" | sudo tee /etc/systemd/system/nix-directory.service
elif test ! /etc/systemd/system/nix.mount
then
echo "[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
" | sudo tee /etc/systemd/system/nix.mount
elif test ! /etc/systemd/system/ensure-symlinked-units-resolve.service
then
echo "[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
" | sudo tee /etc/systemd/system/ensure-symlinked-units-resolve.service
fi
(sudo systemctl daemon-reload) | exit 1
(sh <(curl -L https://nixos.org/nix/install) --daemon) | tee -a nix-installation.log