月度归档:2014年11月

终端进入目录自动运行 shell 脚本

利用 prompt 钩子,可以在终端进入目录时执行特定的 shell 代码。如:

Call function 'foo'
PROMPT_COMMAND=foo

# The function
foo() {
    pwd
}

对于使用 oh-my-zsh 的情况,可以直接做成插件形式,如:

# ~/.oh-my-zsh/plugins/puglin-xx

setopt PROMPT_SUBST

typeset -ga chpwd_functions

chpwd_functions+='foo'

function foo() {
    # whatever code
    pwd
}

利用这个特性可以做一些特殊的需求,比如检测 git 仓库的用户名是否是合适的(使用多家 git 托管服务且用户名不一致的情况下有用),分支是否 ok 等。

Update@2019-01-29

如果是不同 git 使用不同配置的情况(如区分个人和工作配置),可以使用 git include 配置 来解决,如:

~/.gitconfig

[user]
    name = personal_name
    email = xxx@personal.com
[includeIf "gitdir/i:~/work/"]
    path = ~/.gitconfig_work

~/.gitconfig_work

[user]
    name = work_name
    email = xxx@work.com

这样,一旦项目位于 ~/work/ 下,那么就是使用 ~/.gitconfig_work 的配置来覆盖通用的。

需要注意,如果目录是做来软链的,那么软链后的路径以及软链前的路径都需要配置才能不管是用软链还是使用真实路径访问 git 项目才会使用覆盖后的配置。

手动安装 Android OTA 更新

等待 OTA 推送等了好久,好不容易等到结果由于 Google 处境问题而下载失败,然后再也收不到推送。

于是,一番查找后,手动安装 OTA 更新(不能直接安装普通镜像,这回导致数据被清空)。

主要参考了两篇文章,如下:

  1. Update your Nexus to Lollipop using OTA packages 获取 OTA 更新包地址,手动下载下来
  2. 手动刷入android 4.4.3 OTA 更新包 获取详细的安装 OTA 更新包的方法

当然,前提需要安装好 ADB,这个直接下载 Android SDK 工具即可。