X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=functions;h=9c863ea8f19f780c06995488a4bc528d2591e658;hb=b5bfb2006502b57fab234345a2393fd04e6d55ad;hp=53747fd616c9bea2f1d4ff3c8579846e664cdea1;hpb=69ac3e7cf686f8e95e47a7ab89bc38796aace488;p=hvlinux.git diff --git a/functions b/functions index 53747fd..9c863ea 100644 --- a/functions +++ b/functions @@ -696,48 +696,97 @@ decompress_package() } # Installation of a package -# -# First argument: Real package name -# Second argument: Installation script name -# Third argument: Unique identification label in 'install.log' +# Arg. #1: Package name and version (ex: gcc-4.5.1) # Remaining arguments: Additional configure options +# Options: +# -h Display this help and returns +# -l Unique identification label in 'install.log' +# (default is package name and version) +# -m Installation mode: +# ac Standard autoconf package, build in separate dir +# acnb Standard autoconf package, building in source dir +# nb No autoconf (configure) +# gnome +# xorg +# pm +# -s Name of script to execute (default is ipkg.sh) ipkg() { START_TIME=$(echo `date +%s`) + + export IPKG_MODE="ac" + export HVLABEL="" # Global variable + local SCRIPT=./ipkg.sh + + while getopts "hl:m:" flag ;do + case ${flag} in + l) + # Alternate label + HVLABEL=${OPTARG} + ;; + m) + # Installation mode + case ${OPTARG} in + ac|acnb|noac|gnome|xorg|pm) + IPKG_MODE=${OPTARG} + ;; + *) + echo "${FUNCNAME}(): Unsupported mode: ${OPTARG}." + return 1 + ;; + esac + ;; + s) + # Alternate script name + SCRIPT=${OPTARG} + ;; + ?) + echo "${FUNCNAME}(): Invalid option: ${OPTARG}." + return 1 + ;; + esac + done + shift `expr "${OPTIND}" - 1` + + unset OPTSTRING + unset OPTIND + unset OPTARG + local PACKAGE_NAME=${1} - local SCRIPT=./${2} - local LABEL=${3} - + # Checking for correct number of arguments - if [ $# -lt 3 ]; then + if [ $# -lt 1 ]; then echo echo "${FUNCNAME}(): Missing argument" echo " command was: \"${FUNCNAME}() $*\"" exit ${EXIT_FAILURE} fi - shift - shift shift local CONFIGURE_OPTS=${*} + if [ -z "${HVLABEL}" ]; then + # Default label = package name and version + HVLABEL=${PACKAGE_NAME} + fi + # Checking if script is valid and executable if [ ! -x ${SCRIPT} ]; then echo - echo "${FUNCNAME}(): script not found: ${SCRIPT}" + echo "${FUNCNAME}(): cannot execute script: ${SCRIPT}" exit ${EXIT_FAILURE} fi - PACKAGE_LOG=${LFS_LOG_DIR}/${LABEL}.log + PACKAGE_LOG=${LFS_LOG_DIR}/${HVLABEL}.log # Checking if package was previously successfully installed - if grep "^${LABEL} successfully installed" ${LFS_LOG_FILE} \ + if grep "^${HVLABEL} successfully installed" ${LFS_LOG_FILE} \ 1> /dev/null 2>&1; then return $EXIT_SUCCESS fi # Displaying label - MSGSTRING="Installing ${LABEL}" + MSGSTRING="Installing ${HVLABEL}" display_checkbox_msg ${MSGSTRING} echo "------------------------" 1>> ${LFS_LOG_FILE} @@ -793,7 +842,7 @@ ipkg() fi # Writing success string to the end of the log file - echo "${LABEL} successfully installed" 1>> ${LFS_LOG_FILE} + echo "${HVLABEL} successfully installed" 1>> ${LFS_LOG_FILE} # Displaying build time after the package name print_status success @@ -801,110 +850,6 @@ ipkg() return $EXIT_SUCCESS } -# Installation of a package, removing source and build directories after. -# Try to merge this function with static_ipkg()??? -# -# First argument: package name -# Second argument: script name -# Remaining arguments: additional configure options -ipkg_cust() -{ - # Checking for correct number of arguments - if [ $# -lt 2 ]; then - echo - echo "${FUNCNAME}(): Wrong number of arguments" - echo " command was: \"${FUNCNAME}() $*\"" - exit ${EXIT_FAILURE} - fi - - local PACKAGE=${1} - local LABEL=${PACKAGE} - local CUSTOM_SCRIPT=${2} - shift - shift - local CONFIGURE_OPTS=${*} - - ipkg ${PACKAGE} ${CUSTOM_SCRIPT} ${LABEL} ${CONFIGURE_OPTS} -} - -# Static function called by: -# ipkg_ac -# ipkg_ac_nb -# ipkg_gnome -# -# First argument: script name -# Second argument: package name -# Remaining arguments: additional configure options -static_ipkg() -{ - # Checking for correct number of arguments - if [ $# -lt 2 ]; then - echo - echo "${FUNCNAME}(): Wrong number of arguments" - echo " command was: \"${FUNCNAME}() $*\"" - exit ${EXIT_FAILURE} - fi - - local SCRIPT=${1} - local PACKAGE=${2} - local LABEL=${PACKAGE} - shift - shift - local CONFIGURE_OPTS=${*} - - ipkg ${PACKAGE} ${SCRIPT} ${LABEL} ${CONFIGURE_OPTS} -} - - -# Installation of a package conforming to GNU autotools. -# The package must be able to be built outside the -# source directory. -# -# First argument: package name -# Remaining arguments: additional configure options -ipkg_ac() -{ - static_ipkg cis-ac ${*} -} - -# Installation of a package conforming to GNU autotools, -# but that must be built inside the source directory. -# -# First argument: package name -# Remaining arguments: additional configure options -ipkg_ac_nb() -{ - static_ipkg cis-ac-nobuild ${*} -} - -# Installation of a GNOME package. -# -# First argument: package name -# Remaining arguments: additional configure options -ipkg_gnome() -{ - static_ipkg cis-gnome ${*} -} - -# Installation of a PERL module -# -# First argument: package name -ipkg_pm() -{ - # Checking for correct number of arguments - if [ $# -ne 1 ]; then - echo - echo "${FUNCNAME}(): Wrong number of arguments" - echo " command was: \"${FUNCNAME}() $*\"" - exit ${EXIT_FAILURE} - fi - - local PACKAGE=${1} - local LABEL=${PACKAGE} - - ipkg ${PACKAGE} cis-pm ${LABEL} -} - # Run command, no log # First argument: Message to display during script # Second argument: command + arguments @@ -964,7 +909,7 @@ rscr() SCRMODE=${1} MSGSTRING=${2} SCRIPT=${3} - LABEL=${SCRIPT} + HVLABEL=${SCRIPT} shift shift SCRIPT_ARGS=${*} @@ -981,18 +926,18 @@ rscr() exit ${EXIT_FAILURE} fi - PACKAGE_LOG=${LFS_LOG_DIR}/${LABEL}.log + PACKAGE_LOG=${LFS_LOG_DIR}/${HVLABEL}.log if [ "x${SCRMODE}" = "xonce" ]; then # Checking if package was previously successfully installed - if grep "^${LABEL} successfully installed" ${LFS_LOG_FILE} 1> /dev/null 2>&1; then + if grep "^${HVLABEL} successfully installed" ${LFS_LOG_FILE} 1> /dev/null 2>&1; then return $EXIT_SUCCESS fi fi display_checkbox_msg ${MSGSTRING} echo "------------------------" 1>> ${LFS_LOG_FILE} - echo ${LABEL} 1>> ${LFS_LOG_FILE} + echo ${HVLABEL} 1>> ${LFS_LOG_FILE} # Executing script ./${SCRIPT} ${SCRIPT_ARGS} 1>> ${PACKAGE_LOG} 2>&1 @@ -1000,7 +945,7 @@ rscr() if [ "x${SCRMODE}" = "xonce" ]; then # Writing success string to the end of the log file - echo "${LABEL} successfully installed" 1>> ${LFS_LOG_FILE} + echo "${HVLABEL} successfully installed" 1>> ${LFS_LOG_FILE} fi # Displaying build time after the package name