@@ -59,6 +59,7 @@ function __init_core_variables() {
5959 readonly AE_RUN_BASE_DIR=" $( pwd -P) "
6060
6161 # Initialize printf variables
62+ readonly AE_LOG_PHASE_REPO=" (CORE)"
6263 readonly AE_LOG_PHASE_REPO=" (REPO)"
6364 readonly AE_LOG_PHASE_PPA=" (PPA)"
6465 readonly AE_LOG_PHASE_DEB=" (DPKG)"
@@ -610,7 +611,6 @@ function _fix_ubuntu_derivatives() {
610611 declare -gr AE_BASE_CODENAME=" ${AE_RUN_CODENAME} "
611612 log_var " AE_BASE_CODENAME"
612613 log_var " AE_RUN_IS_DEBIAN"
613-
614614}
615615
616616function __test_internet() {
@@ -691,9 +691,9 @@ function _get_remote_file() {
691691 local file_url=" ${2} "
692692 log_property " URL is set to" " ${file_url} "
693693
694- if [ " $# " -eq 2 ]; then
694+ if [[ $# -eq 2 ] ]; then
695695 # Remote files
696- wget -q " ${file_url} " -O " $file_name " >> $" $AE_LOG_FILE "
696+ wget -q " ${file_url} " -O " $file_name " 2>&1 | log_trace " ${AE_LOG_PHASE_CORE} "
697697 exit_status=" $? "
698698
699699 log_property " Exit code (wget)" " $exit_status "
@@ -1016,14 +1016,14 @@ function _set_yaml_config() {
10161016
10171017 log_info " Validating Config Version"
10181018 if [[ $AE_RUN_CONFIG_API -eq 3 ]]; then
1019- log_success " OK"
1019+ log_success " [v3] OK"
10201020 elif [[ -z $AE_RUN_CONFIG_API ]]; then
10211021 log_error " [v3] Missing config API version identifier."
10221022 log_error " [v3] Suggeted Action: Please include api: ${AE_CONFIG_API} in your config file."
10231023 else
1024- log_error " Config API version mismatch!"
1025- log_error " Expected: ${AE_CONFIG_API} Got: ${AE_RUN_CONFIG_API} "
1026- log_error " api key MUST be set to ${AE_CONFIG_API} "
1024+ log_error " [v3] Config API version mismatch!"
1025+ log_error " [v3] Expected: ${AE_CONFIG_API} Got: ${AE_RUN_CONFIG_API} "
1026+ log_error " [v3] api key MUST be set to ${AE_CONFIG_API} "
10271027 log_error " [v3] Suggeted Action: Please ensure api: ${AE_CONFIG_API} is set in your config file."
10281028 AE_RUN_CFG_BUILD_ERRORS=$(( AE_RUN_CFG_BUILD_ERRORS + 1 ))
10291029 fi
@@ -1083,6 +1083,8 @@ function _set_yaml_config() {
10831083 _check_bool " AE_RUN_CONFIG_REPO_SLACK" " ${AE_RUN__config__add_repo__slack[0]} "
10841084 _check_bool " AE_RUN_CONFIG_REPO_VIVALDI" " ${AE_RUN__config__add_repo__vivaldi[0]} "
10851085 _check_bool " AE_RUN_CONFIG_REPO_PROTONVPN" " ${AE_RUN__config__add_repo__protonvpn[0]} "
1086+ _check_bool " AE_RUN_CONFIG_REPO_NEURODEBIAN" " ${AE_RUN__config__add_repo__neurodebian[0]} "
1087+ _check_bool " AE_RUN_CONFIG_REPO_MINICONDA" " ${AE_RUN__config__add_repo__miniconda[0]} "
10861088
10871089 # Debian Components
10881090 _check_bool " AE_RUN_CONFIG_REPO_DEBIAN_NONFREE" " ${AE_RUN__config__add_repo__debian_nonfree[0]} "
@@ -1538,8 +1540,18 @@ deb https://desktop-download.mendeley.com/download/apt stable main"
15381540 log_debug " Skipped adding Ubuntu/Multiverse repository"
15391541 fi
15401542
1541- else
1543+ # # Partner Repositories
1544+ # if [[ $AE_RUN_DISTRO_ROOT == "ubuntu" ]]; then
1545+ # log_debug "Checking for entries in sources.list"
1546+ # if grep -q "^deb http://archive.canonical.com/ubuntu $AE_BASE_CODENAME} partner" /etc/apt/sources.list; then
1547+ # log_success "Partner repositories are already enabled!"
1548+ # elif grep -qE "^[[:space:]]*#+[[:space:]]*deb[[:space:]]+http:\/\/archive\.canonical\.com\/ubuntu $AE_BASE_CODENAME} partner" /etc/apt/sources.list; then
1549+ # log_debug "Found commented out entry in sources.list file, enabling it"
1550+ # sed -i 's/\(# \)\(deb .*ubuntu '${DISTRO}' partner\)/\2/g' /etc/apt/sources.list
1551+ # fi
1552+ # fi
15421553
1554+ else
15431555 log_debug " Distro is not Ubuntu, skip adding ubuntu specific components!"
15441556 fi # ubuntu check
15451557
@@ -1704,20 +1716,27 @@ deb https://desktop-download.mendeley.com/download/apt stable main"
17041716 if [ " $AE_RUN_CONFIG_REPO_WINEHQ " == " true" ]; then
17051717 if [[ ${AE_ARCH} == " amd64" ]]; then
17061718 log_info " WineHQ"
1707- if [[ ${AE_RUN_CODENAME} == " focal" ]] || [[ ${AE_RUN_CODENAME} == " groovy" ]] ||
1708- [[ ${AE_RUN_CODENAME} == " hirsute" ]] || [[ ${AE_RUN_CODENAME} == " bullseye" ]]; then
1719+ if [[ ${AE_RUN_CODENAME} == " bionic" ]] || [[ ${AE_RUN_CODENAME} == " buster" ]] ||
1720+ [[ ${AE_RUN_CODENAME} == " stretch" ]]; then
1721+ log_error " Latest version of WINE depends on libfaudio0 package,"
1722+ log_error " which is not available on your distribution!"
1723+ log_warn " For more information visit https://forum.winehq.org/viewtopic.php?f=8&t=32192"
1724+ else
17091725 __add_repo_keys --format " asc" \
17101726 --file-prefix " wine-hq" \
17111727 --key-url https://dl.winehq.org/wine-builds/winehq.key
17121728 if echo " deb [signed-by=${AE_APT_KEYRINGS_DIR} /wine-hq.gpg] https://dl.winehq.org/wine-builds/${AE_RUN_DISTRO_NAME} / ${AE_RUN_CODENAME} main #WineHQ" > ${AE_APT_SOURCES_DIR} /winehq.list; then
17131729 log_success " OK"
1730+ log_info " Enabling i386 architecture"
1731+ if dpkg --add-architecture i386 2>&1 | log_trace ${AE_LOG_PHASE_REPO} ; then
1732+ log_success " OK"
1733+ else
1734+ log_error " Failed to enable i386 architecture! WineHQ packages cannot be installed!"
1735+ AE_RUN_STACK_ERR+=(" repo-winehq-add-arch-error::config.add_repo.winehq" )
1736+ fi
17141737 else
17151738 log_error " Adding WineHQ repository failed"
17161739 fi
1717- else
1718- log_error " Latest version of WINE depends on libfaudio0 package,"
1719- log_error " which is not available on your distribution!"
1720- log_warn " For more information visit https://forum.winehq.org/viewtopic.php?f=8&t=32192"
17211740 fi
17221741 else
17231742 log_error " WineHQ is not supported on this architecture(${AE_ARCH} )"
@@ -2130,11 +2149,62 @@ deb https://desktop-download.mendeley.com/download/apt stable main"
21302149 log_success " OK"
21312150 else
21322151 log_error " Failed to add ProtonVPN repository"
2152+ AE_RUN_STACK_ERR+=(" repo-add-error::config.add_repo.protonvpn" )
21332153 fi
21342154 else
21352155 log_debug " Skipped adding ProtonVPN repository"
21362156 fi
21372157
2158+ # Anaconda
2159+ if [ " $AE_RUN_CONFIG_REPO_MINICONDA " == " true" ]; then
2160+ if [ " $AE_ARCH " == " amd64" ]; then
2161+ log_info " Miniconda"
2162+ __add_repo_keys \
2163+ --format " asc" \
2164+ --file-prefix " anaconda-archive-keyring" \
2165+ --key-url " https://repo.anaconda.com/pkgs/misc/gpgkeys/anaconda.asc"
2166+
2167+ if echo " deb [arch=${AE_ARCH} signed-by=${AE_APT_KEYRINGS_DIR} /anaconda-archive-keyring.gpg] https://repo.anaconda.com/pkgs/misc/debrepo/conda stable main" > ${AE_APT_SOURCES_DIR} /miniconda.list; then
2168+ log_success " OK"
2169+ else
2170+ log_error " Failed to add Miniconda repository"
2171+ AE_RUN_STACK_ERR+=(" repo-add-error::config.add_repo.miniconda" )
2172+ fi
2173+ else
2174+ log_error " Miniconda repository is not supported on this architecture($AE_ARCH )!"
2175+ AE_RUN_STACK_ERR+=(" repo-unsupported-error::config.add_repo.miniconda" )
2176+ fi
2177+ else
2178+ log_debug " Skipped adding Miniconda repository"
2179+ fi
2180+
2181+ # NeuroDebian
2182+ if [ " $AE_RUN_CONFIG_REPO_NEURODEBIAN " == " true" ]; then
2183+ if [ " $AE_ARCH " == " amd64" ]; then
2184+ log_info " NeuroDebian"
2185+ __add_repo_keys \
2186+ --format " asc" \
2187+ --file-prefix " neurodebian-archive-keyring" \
2188+ --key-url " https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xdd95cc430502e37ef840aceea5d32f012649a5a9"
2189+
2190+ declare -r AE_RUN_REPO_NEURODEBIAN_SOURCES_CONTENT=" # NeuroDebian Repositories
2191+ deb [signed-by=${AE_APT_KEYRINGS_DIR} /neurodebian-archive-keyring.gpg] http://neuro.debian.net/debian data main contrib non-free #NeuroDebian-Data
2192+ deb [signed-by=${AE_APT_KEYRINGS_DIR} /neurodebian-archive-keyring.gpg] http://neuro.debian.net/debian ${AE_RUN_CODENAME} main contrib non-free #NeuroDebian"
2193+
2194+ if echo " ${AE_RUN_REPO_NEURODEBIAN_SOURCES_CONTENT} " > ${AE_APT_SOURCES_DIR} /neurodebian.list; then
2195+ log_success " OK"
2196+ else
2197+ log_error " Failed to add NeuroDebian repository"
2198+ AE_RUN_STACK_ERR+=(" repo-add-error::config.add_repo.neurodebian" )
2199+ fi
2200+ else
2201+ log_error " NeuroDebian repository is not supported on this architecture($AE_ARCH )!"
2202+ AE_RUN_STACK_ERR+=(" repo-unsupported-error::config.add_repo.neurodebian" )
2203+ fi
2204+ else
2205+ log_debug " Skipped adding NeuroDebian repository"
2206+ fi
2207+
21382208 # ROS2
21392209 # Arch support varies on distro so lot of ugly elifs.
21402210 ros2_supported=" false"
@@ -2153,12 +2223,11 @@ deb https://desktop-download.mendeley.com/download/apt stable main"
21532223 if [[ $AE_RUN_DISTRO_NAME == " ubuntu" ]]; then
21542224 if [[ $AE_RUN_CODENAME == " focal" ]]; then
21552225 ros2_supported=" true"
2156- log_success " ROS2 is available on focal /$AE_ARCH "
2226+ log_debug " ROS2 is available on Focal /$AE_ARCH "
21572227 fi
21582228 fi # ubuntu
21592229
21602230 if [[ $ros2_supported == " true" ]]; then
2161- log_info " Adding ROS2 repositories"
21622231 log_debug " Adding ROS2 repo key"
21632232 __add_repo_keys --format " asc" \
21642233 --file-prefix " ros2" \
@@ -2196,26 +2265,25 @@ deb https://desktop-download.mendeley.com/download/apt stable main"
21962265 if [[ $AE_RUN_DISTRO_NAME == " ubuntu" ]]; then
21972266 if [[ $AE_RUN_CODENAME == " bionic" ]]; then
21982267 ros_arch_supported=" true"
2199- log_success " ROS is available on Bionic/$AE_ARCH "
2268+ log_debug " ROS is available on Bionic/$AE_ARCH "
22002269 elif [[ $AE_RUN_CODENAME == " xenial" ]]; then
22012270 ros_arch_supported=" true"
2202- log_success " ROS is available on Xenial/$AE_ARCH "
2271+ log_debug " ROS is available on Xenial/$AE_ARCH "
22032272 elif [[ $AE_RUN_CODENAME == " focal" ]]; then
22042273 ros_arch_supported=" true"
2205- log_success " ROS is available on Focal/$AE_ARCH "
2274+ log_debug " ROS is available on Focal/$AE_ARCH "
22062275 fi
22072276 fi # ubuntu
22082277
22092278 if [ " $AE_RUN_DISTRO_NAME " == " debian" ]; then
22102279 # Check architectures
22112280 if [[ $AE_RUN_CODENAME == " stretch" ]] || [[ $AE_RUN_CODENAME == " buster" ]]; then
22122281 ros_arch_supported=" true"
2213- log_success " ROS is available on Debian ${AE_RUN_CODENAME} /$AE_ARCH "
2282+ log_debug " ROS is available on Debian ${AE_RUN_CODENAME} /$AE_ARCH "
22142283 fi
22152284 fi # debian
22162285
22172286 if [[ $ros_arch_supported == " true" ]]; then
2218- log_info " Adding ROS repositories"
22192287 log_debug " Adding ROS repo key "
22202288 __add_repo_keys --format " asc" \
22212289 --file-prefix " ros" \
@@ -2856,7 +2924,6 @@ function _process_menu() {
28562924 __menu_info_add_repo="
28572925 Settings for additional repositories is set as follows.
28582926 -------------------------------------------------------
2859-
28602927 Brave Browser : $AE_RUN_CONFIG_REPO_BRAVE_BROWSER
28612928 Docker Community Edition : $AE_RUN_CONFIG_REPO_DOCKER
28622929 GitHub CLI : $AE_RUN_CONFIG_REPO_GH
@@ -2872,6 +2939,8 @@ function _process_menu() {
28722939 Microsoft - Skype : $AE_RUN_CONFIG_REPO_SKYPE
28732940 Microsoft - Teams : $AE_RUN_CONFIG_REPO_MSTEAMS
28742941 Microsoft - VSCode : $AE_RUN_CONFIG_REPO_VSCODE
2942+ Miniconda (anaconda) : $AE_RUN_CONFIG_REPO_MINICONDA
2943+ NeuroDebian : $AE_RUN_CONFIG_REPO_NEURODEBIAN
28752944 Podman (from Kubic Project) : $AE_RUN_CONFIG_REPO_PODMAN
28762945 ProtonVPN Client : $AE_RUN_CONFIG_REPO_PROTONVPN
28772946 ROS : $AE_RUN_CONFIG_REPO_ROS
@@ -3353,12 +3422,11 @@ function main() {
33533422
33543423 _set_yaml_config
33553424
3356- log_stage " Check AUTOPILOT requirements"
33573425 if [[ ! -t 1 ]] && [[ $AE_AUTOPILOT != " true" ]]; then
33583426 log_error " Terminal is not interactive, yet you have not specified --autopilot flag!"
33593427 log_and_exit " Non-interactive terminal requires --autopilot" " 54"
33603428 else
3361- log_success " OK "
3429+ log_debug " Terminal is interactive, no need to enforce autopilot usage "
33623430 fi
33633431
33643432 # Test if any apt-get ops are running
@@ -3372,7 +3440,7 @@ function main() {
33723440 fi
33733441
33743442 # Autopilot
3375- log_stage " Checking for Autopilot "
3443+ log_stage " Checking for AUTOPILOT "
33763444 if [[ ${AE_AUTOPILOT} == " true" ]]; then
33773445 log_success " Autopilot is ENABLED"
33783446 # log_and_exit "Because I can" "255"
0 commit comments