Skip to content

Commit c8b44a8

Browse files
committed
refactor(brew): use Brewfile
Remove homebrew/install.sh, use Brewfile and brew bundle close #12 #10 #9
1 parent ddb2a4d commit c8b44a8

File tree

7 files changed

+119
-172
lines changed

7 files changed

+119
-172
lines changed

Brewfile

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
cask_args appdir: '/Applications'
2+
3+
tap 'caskroom/cask'
4+
tap 'caskroom/fonts'
5+
tap 'caskroom/versions'
6+
tap 'homebrew/bundle'
7+
8+
brew 'bash'
9+
brew 'coreutils'
10+
brew 'findutils'
11+
brew 'git-flow'
12+
brew 'go'
13+
brew 'grc'
14+
brew 'httpie'
15+
brew 'irssi'
16+
brew 'mackup'
17+
brew 'mongodb'
18+
brew 'nvm'
19+
brew 'opencc'
20+
brew 'ssh-copy-id'
21+
brew 'trash'
22+
brew 'tree'
23+
brew 'youtube-dl'
24+
25+
cask 'alfred'
26+
cask 'atom'
27+
cask 'charles'
28+
cask 'dockertoolbox'
29+
cask 'dropbox'
30+
cask 'firefoxdeveloperedition'
31+
cask 'flux'
32+
cask 'gitter'
33+
cask 'google-chrome'
34+
cask 'heroku-toolbelt'
35+
cask 'istat-menus'
36+
cask 'iterm2'
37+
cask 'keka'
38+
cask 'macdown'
39+
cask 'neteasemusic'
40+
cask 'obs'
41+
cask 'qlcolorcode'
42+
cask 'qlmarkdown'
43+
cask 'qlstephen'
44+
cask 'recordit'
45+
cask 'robomongo'
46+
cask 'sketch'
47+
cask 'sketch-toolbox'
48+
cask 'slack'
49+
cask 'sourcetree'
50+
cask 'spectacle'
51+
cask 'steam'
52+
cask 'sublime-text3'
53+
cask 'tiled'
54+
cask 'unity'
55+
cask 'utorrent'
56+
cask 'virtualbox'
57+
cask 'visual-studio-code'
58+
cask 'vlc'
59+
cask 'webstorm'
60+
61+
cask 'font-hack'
62+
cask 'font-noto-sans-japanese'
63+
cask 'font-noto-sans-korean'
64+
cask 'font-noto-sans-s-chinese'
65+
cask 'font-noto-sans-t-chinese'
66+
cask 'font-roboto'
67+
cask 'font-source-code-pro'

README.md

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ $ ./script/bootstrap
5353
1. 檢查並安裝 [Homebrew](http://brew.sh/)
5454
2. 檢查並安裝 [Oh My Zsh](http://ohmyz.sh/)
5555
3. 檢查並連結 dotfiles (.zshrc, .vimrc, .gitconfig, .gitignore, ...)。
56-
4. 更新並安裝 Homebrew packages (binaries, fonts, apps)
57-
5. 設置 Mac OS X 的 defaults settings
56+
4. 設置 Mac OS X 的 defaults settings
57+
5. 更新並安裝 Homebrew packages (binaries, fonts, apps)
5858

5959
完成之後,手動安裝一些 App Store 上才有的軟體 (Dash, Moom, ...)。
6060

@@ -85,8 +85,9 @@ $ mackup restore
8585
### Topical
8686

8787
每一個環境的配置是以資料夾的形式被獨立區分。例如,如果想要新增 "Java" 的配置到 dotfiles,你可以簡單的新增一個命名為 `java` 的資料夾,然後將檔案建至目錄底下。
88-
任何副檔名是 `.zsh` 的檔案將在 shell 執行時被自動載入至環境中。
89-
任何副檔名是 `.symlink`的檔案將在你執行 `script/bootstrap` 安裝時被連結至 `$HOME` 目錄底下。.
88+
89+
- 任何副檔名是 `.zsh` 的檔案將在 shell 執行時被自動載入至環境中。
90+
- 任何副檔名是 `.symlink` 的檔案將在你執行 `script/bootstrap` 安裝時被連結至 `$HOME` 目錄底下。.
9091

9192
### Components
9293

@@ -99,7 +100,7 @@ $ mackup restore
99100

100101
不同於 [Holman's dotfiles](https://github.com/holman/dotfiles),我修改了一些部分:
101102

102-
- Shell 的部分改用 [Oh My Zsh](http://ohmyz.sh/)取代原作者自己配置的 zsh。
103+
- Shell 的部分改用 [Oh My Zsh](http://ohmyz.sh/) 取代原作者自己配置的 zsh。
103104
- 移除 **topic/aliases.zsh****topic/completion.zsh** 等檔案,改用 Oh My Zsh 的 [plugins]。(https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins) 代替。
104105
- 移除 **zsh/prompt.zsh****zsh/window.zsh.zsh** 等檔案,改用 Oh My Zsh 的 [themes]。(https://github.com/robbyrussell/oh-my-zsh/wiki/Themes) 代替。
105106
- dotfiles 只專注在 **topic/*.symlink****topic/path.zsh** 的配置。
@@ -110,38 +111,33 @@ $ mackup restore
110111

111112
執行 `$ dot` 之後,它會跑以下兩支腳本檔:
112113

113-
1. `$HOME/.dotfiles/homebrew/install.sh` - Homebrew packages
114-
2. `$HOME/.dotfiles/osx/set-defaults.sh` - OS X defaults setting
114+
1. `$HOME/.dotfiles/osx/set-defaults.sh` - OS X defaults setting
115+
2. `$HOME/.dotfiles/Brewfile` - Homebrew packages
116+
3. 任何目錄下檔名是 `install.sh` 的檔案將被執行。
115117

116118
### Homebrew packages
117119

118-
執行 `$ ./homebrew/install.sh` 的時候,腳本會使用 [Homebrew](http://brew.sh/)[Homebrew Cask](http://caskroom.io/) 來安裝 **binary****font** 還有 **app**可以根據個人需求修改這個檔案,增加或減少自己需要的 packages:
120+
執行 `$ dot` 的時候,腳本會根據 `Brewfile` 使用 [Homebrew](http://brew.sh/)[Homebrew Cask](http://caskroom.io/) 來安裝 **binary****font** 還有 **app**可以依照個人需求修改這個檔案,增加或減少自己需要的 packages:
119121

120-
```bash
121-
binaries=(
122-
git
123-
tree
124-
...
125-
)
122+
```
123+
brew 'git'
124+
brew 'tree'
125+
brew ...
126126
```
127127

128-
字型都是以 **font-XXX** 的形式命名,可以用 `$ brew cask search /font-XXX/` 搜尋是否存在
128+
應用程式可以用 `$ brew cask search XXX` 或是 [Cask Search](http://caskroom.io/search) 網站搜尋是否存在
129129

130130
```bash
131-
fonts=(
132-
font-roboto
133-
...
134-
)
131+
cask 'dropbox'
132+
cask 'google-chrome'
133+
cask ...
135134
```
136135

137-
應用程式可以用 `$ brew cask search XXX` 或是 [Cask Search](http://caskroom.io/search) 網站搜尋是否存在
136+
字型都是以 **font-XXX** 的形式命名,可以用 `$ brew cask search /font-XXX/` 搜尋是否存在
138137

139-
```bash
140-
apps=(
141-
dropbox
142-
google-chrome
143-
...
144-
)
138+
```
139+
cask 'font-roboto'
140+
cask ...
145141
```
146142

147143
以下是我目前安裝的 packages:

bin/dot

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,15 @@
44
#
55
# `dot` handles installation, updates, things like that. Run it periodically
66
# to make sure you're on the latest and greatest.
7-
8-
# Install homebrew packages
9-
$HOME/.dotfiles/homebrew/install.sh
7+
export ZSH=$HOME/.dotfiles
108

119
# Set OS X defaults
12-
$HOME/.dotfiles/osx/set-defaults.sh
10+
$ZSH/osx/set-defaults.sh
11+
12+
# Upgrade homebrew
13+
echo "› brew update"
14+
brew update
1315

16+
# Install software
17+
echo "$ZSH/script/install"
18+
$ZSH/script/install

homebrew/install.sh

Lines changed: 0 additions & 130 deletions
This file was deleted.

osx/set-defaults.sh

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,6 @@
99
# https://mths.be/osx
1010
#
1111
# Run ./set-defaults.sh and you'll be good to go.
12-
echo "Do you want to update OS X default settings?"
13-
select yn in "Yes" "No"; do
14-
case $yn in
15-
Yes ) echo "Set OS X defaults..."; break;;
16-
No ) exit;;
17-
esac
18-
done
1912

2013
# Ask for the administrator password upfront
2114
# sudo -v

script/bootstrap

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ DOTFILES_ROOT=$(pwd -P)
77

88
set -e
99

10+
echo ''
11+
1012
info () {
11-
printf " [ \033[00;34m..\033[0m ] $1\n"
13+
printf "\r [ \033[00;34m..\033[0m ] $1\n"
1214
}
1315

1416
user () {
@@ -103,7 +105,7 @@ link_file () {
103105
install_homebrew () {
104106
if test ! $(which brew)
105107
then
106-
echo "Installing Homebrew for you..."
108+
echo " Installing Homebrew for you..."
107109

108110
# Install the correct homebrew for each OS type
109111
if test "$(uname)" = "Darwin"
@@ -120,13 +122,13 @@ install_homebrew () {
120122
install_ohmyzsh () {
121123
if [ ! -d ~/.oh-my-zsh ]
122124
then
123-
info 'installing oh-my-zsh'
125+
info ' Installing oh-my-zsh'
124126
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
125127
fi
126128
}
127129

128130
install_dotfiles () {
129-
info 'installing dotfiles'
131+
info ' Installing dotfiles'
130132

131133
local overwrite_all=false backup_all=false skip_all=false
132134

@@ -154,4 +156,4 @@ then
154156
fi
155157

156158
echo ''
157-
echo ' All installed!'
159+
echo ' All installed!'

script/install

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Run all dotfiles installers.
4+
5+
set -e
6+
7+
cd "$(dirname $0)"/..
8+
9+
# Run Homebrew through the Brewfile
10+
echo "› brew bundle"
11+
brew bundle
12+
13+
# find the installers and run them iteratively
14+
find . -name install.sh | while read installer ; do sh -c "${installer}" ; done

0 commit comments

Comments
 (0)