Download all Apple open source OS X files at once

While it is well known that Mac OS X contains open source code, how to access and download that source code is perhaps less well known. Apple publishes all its open source code on their  Apple Open Source site . However, this site makes you download each program individually, without an obvious option to download an entire OS X release at once (i.e., all public sources for 10.6.1). 

So I wrote the following  bash  script to automate the download procedure. It downloads the individual tarballs for each program, expands them locally, and then rolls everything up into one big tarball for local storage. Some caveats are that this script does not build the code, and that you are bound by a variety of licenses which are not included here (because no Apple code is included here).

#!/usr/bin/env bash
# --- applesource.bash --- downloads source code for an entire Apple release

# Take input from command-line (use "10.5.8", "10.6.1", etc.)
  version="mac-os-x-`echo $* | tr -d "."`"

# URL:
  homepage="http://www.opensource.apple.com"
  URL="${homepage}/release/${version}/"

# Announce beginning, and prepare a directory for the untarred sources
  echo "Preparing to download..."
  sources="./${version}-sources"
  mkdir -p ${sources}
  
# Process the webpage for the locations of the tarballs themselves
  curl --silent ${URL} | sed -n 's/<a href="\(.*.tar.gz\)">/\1/p' | \
    while read line; do
    
      # Find and announce the name of the next tarball to be downloaded
        tarball=".${line}"
        echo -e "\nDownloading `basename ${tarball}`..."

      # Download the tarball and keep Apple's original directory structure intact
        curl --create-dirs --output ${tarball} "${homepage}${line}"

      # Untar into the "sources" directory (see line 13)
        tar xfz "${tarball}" -C ${sources}

    done

# Compress all sourcefiles into a single tarball for posterity
  echo "Creating ${version}.tar.gz from all sources..."
  tar cfvz "${version}.tar.gz" ${sources}

# Explicitly show that everything finished.
  echo "Done."

# I like for my Mac to talk to me, although sometimes this can be creepy.
  say "The source of ${version} is now ready."

Save the above somewhere on your path, make it executable ( chmod a+x scriptname ), and then run it with the version number you'd like to download:  getsource 10.6.1 , for instance. I am a bit shy about releasing my scripts, so please be gentle! 

以上转自: http://hints.macworld.com/article.php?story=20091014194517371


另附:非常有用的参考网址:
tar包下载地址(全): www.opensource.apple.com/tarballs/
source在线查看(全): www.opensource.apple.com/source/
release发布包下载地址:
Mac OS X 10.6.2: www.opensource.apple.com/release/mac-os-x-1062/
Mac OS X 10.8:    www.opensource.apple.com/release/mac-os-x-108/

脚本下载地址: http://download.csdn.net/detail/duanyipeng/8831335

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值