2010年6月11日星期五

Xcode文档自动安装脚本

其实没有标题说的那么神奇啦。情况是这样的,每次升级Xcode或iPhone SDK,之前下载的文档会全部删掉重来。这对于网络很快的童鞋可能不是什么大问题,但是对于我这种小水管,下载n GiB的文档就是一个沉重的负担了。

所以,我之前在Wiki写过文章,讲述如何离线安装Xcode的文档。不过最近,从iPhone SDK 4 Beta1~4, GM一路装下来,每次都要重复输入那么多的命令,实在是麻烦之极。被迫无奈之下,这次写了个脚本来解决问题。

方法很简单,把iPhone文档和Mac文档分别置于iOS和Mac两个子目录中,然后创建下面的脚本:
#!/bin/bash

macdocs='/Developer/Documentation/DocSets/'
iosdocs='/Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/'

# Function: Extract Docs From Xar Archives
do_extract() {
 echo In directory: $1
 echo Extract xars...
 for file in `ls -1`
 do
   xar -xf $file
 done
 
 echo Delete xars...
 rm -f *.xar

 echo Change ownerships...
 for dir in `ls -1`
 do
   chown -R -P _devdocs $dir
   chmod 775 $dir
 done
}

# Delete Old Docs and Copy xar to Mac Doc Dir
echo Operation Start.
echo
echo Deleting Old Mac Docsets...
rm -rf ${macdocs}*.docset
echo Copying xars to $macdocs
cp Mac/*.xar $macdocs

# Delete Old Docs and Copy xar to iOS Doc Dir
echo Deleting Old iOS Docsets...
rm -rf ${iosdocs}*.docset
echo Copying xars to $iosdocs...
cp iOS/*.xar $iosdocs

# Goto Mac Doc Dir and Extract Docs.
echo Start to Extract Mac Docs...
cd $macdocs
do_extract $macdocs

# Goto iOS Doc Dir and Extract Docs.
echo Start to Extract iOS Docs...
cd $iosdocs
do_extract $iosdocs

echo All Done.
你可以把脚本命名为任何名字,比如docsetup.sh,赋予执行权限。升级完毕Xcode之后,进入文档目录,执行:
sudu ./docsetup.sh
等待片刻,文档就全部安装好了。

上面的那个脚本没有任何错误捕获机制,所以,用的时候要谨慎。另外,脚本的意思很简单,在执行前,你先了解一下脚本到底在你的系统里做了些什么事情,然后再决定要不要用。本人不对错误执行脚本造成的任何损失而负责的哦,所以请小心使用。 :)

没有评论:

发表评论