-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
139 lines (114 loc) · 3.35 KB
/
Makefile
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# ================================
# build system
# ベースイメージで実行していることを前提にしている。
# https://github.com/kijimaD/dotfiles/releases
# ================================
.PHONY: test \
cp_sensitive_files \
init_packages \
init_guix_system \
init_guix \
init_crontab \
init_inotify \
take_ss \
clone_all_user_projects \
clone_all_org_projects \
clone_repos
# テストで実行用
test:
make install TEST=1
# メインコマンド
install: cp_sensitive_files \
init_inotify \
init_crontab \
add_docker_group \
init_run_emacs \
clone_repos \
init_guix
# Git管理しないファイルを初期化する
cp_sensitive_files:
cp -n ~/dotfiles/.authinfo ~/
# サーバ起動でエラーになることがあるのでinotifyの数を増やす
init_inotify:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# 定期タスクを設定する
init_crontab:
ifeq ($(TEST),1)
echo "init_crontab not run"
else
crontab ~/dotfiles/crontab
endif
# Guix本体とパッケージ関連をすべて設定する
init_guix:
ifeq ($(TEST),1)
echo "guix not run"
else
cd /tmp && \
wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh && \
chmod +x guix-install.sh && \
yes | sudo ./guix-install.sh && \
. ~/.bashrc && \
sudo systemctl daemon-reload && \
sudo systemctl restart guix-daemon && \
guix pull && \
hash guix && \
cd ~/dotfiles && \
make init_packages
endif
init_run_emacs:
emacs -nw --batch --load ~/.emacs.d/init.el --eval '(all-the-icons-install-fonts t)'
# ユーザをdockerグループに追加する。dockerをsudoなしで実行させるために必要
add_docker_group:
sudo gpasswd -a $(shell whoami) docker
id $(shell whoami)
# gcloneを使って、ファイルを基に明示的にcloneする
clone_repos:
ifeq ($(TEST),1)
echo "not run"
else
which gclone && gclone -f ~/dotfiles/gclone.yml
endif
# ================================
# convenient tasks
# ================================
# システムインストールのときのみ必要な初期設定
init_guix_system:
sudo -E guix system reconfigure ~/.config/guix/system.scm
# Guixでファイルを基にパッケージをインストールする
init_packages:
guix package -m ~/dotfiles/.config/guix/manifests/desktop.scm
# dotfilesをホームディレクトリに配置する
init_stow:
stow .
# ibusの設定をリロードする
reload_ja_input:
rm -rf ~/.cache/ibus
# # ディレクトリを英語化する
en_dir:
LANG=C xdg-user-dirs-gtk-update
# 不要なファイルを削除する
clean:
docker builder prune
docker volume prune
git gc
git fetch --prune
# 再起動する
restart_bt:
sudo systemctl restart bluetooth.service
# 再起動する
restart_wm:
sudo systemctl restart display-manager
# GitHubからダウンロードしたartifact.zipからisoを展開して、qemuで起動する
run_artifacts:
cd ~/Downloads && \
unzip artifact.zip && \
rm -f build.iso && \
(cat ./kd-ubuntu-20.04.3-desktop-amd64.iso-* > ./build.iso) && \
rm -rf kd-ubuntu-20.04.3-desktop-amd64* artifact.zip && \
qemu-system-x86_64 -boot d -cdrom ./build.iso -enable-kvm -m 4096
run_releases:
cd ~/Downloads && \
(cat ./kd-ubuntu-20.04.3-desktop-amd64.iso-* > ./build.iso) && \
rm -rf kd-ubuntu-20.04.3-desktop-amd64* artifact.zip && \
qemu-system-x86_64 -boot d -cdrom ./build.iso -enable-kvm -m 4096