diff --git a/lib/configuration.sh b/lib/configuration.sh index c9cf4f0924..602f52eea0 100644 --- a/lib/configuration.sh +++ b/lib/configuration.sh @@ -198,91 +198,7 @@ Since the family can override values from the user configuration and the board c it is often used to in turn override those. POST_FAMILY_CONFIG -# Myy : Once we got a list of selected groups, parse the PACKAGE_LIST inside configuration.sh - -DESKTOP_ELEMENTS_DIR="${SRC}/config/desktop/${RELEASE}" -DESKTOP_CONFIGS_DIR="${DESKTOP_ELEMENTS_DIR}/environments" -DESKTOP_CONFIG_PREFIX="config_" -DESKTOP_APPGROUPS_DIR="${DESKTOP_ELEMENTS_DIR}/appgroups" - -if [[ $BUILD_DESKTOP == "yes" && -z $DESKTOP_ENVIRONMENT ]]; then - - options=() - desktop_environments_prepare_menu - - if [[ "${options[0]}" == "" ]]; then - exit_with_error "No desktop environment seems to be available for your board ${BOARD} (ARCH : ${ARCH} - EXPERT : ${EXPERT})" - fi - - DESKTOP_ENVIRONMENT=$(show_menu "Choose a desktop environment" "$backtitle" "Select the default desktop environment to bundle with this image" "${options[@]}") - - unset options - - if [[ -z "${DESKTOP_ENVIRONMENT}" ]]; then - exit_with_error "No desktop environment selected..." - fi - -fi - -if [[ $BUILD_DESKTOP == "yes" ]]; then - # Expected environment variables : - # - options - # - ARCH - - DESKTOP_ENVIRONMENT_DIRPATH="${DESKTOP_CONFIGS_DIR}/${DESKTOP_ENVIRONMENT}" - - desktop_environment_check_if_valid -fi - -if [[ $BUILD_DESKTOP == "yes" && -z $DESKTOP_ENVIRONMENT_CONFIG_NAME ]]; then - # FIXME Check for empty folders, just in case the current maintainer - # messed up - # Note, we could also ignore it and don't show anything in the previous - # menu, but that hides information and make debugging harder, which I - # don't like. Adding desktop environments as a maintainer is not a - # trivial nor common task. - - options=() - for configuration in "${DESKTOP_ENVIRONMENT_DIRPATH}/${DESKTOP_CONFIG_PREFIX}"*; do - config_filename=$(basename ${configuration}) - config_name=${config_filename#"${DESKTOP_CONFIG_PREFIX}"} - options+=("${config_filename}" "${config_name} configuration") - done - - DESKTOP_ENVIRONMENT_CONFIG_NAME=$(show_menu "Choose the desktop environment config" "$backtitle" "Select the configuration for this environment.\nThese are sourced from ${desktop_environment_config_dir}" "${options[@]}") - unset options - - if [[ -z $DESKTOP_ENVIRONMENT_CONFIG_NAME ]]; then - exit_with_error "No desktop configuration selected... Do you really want a desktop environment ?" - fi -fi - -if [[ $BUILD_DESKTOP == "yes" ]]; then - DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH="${DESKTOP_ENVIRONMENT_DIRPATH}/${DESKTOP_ENVIRONMENT_CONFIG_NAME}" - DESKTOP_ENVIRONMENT_PACKAGE_LIST_FILEPATH="${DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH}/packages" -fi - -# "-z ${VAR+x}" allows to check for unset variable -# Technically, someone might want to build a desktop with no additional -# appgroups. -if [[ $BUILD_DESKTOP == "yes" && -z ${DESKTOP_APPGROUPS_SELECTED+x} ]]; then - - options=() - for appgroup_path in "${DESKTOP_APPGROUPS_DIR}/"*; do - appgroup="$(basename "${appgroup_path}")" - options+=("${appgroup}" "${appgroup^}" off) - done - - DESKTOP_APPGROUPS_SELECTED=$( - show_select_menu \ - "Choose desktop softwares to add" \ - "$backtitle" \ - "Select which kind of softwares you'd like to add to your build" \ - "${options[@]}" - ) - - unset options -fi +interactive_desktop_main_configuration #exit_with_error 'Testing' diff --git a/lib/functions/configuration/config-desktop.sh b/lib/functions/configuration/config-desktop.sh index 9218757a86..070e0738e8 100644 --- a/lib/functions/configuration/config-desktop.sh +++ b/lib/functions/configuration/config-desktop.sh @@ -69,3 +69,92 @@ desktop_environment_check_if_valid() { exit_with_error "${error_msg}" } + +function interactive_desktop_main_configuration() { + + # Myy : Once we got a list of selected groups, parse the PACKAGE_LIST inside configuration.sh + DESKTOP_ELEMENTS_DIR="${SRC}/config/desktop/${RELEASE}" + DESKTOP_CONFIGS_DIR="${DESKTOP_ELEMENTS_DIR}/environments" + DESKTOP_CONFIG_PREFIX="config_" + DESKTOP_APPGROUPS_DIR="${DESKTOP_ELEMENTS_DIR}/appgroups" + + if [[ $BUILD_DESKTOP == "yes" && -z $DESKTOP_ENVIRONMENT ]]; then + + options=() + desktop_environments_prepare_menu + + if [[ "${options[0]}" == "" ]]; then + exit_with_error "No desktop environment seems to be available for your board ${BOARD} (ARCH : ${ARCH} - EXPERT : ${EXPERT})" + fi + + DESKTOP_ENVIRONMENT=$(show_menu "Choose a desktop environment" "$backtitle" "Select the default desktop environment to bundle with this image" "${options[@]}") + + unset options + + if [[ -z "${DESKTOP_ENVIRONMENT}" ]]; then + exit_with_error "No desktop environment selected..." + fi + + fi + + if [[ $BUILD_DESKTOP == "yes" ]]; then + # Expected environment variables : + # - options + # - ARCH + + DESKTOP_ENVIRONMENT_DIRPATH="${DESKTOP_CONFIGS_DIR}/${DESKTOP_ENVIRONMENT}" + + desktop_environment_check_if_valid + fi + + if [[ $BUILD_DESKTOP == "yes" && -z $DESKTOP_ENVIRONMENT_CONFIG_NAME ]]; then + # FIXME Check for empty folders, just in case the current maintainer + # messed up + # Note, we could also ignore it and don't show anything in the previous + # menu, but that hides information and make debugging harder, which I + # don't like. Adding desktop environments as a maintainer is not a + # trivial nor common task. + + options=() + for configuration in "${DESKTOP_ENVIRONMENT_DIRPATH}/${DESKTOP_CONFIG_PREFIX}"*; do + config_filename=$(basename ${configuration}) + config_name=${config_filename#"${DESKTOP_CONFIG_PREFIX}"} + options+=("${config_filename}" "${config_name} configuration") + done + + DESKTOP_ENVIRONMENT_CONFIG_NAME=$(show_menu "Choose the desktop environment config" "$backtitle" "Select the configuration for this environment.\nThese are sourced from ${desktop_environment_config_dir}" "${options[@]}") + unset options + + if [[ -z $DESKTOP_ENVIRONMENT_CONFIG_NAME ]]; then + exit_with_error "No desktop configuration selected... Do you really want a desktop environment ?" + fi + fi + + if [[ $BUILD_DESKTOP == "yes" ]]; then + DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH="${DESKTOP_ENVIRONMENT_DIRPATH}/${DESKTOP_ENVIRONMENT_CONFIG_NAME}" + DESKTOP_ENVIRONMENT_PACKAGE_LIST_FILEPATH="${DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH}/packages" + fi + + # "-z ${VAR+x}" allows to check for unset variable + # Technically, someone might want to build a desktop with no additional + # appgroups. + if [[ $BUILD_DESKTOP == "yes" && -z ${DESKTOP_APPGROUPS_SELECTED+x} ]]; then + + options=() + for appgroup_path in "${DESKTOP_APPGROUPS_DIR}/"*; do + appgroup="$(basename "${appgroup_path}")" + options+=("${appgroup}" "${appgroup^}" off) + done + + DESKTOP_APPGROUPS_SELECTED=$( + show_select_menu \ + "Choose desktop softwares to add" \ + "$backtitle" \ + "Select which kind of softwares you'd like to add to your build" \ + "${options[@]}" + ) + + unset options + fi + +}