| #!/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" |