| #!/bin/bash | 
 | function echo_red() | 
 | { | 
 | 	echo -e '\033[1;31m'"$@"'\033[0m' | 
 | } | 
 |  | 
 | function echo_purple() | 
 | { | 
 | 	echo -e '\033[1;35m'"$@"'\033[0m' | 
 | } | 
 |  | 
 | function echo_blue() | 
 | { | 
 | 	echo -e '\033[1;34m'"$@"'\033[0m' | 
 | } | 
 |  | 
 | function doset() | 
 | { | 
 | 	local pkg | 
 | 	if [ "$1" = "ALL" ];then | 
 | 		shift | 
 | 		echo_blue "Testing install of $@" | 
 | 		yes | sudo apt-get --fix-missing install $@ | 
 | 		return 0 | 
 | 	fi | 
 | 	for pkg in $@; do | 
 | 		dpkg -l $pkg | grep "ii  "; | 
 | 		[ $? -eq 0 ] && continue | 
 | 		echo_blue "Testing install of $pkg" | 
 | 		yes | sudo apt-get --fix-missing install $pkg | 
 | 		echo_blue "===============" | 
 | 	done | 
 | 	return 0 | 
 | } | 
 |  | 
 | function update_sources_list() | 
 | { | 
 | 	local ptadd="$1" | 
 | 	if sudo grep -q "$ptadd" /etc/apt/sources.list ; then | 
 | 		echo_purple "==== \"$ptadd\" already updated ====" | 
 | 	else | 
 | 		echo_blue "Adding \"$ptadd\"" | 
 | 		sudo add-apt-repository "$ptadd" | 
 | 	fi | 
 | } | 
 |  | 
 | function update_src_repositories() | 
 | { | 
 | 	sudo apt-get clean | 
 | 	doset python-software-properties | 
 | 	if [ "$UBUNTU" = "10.04" ]; then | 
 | 		for ptadd in "deb http://archive.canonical.com/ lucid partner" \ | 
 | 			     "deb http://security.ubuntu.com/ubuntu lucid-security multiverse" \ | 
 | 			     "deb http://us.archive.ubuntu.com/ubuntu/ lucid multiverse" \ | 
 | 			     "deb-src http://us.archive.ubuntu.com/ubuntu/ lucid multiverse" \ | 
 | 			     "deb http://us.archive.ubuntu.com/ubuntu/ lucid-updates multiverse" \ | 
 | 			     "deb-src http://us.archive.ubuntu.com/ubuntu/ lucid-updates multiverse" ; | 
 | 		do | 
 | 			update_sources_list "$ptadd" | 
 | 		done | 
 | 		if [ ! -f /etc/apt/sources.list.d/git-core-ppa-lucid.list ];then | 
 | 			# get advanced GIT | 
 | 			sudo add-apt-repository ppa:git-core/ppa | 
 | 		else | 
 | 			echo_purple "==== GIT repository already set to PPA ====" | 
 | 		fi | 
 | 	else # ubuntu 12.04 | 
 | 		for ptadd in "deb http://archive.canonical.com/ precise partner" \ | 
 | 			     "deb http://security.ubuntu.com/ubuntu precise-security multiverse" \ | 
 | 			     "deb http://us.archive.ubuntu.com/ubuntu/ precise multiverse" \ | 
 | 			     "deb-src http://us.archive.ubuntu.com/ubuntu/ precise multiverse" \ | 
 | 			     "deb http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse" \ | 
 | 			     "deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse" ; | 
 | 		do | 
 | 			update_sources_list "$ptadd" | 
 | 		done | 
 | 	fi | 
 | 	sudo apt-get update | 
 | 	yes | sudo apt-get upgrade | 
 | } | 
 |  | 
 | function update_openwrt_dev_utils() | 
 | { | 
 | 	# open WRT requiered packages (based on http://wiki.openwrt.org/doc/howto/buildroot.exigence) | 
 | 	doset build-essential subversion git-core | 
 | 	doset libncurses5-dev zlib1g-dev gawk | 
 | 	doset gcc-multilib flex gettext g++ | 
 | 	if [ "$(uname -m)" = "x86_64" ];then | 
 | 		update_openwrt_dev_utils_64bit | 
 | 	else # 32 bit environment | 
 | 		update_openwrt_dev_utils_32bit | 
 | 	fi | 
 | 	#     GIT basics | 
 | 	doset git-gui git-doc gitk qgit | 
 | 	# perl help utilities for GIT activities | 
 | 	echo_red "Update packages for gerrit wrappers" | 
 | 	doset libconfig-inifiles-perl liblist-moreutils-perl | 
 |  | 
 | 	# packages for kernel build | 
 | 	doset bc make exuberant-ctags | 
 |  | 
 | 	#packages for uboot build | 
 | 	doset uboot-mkimage uuid-dev | 
 |  | 
 | 	# Diff tools & Editors | 
 | 	doset geany hexer vim xxdiff xxdiff-scripts meld | 
 | 	# Emacs + indentation tool + directory viewer | 
 | 	doset indent emacs ispell wamerican-large tree | 
 |  | 
 | 	# Install Phabricator client packages | 
 | 	doset php5-cli php5-curl | 
 | } | 
 |  | 
 | function update_openwrt_dev_utils_32bit() | 
 | { | 
 | 	#open WRT 32 bit spesific packages | 
 | 	# (based on http://wiki.openwrt.org/doc/howto/buildroot.exigence) | 
 | 	doset patch bzip2 bison | 
 | 	doset autoconf unzip | 
 | 	doset ncurses-term | 
 | 	doset libz-dev libssl-dev | 
 | 	doset quilt libssl-dev xsltproc | 
 | 	doset libxml-parser-perl mercurial bzr ecj cvs | 
 | } | 
 | function update_openwrt_dev_utils_64bit() | 
 | { | 
 | 	#open WRT 64 bit spesific libraries. | 
 | 	doset geany | 
 | } | 
 |  | 
 | #main code starts here: | 
 |  | 
 | if [ "$(uname -m)" = "x86_64" ];then | 
 | 	echo_purple "You are working on 64bit Linux !" | 
 | else | 
 | 	echo_purple "You are working on 32bit Linux !" | 
 | fi | 
 | #check ubuntu version, supported 10.04 and 12.04 only | 
 | grep DISTRIB_DESCRIPTION /etc/lsb-release | grep -q 12.04; | 
 | if [ $? -eq 0 ];then | 
 | 	UBUNTU=12.04 | 
 | else | 
 | 	UBUNTU=10.04 | 
 | fi | 
 | echo_purple "    UBUNTU version $UBUNTU" | 
 | update_src_repositories | 
 | update_openwrt_dev_utils | 
 | echo_purple "    UBUNTU version $UBUNTU RUN Phase 2" | 
 | update_openwrt_dev_utils | 
 |  | 
 | yes | sudo apt-get autoremove | 
 |  | 
 | echo_blue "  Done" |