mirror of
https://github.com/jimeh/dotfiles.git
synced 2026-02-19 13:46:41 +00:00
Refactor bootstrap-homebrew and bootstrap-caskroom scripts
This commit is contained in:
@@ -1,39 +1,16 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
install_packages() {
|
# Settings
|
||||||
local group="$1"
|
PACKAGE_LIST_CMD="brew cask list"
|
||||||
shift 1
|
PACKAGE_INSTALL_CMD="brew cask install"
|
||||||
|
|
||||||
[ -z "$INSTALLED_PACKAGES" ] && INSTALLED_PACKAGES=( $(brew cask list) )
|
|
||||||
|
|
||||||
echo "==> ${group} packages"
|
|
||||||
for pkg in "$@"; do
|
|
||||||
local base=$(echo $pkg | awk '{print $1}')
|
|
||||||
[[ "$base" == *\/* ]] && base=$(basename "$base")
|
|
||||||
|
|
||||||
local found=""
|
|
||||||
|
|
||||||
for i in ${INSTALLED_PACKAGES[@]}; do
|
|
||||||
[[ "$base" == "$i" ]] && found=1
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -z "$found" ]; then
|
|
||||||
echo " -> Missing: ${base}"
|
|
||||||
brew cask install ${pkg[@]}
|
|
||||||
else
|
|
||||||
echo " -> Installed: ${base}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Define packages
|
# Package list
|
||||||
#
|
#
|
||||||
|
|
||||||
local core_pkgs=(
|
CORE_PKGS=(
|
||||||
1password
|
1password
|
||||||
aerial
|
aerial
|
||||||
alfred
|
alfred
|
||||||
@@ -65,7 +42,7 @@ main() {
|
|||||||
vlc
|
vlc
|
||||||
)
|
)
|
||||||
|
|
||||||
local work_pkgs=(
|
WORK_PKGS=(
|
||||||
atom
|
atom
|
||||||
bbedit
|
bbedit
|
||||||
chromedriver
|
chromedriver
|
||||||
@@ -96,7 +73,7 @@ main() {
|
|||||||
visual-studio-code
|
visual-studio-code
|
||||||
)
|
)
|
||||||
|
|
||||||
local personal_pkgs=(
|
PERSONAL_PKGS=(
|
||||||
4k-video-downloader
|
4k-video-downloader
|
||||||
adium-beta
|
adium-beta
|
||||||
android-file-transfer
|
android-file-transfer
|
||||||
@@ -156,19 +133,79 @@ main() {
|
|||||||
yakyak
|
yakyak
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Install packages
|
# Main
|
||||||
#
|
#
|
||||||
|
|
||||||
install_packages "core" "${core_pkgs[@]}"
|
main() {
|
||||||
|
cache_installed_packages
|
||||||
|
|
||||||
|
install_packages "core" "${CORE_PKGS[@]}"
|
||||||
|
|
||||||
if [[ " $* " == *" work "* ]]; then
|
if [[ " $* " == *" work "* ]]; then
|
||||||
install_packages "work" "${work_pkgs[@]}"
|
install_packages "work" "${WORK_PKGS[@]}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ " $* " == *" personal "* ]]; then
|
if [[ " $* " == *" personal "* ]]; then
|
||||||
install_packages "personal" "${personal_pkgs[@]}"
|
install_packages "personal" "${PERSONAL_PKGS[@]}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# The rest...
|
||||||
|
#
|
||||||
|
|
||||||
|
INSTALLED_PACKAGES=()
|
||||||
|
|
||||||
|
package_name() {
|
||||||
|
local install_args="$1"
|
||||||
|
local pkg
|
||||||
|
|
||||||
|
pkg="$(echo "$install_args" | awk '{ print $1 }')"
|
||||||
|
[[ "$pkg" == *'/'* ]] && pkg="$(basename "$pkg")"
|
||||||
|
|
||||||
|
echo "$pkg"
|
||||||
|
}
|
||||||
|
|
||||||
|
cache_installed_packages() {
|
||||||
|
if [ ${#INSTALLED_PACKAGES[@]} -eq 0 ]; then
|
||||||
|
echo "--> Getting list of installed packages"
|
||||||
|
mapfile -t INSTALLED_PACKAGES < <($PACKAGE_LIST_CMD)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
is_package_installed() {
|
||||||
|
local pkg="$1"
|
||||||
|
cache_installed_packages
|
||||||
|
|
||||||
|
for i in "${INSTALLED_PACKAGES[@]}"; do
|
||||||
|
[[ "$pkg" == "$i" ]] && return 0
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
install_package() {
|
||||||
|
$PACKAGE_INSTALL_CMD "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
install_packages() {
|
||||||
|
local group="$1"
|
||||||
|
local pkg
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
echo "--> Group: ${group}"
|
||||||
|
for install_args in "$@"; do
|
||||||
|
pkg="$(package_name "$install_args")"
|
||||||
|
|
||||||
|
if is_package_installed "$pkg"; then
|
||||||
|
echo " Exists: ${pkg}"
|
||||||
|
else
|
||||||
|
echo " Installing: ${pkg}"
|
||||||
|
install_package "$install_args"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|||||||
@@ -1,37 +1,16 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
install_packages() {
|
# Settings
|
||||||
local group="$1"
|
PACKAGE_LIST_CMD="brew list"
|
||||||
shift 1
|
PACKAGE_INSTALL_CMD="brew install"
|
||||||
|
|
||||||
[ -z "$INSTALLED_PACKAGES" ] && INSTALLED_PACKAGES=( $(brew list) )
|
|
||||||
|
|
||||||
echo "==> ${group} packages"
|
|
||||||
for pkg in "$@"; do
|
|
||||||
local base=$(echo $pkg | awk '{print $1}')
|
|
||||||
local found=""
|
|
||||||
|
|
||||||
for i in ${INSTALLED_PACKAGES[@]}; do
|
|
||||||
[[ "$base" == "$i" ]] && found=1
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -z "$found" ]; then
|
|
||||||
echo "--> Missing: ${base}"
|
|
||||||
brew install ${pkg[@]}
|
|
||||||
else
|
|
||||||
echo "--> Installed: ${base}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Define packages
|
# Package list
|
||||||
#
|
#
|
||||||
|
|
||||||
local core_pkgs=(
|
CORE_PKGS=(
|
||||||
"aspell --with-lang-en --with-lang-el --with-lang-sv"
|
"aspell --with-lang-en --with-lang-el --with-lang-sv"
|
||||||
"global --with-ctags --with-pygments"
|
"global --with-ctags --with-pygments"
|
||||||
ack
|
ack
|
||||||
@@ -77,19 +56,79 @@ main() {
|
|||||||
zsh
|
zsh
|
||||||
)
|
)
|
||||||
|
|
||||||
local personal_pkgs=(
|
PERSONAL_PKGS=(
|
||||||
"mkvtoolnix --with-qt"
|
"mkvtoolnix --with-qt"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Install packages
|
# Main
|
||||||
#
|
#
|
||||||
|
|
||||||
install_packages "core" "${core_pkgs[@]}"
|
main() {
|
||||||
|
cache_installed_packages
|
||||||
|
|
||||||
|
install_packages "core" "${CORE_PKGS[@]}"
|
||||||
|
|
||||||
if [[ " $* " == *" personal "* ]]; then
|
if [[ " $* " == *" personal "* ]]; then
|
||||||
install_packages "personal" "${personal_pkgs[@]}"
|
install_packages "personal" "${PERSONAL_PKGS[@]}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# The rest...
|
||||||
|
#
|
||||||
|
|
||||||
|
INSTALLED_PACKAGES=()
|
||||||
|
|
||||||
|
package_name() {
|
||||||
|
local install_args="$1"
|
||||||
|
local pkg
|
||||||
|
|
||||||
|
pkg="$(echo "$install_args" | awk '{ print $1 }')"
|
||||||
|
[[ "$pkg" == *'/'* ]] && pkg="$(basename "$pkg")"
|
||||||
|
|
||||||
|
echo "$pkg"
|
||||||
|
}
|
||||||
|
|
||||||
|
cache_installed_packages() {
|
||||||
|
if [ ${#INSTALLED_PACKAGES[@]} -eq 0 ]; then
|
||||||
|
echo "--> Getting list of installed packages"
|
||||||
|
mapfile -t INSTALLED_PACKAGES < <($PACKAGE_LIST_CMD)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
is_package_installed() {
|
||||||
|
local pkg="$1"
|
||||||
|
cache_installed_packages
|
||||||
|
|
||||||
|
for i in "${INSTALLED_PACKAGES[@]}"; do
|
||||||
|
[[ "$pkg" == "$i" ]] && return 0
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
install_package() {
|
||||||
|
$PACKAGE_INSTALL_CMD "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
install_packages() {
|
||||||
|
local group="$1"
|
||||||
|
local pkg
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
echo "--> Group: ${group}"
|
||||||
|
for install_args in "$@"; do
|
||||||
|
pkg="$(package_name "$install_args")"
|
||||||
|
|
||||||
|
if is_package_installed "$pkg"; then
|
||||||
|
echo " Exists: ${pkg}"
|
||||||
|
else
|
||||||
|
echo " Installing: ${pkg}"
|
||||||
|
install_package "$install_args"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user