通常,我的项目在文件系统深处有一个 SCSS+Compass 目录。
例如,我所有的项目都在下面~/Web/com.example.subdomain
,有时样式目录是~/Web/com.example.subdomain/trunk/docroot/_assets/locked/styles
.
每天多次输入整个 CD 命令显然有点重复。我可以为每个项目创建一个别名(例如alias cd-com.marketo.subdomain-scss="..."
),但必须为所有 25 个以上的项目添加和维护。
那么我怎样才能编写一个有效地允许我输入的函数:
$ cd ~/Web/com.example
$ cd-compass
从这里,我想 cd-compass 会:
- 使用某种形式的
find .
命令来查找config.rb
或.sass-cache/
- 如果两者都存在于同一个目录中,那么你知道它是一个指南针目录......
- 如果
.sass-cache/
不存在并且存在config.rb
,它将运行compass stats /the/dir
- 如果它不是指南针目录,则输出将以
Nothing to compile. If you're trying to start
... - 如果它是一个指南针目录,它会吐出统计信息并创建
.sass-cache/
目录
- 如果它不是指南针目录,则输出将以
- 一旦成功找到该目录,它就会 CD 进入该目录。
奖励积分:
添加包含指南针命令的功能,因此输入
cd-compass compile --force
将遵循上述流程(包括 cd'ing 进入目录),然后执行compass compile --force
也许在这种情况下,命令将是
compass-do
orfcompass
orlcompass
(f = find; l = locate)。
超级奖励积分:
如果找到多个 Compass 安装,则显示一个编号的选项列表。输入其中一个数字并按 Enter 将继续使用该选项。
这基本上可以让我简单地输入:
$ cd-compass
1. /home/user/Web/git/com.example/trunk/docroot/admin/styles/compass
2. /home/user/Web/git/com.example/trunk/docroot/styles/compass
3. /home/user/Web/svn/com.example.sub/trunk/docroot/_assets/locked/styles
Which one? > __