Subversion Repositories ALCASAR

Rev

Blame | Last modification | View Log

#!/bin/bash
#
# Author: Hamza ESSAYEGH (Querdos)
#
# Script used to download all needed package
# for Alcasar.
#
# It must be run on a virtual Mageia 5,
# with ALCASAR installed.
#

function print_percentage() {
    local percent=$1
    if [ ${percent} -lt 5 ]; then
        echo -ne "Downloading... [                      ] ${percent}%\r"
    elif [ ${percent} -lt 10 ]; then
        echo -ne "Downloading... [ #                    ] ${percent}%\r"
    elif [  ${percent} -lt 15  ]; then
        echo -ne "Downloading... [ ##                   ] ${percent}%\r"
    elif [  ${percent} -lt 20  ]; then
        echo -ne "Downloading... [ ###                  ] ${percent}%\r"
    elif [  ${percent} -lt 25  ]; then
        echo -ne "Downloading... [ ####                 ] ${percent}%\r"
    elif [  ${percent} -lt 30  ]; then
        echo -ne "Downloading... [ #####                ] ${percent}%\r"
    elif [  ${percent} -lt 35  ]; then
        echo -ne "Downloading... [ ######               ] ${percent}%\r"
    elif [  ${percent} -lt 40  ]; then
        echo -ne "Downloading... [ #######              ] ${percent}%\r"
    elif [  ${percent} -lt 45  ]; then
        echo -ne "Downloading... [ ########             ] ${percent}%\r"
    elif [  ${percent} -lt 50  ]; then
        echo -ne "Downloading... [ #########            ] ${percent}%\r"
    elif [  ${percent} -lt 55  ]; then
        echo -ne "Downloading... [ ##########           ] ${percent}%\r"
    elif [  ${percent} -lt 60  ]; then
        echo -ne "Downloading... [ ###########          ] ${percent}%\r"
    elif [  ${percent} -lt 65  ]; then
        echo -ne "Downloading... [ ############         ] ${percent}%\r"
    elif [  ${percent} -lt 70  ]; then
        echo -ne "Downloading... [ #############        ] ${percent}%\r"
    elif [  ${percent} -lt 75  ]; then
        echo -ne "Downloading... [ ##############       ] ${percent}%\r"
    elif [  ${percent} -lt 80  ]; then
        echo -ne "Downloading... [ ###############      ] ${percent}%\r"
    elif [  ${percent} -lt 85  ]; then
        echo -ne "Downloading... [ ################     ] ${percent}%\r"
    elif [  ${percent} -lt 90  ]; then
        echo -ne "Downloading... [ #################    ] ${percent}%\r"
    elif [  ${percent} -lt 95  ]; then
        echo -ne "Downloading... [ ##################   ] ${percent}%\r"
    elif [  ${percent} -lt 100  ]; then
        echo -ne "Downloading... [ ###################  ] ${percent}%\r"
    elif [  ${percent} == 100  ]; then
        echo -ne "Downloading... [ #################### ] ${percent}%\r"
    fi
}

# Colors parameters
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m'

# Config and RPMS directory
#CONFIG_DIR=$(pwd)"/config"
RPMS_DIR=$(pwd)"/rpms"
CONFIG_FILE=$(pwd)"/alcasar_rpms_x86_64"

# Retrieving list of installed RPMS
rpm -qa > ${CONFIG_FILE}

# Checking if RPMS dir exists and create it if needed
[[ ! -d ${RPMS_DIR} ]] && mkdir ${RPMS_DIR}

# Retrieving files in configuration file
files=$(cat ${CONFIG_FILE})

# params for percentage
total=$(wc -l < ${CONFIG_FILE})
count=0

# for each package in configuration file
echo -e "${YELLOW}This step may take some time, depending on your connection ...${NC}"
for pckg in ${files}; do
    let percent="${count} * 100 / ${total}"
    print_percentage ${percent}

    url=$(urpmq --ignorearch --sources ${pckg} | grep 'updates\|release' | uniq)
    wget -P "${RPMS_DIR}" "${url}" --quiet

    let count="${count}+1"
done

echo "Creating the tarball ..."

# Creating the tarball
cd ${RPMS_DIR} && tar -czf rpms-x86_64.tar.gz * 

# Moving it in the root directory
mv rpms-x86_64.tar.gz ../
rm -rf ${RPMS_DIR}

echo "Done"
echo