Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- function fancy-timer() {
- for (( i=1; i<=$1; i++ )); do
- SEC=$(expr ${1} - $(expr ${i} - 1))
- SECW="second"
- if [ "$SEC" -ne "1" ]; then
- SECW="${SECW}s"
- fi
- LINE="$2 ${SEC} ${SECW}"
- SPC=$(expr $(tput cols) - ${#LINE})
- for (( j=1; j<=$SPC; j++ )); do
- echo -n " ";
- done;
- echo -ne "${LINE}\r"
- sleep 1
- done;
- }
- function check-blacklist() {
- grep -v "apt-utils"
- }
- function list1() {
- find `cat /etc/apt/apt-build.conf | grep repository | cut -d'=' -f2` -name *.deb | rev | cut -d'/' -f 1 | rev | cut -d'+' -f 1 | sort | uniq | awk '{ printf " * %s\n", $1 }'
- }
- function list2() {
- dpkg --list | grep "ii " | check-blacklist | grep aptbuild[0-9] | sed -e 's/ */\|/g' | cut -d'|' -f2-3 | sed -e 's/|/ /' | cut -d'+' -f1 | awk '{ printf " * %s-%s\n", $1, $2 }';
- }
- function list2-nodev() {
- list2 | grep -v "\-dev"
- }
- function list-nonopt() {
- dpkg --list | grep "ii " | check-blacklist | grep -v "gcc" | grep -v "g++" | grep -v "\-dev" | grep -v aptbuild[0-9] | sed -e 's/ */\|/g' | cut -d'|' -f2-3 | sed -e 's/|/ /'
- }
- function list-nonopt-fmt() {
- list-nonopt | awk '{ printf " * %s-%s\n", $1, $2}';
- }
- function list-nonopt-list() {
- list-nonopt | cut -d' ' -f1
- }
- function list-all() {
- dpkg --list | grep "ii " | check-blacklist | grep -v "gcc" | grep -v "g++" | grep -v "\-dev"
- }
- function update-repo() {
- sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/$1" \
- -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
- }
- function update-aptbuild-repo() {
- update-repo apt-build.list
- }
- function count-packages() {
- TOT=$(list-all | wc -l)
- OPT=$(list2-nodev | wc -l)
- OP2=$(list2 | wc -l)
- NON=$(list-nonopt | wc -l)
- TES=$(expr ${OPT} + ${NON})
- EXP="?"
- if [ "$TOT" -eq "$TES" ]; then
- EXP=$(echo -e \\u2713)
- else
- if [ "$TOT" -gt "$TES" ]; then
- EXP="${EXP} -$(expr ${TOT} - ${TES})"
- else
- EXP="${EXP} +$(expr ${TES} - ${TOT})"
- fi
- fi
- if [ "$OP2" -gt "$OPT" ]; then
- EXP="${EXP} (+$(expr $OP2 - $OPT) dev)"
- fi
- echo "${OPT} optimized, ${NON} optimizable, ${TOT} total (${EXP})"
- }
- function reb-status() {
- while (true); do
- clear;
- echo "* `date`";
- USED=$(df -m / | tail -n 1 | sed -e 's/ */ /g;' | cut -d' ' -f 3)M
- FREE=$(df -h / | tail -n 1 | sed -e 's/ */ /g;' | cut -d' ' -f 4)
- MEMU=$(free -m | head -n 2 | tail -n 1 | sed -e 's/ */ /g;' | cut -d' ' -f3)
- MEMT=$(free -m | head -n 2 | tail -n 1 | sed -e 's/ */ /g;' | cut -d' ' -f2)
- SWPU=$(free -m | tail -n 1 | sed -e 's/ */ /g;' | cut -d' ' -f3)
- SWPT=$(free -m | tail -n 1 | sed -e 's/ */ /g;' | cut -d' ' -f2)
- PROC=$(expr $(ps aux | wc -l) - 1)
- echo ""
- echo "Memory: ${MEMU}/${MEMT}M (${SWPU}/${SWPT}M Swap)"
- echo "Running Processes: ${PROC}"
- echo "Disk space: Used ${USED} of ${FREE}";
- count-packages
- fancy-timer 30 "Next update in"
- done;
- }
- function help() {
- echo "Usage: $0 [(u)pdate, (up)grade, (l)ist installed, (a)vailable, (i)nstall, (b)uild, (s)tatus, (n)ot-optimized, (w)orldlist, (c)ount] [<pkg to build/install>]"
- exit
- }
- function ipkg() {
- PKG=$(ls -1 `cat /etc/apt/apt-build.conf | grep repository | cut -d'=' -f2`/${1}* | sort -r | uniq | head -n 1)
- sudo dpkg -i ${PKG}
- }
- function genworldlist() {
- dpkg --get-selections | grep -v gcc | grep -v g\+\+ | awk '{if ($2 == "install") print $1}'
- }
- case $1 in
- "up")
- sudo apt-get upgrade
- ;;
- "u")
- update-aptbuild-repo
- ;;
- "l")
- list2
- ;;
- "o")
- list2
- ;;
- "c")
- count-packages
- ;;
- "n")
- list-nonopt-fmt
- ;;
- "nf")
- list-nonopt-fmt
- ;;
- "nl")
- list-nonopt-list
- ;;
- "nr")
- list-nonopt
- ;;
- "w")
- genworldlist
- ;;
- "s")
- reb-status
- ;;
- "a")
- list1
- ;;
- "i")
- ipkg ${2}
- ;;
- "ia")
- sudo dpkg -i /var/cache/apt-build/repository/*.deb
- ;;
- "b")
- sudo apt-build --noupdate build-source ${2}
- ;;
- *)
- help
- ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement