在 lifesinger 的 blog 上看到淘宝内部使用的 TBCompressor,自己还傻乎乎的留言问有没有 for Linux 版本的。
YUI Compressor 本身就是一个 jar 包,可以方便的跨平台运行,不过每次都要打开控制台来运行,也有些不爽,参考了 TBCompressor,作了一个 nautilus-script,这下就可以直接对 js 和 css 文件点击右键进行操作了。
效果截图如下:
下载地址:MinJS
使用方法:下载后的文件放到 ~/.gnome2/nautilus-scripts 目录下即可,需要先打开文件配置你的 YUI Compressor jar 文件所在的路径。
公司的版本库由 CVS 转到了 SVN,转的过程就不说了,Google 上一搜一把。 为了实时看到 SVN 版本库的状态,在网上找了一个很好用的工具叫 StatSVN,会把当前 SVN 库的状态用数据和图表的方式展现出来,可以按开发者、目录、commit log 分别展示,很是强大。 在计划写个脚本每天凌晨自动生成前一年的报表的时候,碰到一些麻烦。刚开始的脚本是这样的:
#!/bin/bash
(/usr/bin/svn update /root/SVN)
(/usr/bin/svn log /root/SVN --xml -v > /root/SVN/svn.log)
(/usr/local/jdk/jre/bin/java -jar /root/statsvn-0.3.1/statsvn.jar /root/SVN/svn.log /root/SVN/ -out
put-dir /usr/local/apache2/htdocs/SVN/svnstat/ -title CNFOL -threads 50 -mantis http://xxx.com/bugs
/ -no-developer admin -include **/*.php:**/*.java:**/*.html:**/*.htm:**/*.js:**/*.css:**/*
.shtml:**/*.xml:**/*.sql:**/*.jsp:**/*.do:**/*.cfg)
(/bin/rm -f /root/SVN/svn.log)
第二天发现脚本没有自动运行,再尝试着把所有和 PATH 有关的环境变量都加进去,还是不行。后来在 winger 的协助下,通过记录日志的方式,把脚本的错误输出都记录了下来,发现出错的脚本在 /usr/local/jdk/jre/bin/java -jar /root/statsvn-0.3.1/statsvn.jar 这行,错误信息如下:
Parsing SVN log '/root/SVN/svn.log' exclude pattern ''
Logfile parsing failed.
svn log: svn info: XML document structures must start and end within the same entity.
奇怪的是,在控制台下手工运行都没问题,放到脚本里面就报错。看起来还是环境变量有问题,最终还是 winger 帮忙发现了问题,只要在脚本的头部加入
export LANG=en_US.UTF-8
就一切正常了。