简体   繁体   中英

Git pre-commit hook gist

I found this snippet of code https://gist.github.com/wrboyce/786460

#!/usr/bin/zsh

COMPRESSOR=$(whence -p yui-compressor)
[ -z $COMPRESSOR ] && exit 0;

function _compress {
        local fname=$1:t
        local dest_path=$1:h
        local min_fname="$dest_path/${fname:r}.min.${fname:e}"
        $COMPRESSOR $1 > $min_fname
        git add $min_fname
}

for file in $(find . -regextype posix-extended -iregex '.+\.(css|js)$' -and -not -iregex '.+\.min\.(css|js)$'); _compress $file

On my osx machine it says:

.git/hooks/pre-commit: line 2: whence: command not found

I believe this is for linux only? Could anyone help to do this on a mac? I want to minify my css and javascript before it is sent to the remote production server.

Yes it's for Linux only:

The whence command is a Korn Shell feature that tells how a name would be interpreted by the shell: it detects commands and aliases, and searches your path.

Try this:

#!/usr/bin/zsh

COMPRESSOR=$(which yui-compressor)
[ -z $COMPRESSOR ] && exit 0;

function _compress {
        local fname=$1:t
        local dest_path=$1:h
        local min_fname="$dest_path/${fname:r}.min.${fname:e}"
        $COMPRESSOR $1 > $min_fname
        git add $min_fname
}

for file in $(find . -regextype posix-extended -iregex '.+\.(css|js)$' -and -not -iregex '.+\.min\.(css|js)$'); _compress $file

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM