Skip to content
Snippets Groups Projects
Commit 0e2a0fcc authored by Andri Joos's avatar Andri Joos :blush:
Browse files

Merge branch 'git_config'

parents f43e3d92 59c8504b
No related branches found
No related tags found
No related merge requests found
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
source "$SCRIPT_DIR/package_manager_identifiers.sh"
# APT packages
APT_GIT_PACKAGE="$APT_IDENTIFIER:git"
APT_DOCKER_CE_PACKAGE="$APT_IDENTIFIER:docker-ce"
APT_VIRTUALBOX_PACKAGE="$APT_IDENTIFIER:virtualbox"
APT_VLC_PACKAGE="$APT_IDENTIFIER:vlc"
APT_NET_TOOLS_PACKAGE="$APT_IDENTIFIER:net-tools"
APT_DL_DRIVER_PACKAGE="$APT_IDENTIFIER:dl-driver"
APT_PROTONVPN_PACKAGE="$APT_IDENTIFIER:proton-vpn"
APT_WIREGUARDVPN_PACKAGE="$APT_IDENTIFIER:wireguard"
APT_DCONF_EDITOR="$APT_IDENTIFIER:dconf-editor"
APT_GIT_PACKAGE_DISPLAY_NAME="Git"
APT_DOCKER_CE_PACKAGE_DISPLAY_NAME="Docker Community Edition"
APT_VIRTUALBOX_PACKAGE_DISPLAY_NAME="VirtualBox"
APT_VLC_PACKAGE_DISPLAY_NAME="VLC Media Player"
APT_NET_TOOLS_PACKAGE_DISPLAY_NAME="net-tools"
APT_DL_DRIVER_PACKAGE_DISPLAY_NAME="DisplayLink Driver"
APT_PROTONVPN_PACKAGE_DISPLAY_NAME="ProtonVPN"
APT_WIREGUARDVPN_PACKAGE_DISPLAY_NAME="WireGuard VPN"
APT_DCONF_EDITOR_DISPLAY_NAME="DConf Editor"
# Snap packages
SNAP_VSCODE_PACKAGE="$SNAP_IDENTIFIER:vscode"
SNAP_RIDER_PACKAGE="$SNAP_IDENTIFIER:rider"
SNAP_KUBECTL_PACKAGE="$SNAP_IDENTIFIER:kubectl"
SNAP_FIREFOX_PACKAGE="$SNAP_IDENTIFIER:firefox"
SNAP_VSCODE_PACKAGE_DISPLAY_NAME="Visual Studio Code"
SNAP_RIDER_PACKAGE_DISPLAY_NAME="JetBrains Rider"
SNAP_KUBECTL_PACKAGE_DISPLAY_NAME="kubectl"
SNAP_FIREFOX_PACKAGE_DISPLAY_NAME="Firefox"
# Flatpak packages
FLATPAK_IDEA_COMMUNITY_PACKAGE="$FLATPAK_IDENTIFIER:intellij-idea-community"
FLATPAK_WEBSTORM_PACKAGE="$FLATPAK_IDENTIFIER:webstorm"
FLATPAK_ANDROID_STUDIO_PACKAGE="$FLATPAK_IDENTIFIER:android-studio"
FLATPAK_OBSIDIAN_PACKAGE="$FLATPAK_IDENTIFIER:obsidian"
FLATPAK_SPOTIFY_PACKAGE="$FLATPAK_IDENTIFIER:spotify"
FLATPAK_GIMP_PACKAGE="$FLATPAK_IDENTIFIER:gimp"
FLATPAK_FLAMESHOT_PACKAGE="$FLATPAK_IDENTIFIER:flameshot"
FLATPAK_NEXTCLOUD_CLIENT_PACKAGE="$FLATPAK_IDENTIFIER:nextcloud-client"
FLATPAK_FLATSEAL_PACKAGE="$FLATPAK_IDENTIFIER:flatseal"
FLATPAK_REMMINA_PACKAGE="$FLATPAK_IDENTIFIER:remmina"
FLATPAK_IDEA_COMMUNITY_PACKAGE_DISPLAY_NAME="JetBrains IntelliJ IDEA Community"
FLATPAK_WEBSTORM_PACKAGE_DISPLAY_NAME="JetBrains WebStorm"
FLATPAK_ANDROID_STUDIO_PACKAGE_DISPLAY_NAME="Android Studio"
FLATPAK_OBSIDIAN_PACKAGE_DISPLAY_NAME="Obsidian"
FLATPAK_SPOTIFY_PACKAGE_DISPLAY_NAME="Spotify"
FLATPAK_GIMP_PACKAGE_DISPLAY_NAME="GIMP"
FLATPAK_FLAMESHOT_PACKAGE_DISPLAY_NAME="Flameshot"
FLATPAK_NEXTCLOUD_CLIENT_PACKAGE_DISPLAY_NAME="Nextcloud Client"
FLATPAK_FLATSEAL_PACKAGE_DISPLAY_NAME="Flatseal"
FLATPAK_REMMINA_PACKAGE_DISPLAY_NAME="Remmina"
# Raw packages
RAW_GITEXTENSIONS_PACKAGE="$RAW_IDENTIFIER:gitextensions"
RAW_K3D_PACKAGE="$RAW_IDENTIFIER:k3d"
RAW_GITEXTENSIONS_PACKAGE_DISPLAY_NAME="GitExtensions"
RAW_K3D_PACKAGE_DISPLAY_NAME="k3d"
# Mainline kernel
MAINLINE_KERNEL_PACKAGE="$MAINLINE_KERNEL_IDENTIFIER"
MAINLINE_KERNEL_PACKAGE_DISPLAY_NAME="Mainline Kernel"
# Packages dictionary
declare -A PACKAGES
PACKAGES=(
["$SNAP_VSCODE_PACKAGE"]="$SNAP_VSCODE_PACKAGE_DISPLAY_NAME"
["$FLATPAK_IDEA_COMMUNITY_PACKAGE"]="$FLATPAK_IDEA_COMMUNITY_PACKAGE_DISPLAY_NAME"
["$SNAP_RIDER_PACKAGE"]="$SNAP_RIDER_PACKAGE_DISPLAY_NAME"
["$FLATPAK_WEBSTORM_PACKAGE"]="$FLATPAK_WEBSTORM_PACKAGE_DISPLAY_NAME"
["$FLATPAK_ANDROID_STUDIO_PACKAGE"]="$FLATPAK_ANDROID_STUDIO_PACKAGE_DISPLAY_NAME"
["$APT_GIT_PACKAGE"]="$APT_GIT_PACKAGE_DISPLAY_NAME"
["$RAW_GITEXTENSIONS_PACKAGE"]="$RAW_GITEXTENSIONS_PACKAGE_DISPLAY_NAME"
["$APT_DOCKER_CE_PACKAGE"]="$APT_DOCKER_CE_PACKAGE_DISPLAY_NAME"
["$RAW_K3D_PACKAGE"]="$RAW_K3D_PACKAGE_DISPLAY_NAME"
["$SNAP_KUBECTL_PACKAGE"]="$SNAP_KUBECTL_PACKAGE_DISPLAY_NAME"
["$FLATPAK_OBSIDIAN_PACKAGE"]="$FLATPAK_OBSIDIAN_PACKAGE_DISPLAY_NAME"
["$FLATPAK_SPOTIFY_PACKAGE"]="$FLATPAK_SPOTIFY_PACKAGE_DISPLAY_NAME"
["$FLATPAK_GIMP_PACKAGE"]="$FLATPAK_GIMP_PACKAGE_DISPLAY_NAME"
["$APT_VIRTUALBOX_PACKAGE"]="$APT_VIRTUALBOX_PACKAGE_DISPLAY_NAME"
["$APT_VLC_PACKAGE"]="$APT_VLC_PACKAGE_DISPLAY_NAME"
["$APT_NET_TOOLS_PACKAGE"]="$APT_NET_TOOLS_PACKAGE_DISPLAY_NAME"
["$FLATPAK_FLAMESHOT_PACKAGE"]="$FLATPAK_FLAMESHOT_PACKAGE_DISPLAY_NAME"
["$APT_DL_DRIVER_PACKAGE"]="$APT_DL_DRIVER_PACKAGE_DISPLAY_NAME"
["$FLATPAK_NEXTCLOUD_CLIENT_PACKAGE"]="$FLATPAK_NEXTCLOUD_CLIENT_PACKAGE_DISPLAY_NAME"
["$APT_PROTONVPN_PACKAGE"]="$APT_PROTONVPN_PACKAGE_DISPLAY_NAME"
["$APT_WIREGUARDVPN_PACKAGE"]="$APT_WIREGUARDVPN_PACKAGE_DISPLAY_NAME"
["$FLATPAK_FLATSEAL_PACKAGE"]="$FLATPAK_FLATSEAL_PACKAGE_DISPLAY_NAME"
["$FLATPAK_REMMINA_PACKAGE"]="$FLATPAK_REMMINA_PACKAGE_DISPLAY_NAME"
["$SNAP_FIREFOX_PACKAGE"]="$SNAP_FIREFOX_PACKAGE_DISPLAY_NAME"
["$MAINLINE_KERNEL_PACKAGE"]="$MAINLINE_KERNEL_PACKAGE_DISPLAY_NAME"
["$APT_DCONF_EDITOR"]="$APT_DOCKER_CE_PACKAGE_DISPLAY_NAME"
)
......@@ -3,73 +3,7 @@ set -e
INSTALLER_DIR=$(dirname "${BASH_SOURCE[0]}")
HELPER_SCRIPTS_DIR="$INSTALLER_DIR/helper_scripts"
source "$HELPER_SCRIPTS_DIR/package_manager_identifiers.sh"
# APT packages
APT_GIT_PACKAGE="$APT_IDENTIFIER:git"
APT_DOCKER_CE_PACKAGE="$APT_IDENTIFIER:docker-ce"
APT_VIRTUALBOX_PACKAGE="$APT_IDENTIFIER:virtualbox"
APT_VLC_PACKAGE="$APT_IDENTIFIER:vlc"
APT_NET_TOOLS_PACKAGE="$APT_IDENTIFIER:net-tools"
APT_DL_DRIVER_PACKAGE="$APT_IDENTIFIER:dl-driver"
APT_PROTONVPN_PACKAGE="$APT_IDENTIFIER:proton-vpn"
APT_WIREGUARDVPN_PACKAGE="$APT_IDENTIFIER:wireguard"
APT_DCONF_EDITOR="$APT_IDENTIFIER:dconf-editor"
# Snap packages
SNAP_VSCODE_PACKAGE="$SNAP_IDENTIFIER:vscode"
SNAP_RIDER_PACKAGE="$SNAP_IDENTIFIER:rider"
SNAP_KUBECTL_PACKAGE="$SNAP_IDENTIFIER:kubectl"
SNAP_FIREFOX_PACKAGE="$SNAP_IDENTIFIER:firefox"
# Flatpak packages
FLATPAK_IDEA_COMMUNITY_PACKAGE="$FLATPAK_IDENTIFIER:intellij-idea-community"
FLATPAK_WEBSTORM_PACKAGE="$FLATPAK_IDENTIFIER:webstorm"
FLATPAK_ANDROID_STUDIO_PACKAGE="$FLATPAK_IDENTIFIER:android-studio"
FLATPAK_OBSIDIAN_PACKAGE="$FLATPAK_IDENTIFIER:obsidian"
FLATPAK_SPOTIFY_PACKAGE="$FLATPAK_IDENTIFIER:spotify"
FLATPAK_GIMP_PACKAGE="$FLATPAK_IDENTIFIER:gimp"
FLATPAK_FLAMESHOT_PACKAGE="$FLATPAK_IDENTIFIER:flameshot"
FLATPAK_NEXTCLOUD_CLIENT_PACKAGE="$FLATPAK_IDENTIFIER:nextcloud-client"
FLATPAK_FLATSEAL_PACKAGE="$FLATPAK_IDENTIFIER:flatseal"
FLATPAK_REMMINA_PACKAGE="$FLATPAK_IDENTIFIER:remmina"
# Raw packages
RAW_GITEXTENSIONS_PACKAGE="$RAW_IDENTIFIER:gitextensions"
RAW_K3D_PACKAGE="$RAW_IDENTIFIER:k3d"
# Mainline kernel
MAINLINE_KERNEL_PACKAGE="$MAINLINE_KERNEL_IDENTIFIER"
declare -A PACKAGES
PACKAGES=(
["$SNAP_VSCODE_PACKAGE"]="VS Code"
["$FLATPAK_IDEA_COMMUNITY_PACKAGE"]="JetBrains IntelliJ IDEA Community"
["$SNAP_RIDER_PACKAGE"]="JetBrains Rider"
["$FLATPAK_WEBSTORM_PACKAGE"]="JetBrains WebStorm"
["$FLATPAK_ANDROID_STUDIO_PACKAGE"]="Android Studio"
["$APT_GIT_PACKAGE"]="Git"
["$RAW_GITEXTENSIONS_PACKAGE"]="GitExtensions"
["$APT_DOCKER_CE_PACKAGE"]="Docker Community Edition"
["$RAW_K3D_PACKAGE"]="k3d"
["$SNAP_KUBECTL_PACKAGE"]="kubectl"
["$FLATPAK_OBSIDIAN_PACKAGE"]="Obsidian"
["$FLATPAK_SPOTIFY_PACKAGE"]="Spotify"
["$FLATPAK_GIMP_PACKAGE"]="GIMP"
["$APT_VIRTUALBOX_PACKAGE"]="VirtualBox"
["$APT_VLC_PACKAGE"]="VLC Media Player"
["$APT_NET_TOOLS_PACKAGE"]="net-tools"
["$FLATPAK_FLAMESHOT_PACKAGE"]="Flameshot"
["$APT_DL_DRIVER_PACKAGE"]="DisplayLink Driver"
["$FLATPAK_NEXTCLOUD_CLIENT_PACKAGE"]="Nextcloud Client"
["$APT_PROTONVPN_PACKAGE"]="ProtonVPN"
["$APT_WIREGUARDVPN_PACKAGE"]="WireGuard VPN"
["$FLATPAK_FLATSEAL_PACKAGE"]="Flatseal"
["$FLATPAK_REMMINA_PACKAGE"]="Remmina"
["$SNAP_FIREFOX_PACKAGE"]="Firefox"
["$MAINLINE_KERNEL_PACKAGE"]="Mainline Kernel"
["$APT_DCONF_EDITOR"]="DConf Editor"
)
source "$HELPER_SCRIPTS_DIR/packages.sh"
ORDERED_PACKAGES=( # Needed when order matters
"$SNAP_VSCODE_PACKAGE"
......
......@@ -3,6 +3,7 @@
dconf_config_path: ""
vscode_config_path: ""
vscode_extensions_path: ""
git_config_path: ""
swap_sizes: ""
tasks:
......@@ -16,8 +17,15 @@
loop:
- ../tasks/setup/vscode_settings.yaml
- ../tasks/setup/vscode_extensions.yaml
- name: Include Swap Tasks
include_tasks: "{{ item }}"
loop:
- ../tasks/setup/swap.yaml
- name: Include Git Tasks
vars:
git_user_config_path: "{{ ansible_env.HOME }}/.gitconfig"
include_tasks: "{{ item }}"
loop:
- ../tasks/setup/git.yaml
......@@ -3,25 +3,66 @@ set -e
INSTALLER_DIR=$(dirname "${BASH_SOURCE[0]}")
HELPER_SCRIPTS_DIR="$INSTALLER_DIR/helper_scripts"
source "$HELPER_SCRIPTS_DIR/packages.sh"
NONE_IDENTIFIER="none"
NONE_TEXT="None"
declare -A GIT_EDITORS
GIT_EDITORS=(
["$SNAP_VSCODE_PACKAGE"]="${PACKAGES["$SNAP_VSCODE_PACKAGE"]}"
["$NONE_IDENTIFIER"]="$NONE_TEXT"
)
ORDERED_GIT_EDITORS=(
"$NONE_IDENTIFIER"
"$SNAP_VSCODE_PACKAGE"
)
declare -A GIT_DIFFTOOLS
GIT_DIFFTOOLS=(
["$SNAP_VSCODE_PACKAGE"]="${PACKAGES["$SNAP_VSCODE_PACKAGE"]}"
["$NONE_IDENTIFIER"]="$NONE_TEXT"
)
ORDERED_GIT_DIFFTOOLS=(
"$NONE_IDENTIFIER"
"$SNAP_VSCODE_PACKAGE"
)
declare -A GIT_MERGETOOLS
GIT_MERGETOOLS=(
["$SNAP_VSCODE_PACKAGE"]="${PACKAGES["$SNAP_VSCODE_PACKAGE"]}"
["$NONE_IDENTIFIER"]="$NONE_TEXT"
)
ORDERED_GIT_MERGETOOLS=(
"$NONE_IDENTIFIER"
"$SNAP_VSCODE_PACKAGE"
)
SWAP_DEFAULT_UNIT="G"
main() {
read -e -p "DConf config path (empty to skip): " dconf_config_path
read -e -p "Visual Studio Code User Settings (empty to skip): " vscode_config_path
read -e -p "Visual Studio Code Extensions File (empty to skip): " vscode_extensions_path
read -e -p "Comma separated swap sizes in Gigabytes (empty to skip): " swap_sizes
swap_sizes="${swap_sizes//','/"$SWAP_DEFAULT_UNIT "}"
additional_ansible_args=()
# read -e -p "DConf config (empty to skip): " dconf_config_path
# read -e -p "Visual Studio Code User Settings (empty to skip): " vscode_config_path
# read -e -p "Visual Studio Code Extensions File (empty to skip): " vscode_extensions_path
read -e -p "Git Config (empty to skip): " git_config_path
# read -e -p "Comma separated swap sizes in Gigabytes (empty to skip): " swap_sizes
# swap_sizes="${swap_sizes//','/"$SWAP_DEFAULT_UNIT "}"
if [[ -n "$swap_sizes" ]]; then
additional_ansible_args+=('--ask-become-pass')
swap_sizes+="$SWAP_DEFAULT_UNIT"
fi
additional_ansible_args=()
if [[ -n "$swap_sizes" || -n "$git_config_path" ]]; then
additional_ansible_args+=('--ask-become-pass')
fi
$HELPER_SCRIPTS_DIR/install_ansible.sh
ansible-playbook "${INSTALLER_DIR}/playbooks/setup.yaml" \
--extra-vars "dconf_config_path='$dconf_config' vscode_config_path='$vscode_config_path' vscode_extensions_path='$vscode_extensions_path' swap_sizes='$swap_sizes'" \
--extra-vars "dconf_config_path='$dconf_config' vscode_config_path='$vscode_config_path' vscode_extensions_path='$vscode_extensions_path' swap_sizes='$swap_sizes' git_config_path='$git_config_path'" \
--inventory "${INSTALLER_DIR}/ansible_inventory.ini" \
$(IFS=' ' echo "${additional_ansible_args[*]}")
}
......
......@@ -5,9 +5,7 @@
when: flatpak_packages != ""
- name: Install Git (APT)
include_tasks: apt_templates/install_apt_package.yaml
vars:
app: git
include_tasks: apt_templates/packages/git.yaml
when: "'git' in apt_packages"
- name: Install Docker Community Edition (APT)
......
- name: Install Git (APT)
include_tasks: ../install_apt_package.yaml
vars:
app: git
- name: Install Git
include_tasks: ../apt_templates/packages/git.yaml
when: git_config_path
- name: Remove current Git Config
file:
path: "{{ git_user_config_path }}"
state: absent
- name: Link Git Config
when: git_config_path
command:
cmd: "ln -s {{ git_config_path | realpath }} {{ git_user_config_path }}"
- name: Print Git Config Warnings
include_tasks: ../general_templates/print_warning.yaml
vars:
warning: The Git Config was dynamically linked. Please don't remove the source.
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment