From 8579f32d2cdb7afa7bad368d4fa9f33874869b0e Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sat, 14 Jul 2018 02:23:41 +0300 Subject: add update-alternatives shortcuts --- %HOME%/.bash_utils/alternatives.sh | 46 ++++++++++++++++++++++++++++++++++++++ %HOME%/.bash_utils/os.sh | 2 ++ 2 files changed, 48 insertions(+) create mode 100644 %HOME%/.bash_utils/alternatives.sh (limited to '%HOME%/.bash_utils') diff --git a/%HOME%/.bash_utils/alternatives.sh b/%HOME%/.bash_utils/alternatives.sh new file mode 100644 index 0000000..4a0565c --- /dev/null +++ b/%HOME%/.bash_utils/alternatives.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +# Copyright (c) 2018 Egor Tensin +# This file is part of the "Linux/Cygwin environment" project. +# For details, see https://github.com/egor-tensin/linux-home. +# Distributed under the MIT License. + +alias update-my-alternatives='update-alternatives --quiet --altdir ~/.local/etc/alternatives --admindir ~/.local/var/lib/alternatives' + +setup_alternatives_cc() ( + set -o errexit -o nounset -o pipefail + + gcc_cc="$( command -v gcc 2> /dev/null )" || return 0 + gcc_cxx="$( command -v g++ 2> /dev/null )" || return 0 + clang_cc="$( command -v clang 2> /dev/null )" || return 0 + clang_cxx="$( command -v clang++ 2> /dev/null )" || return 0 + + mkdir -p -- ~/.local/bin + + update-my-alternatives --remove-all cc || true + update-my-alternatives --install ~/.local/bin/cc cc "$clang_cc" 512 --slave ~/.local/bin/c++ c++ "$clang_cxx" + update-my-alternatives --install ~/.local/bin/cc cc "$gcc_cc" 256 --slave ~/.local/bin/c++ c++ "$gcc_cxx" +) + +setup_alternatives() ( + set -o errexit -o nounset -o pipefail + + command -v update-alternatives > /dev/null 2>&1 || return 0 + mkdir -p -- ~/.local/etc/alternatives ~/.local/var/lib/alternatives + + setup_alternatives_cc +) + +setup_alternatives + +alt_gcc() ( + set -o errexit -o nounset -o pipefail + gcc_cc="$( command -v gcc 2> /dev/null )" + update-my-alternatives --set cc "$gcc_cc" +) + +alt_clang() ( + set -o errexit -o nounset -o pipefail + clang_cc="$( command -v clang 2> /dev/null )" + update-my-alternatives --set cc "$clang_cc" +) diff --git a/%HOME%/.bash_utils/os.sh b/%HOME%/.bash_utils/os.sh index b063cbc..f5af0f6 100644 --- a/%HOME%/.bash_utils/os.sh +++ b/%HOME%/.bash_utils/os.sh @@ -43,6 +43,8 @@ os_is_mint() { test "$_os" == "$_MINT" ; } os_is_arch() { test "$_os" == "$_ARCH" -o "$_os" == "$_ARCH_ARM" ; } os_is_fedora() { test "$_os" == "$_FEDORA" ; } +os_is_debian_based() { os_is_ubuntu || os_is_mint ; } + # Cygwin pkg_list_cygwin() ( -- cgit v1.2.3