Compare commits
No commits in common. "5fcb208d0b4dcd5c37ab694001871c971b22ac2f" and "4e645dfc0cc3817636c38d169d050f34dacd4a25" have entirely different histories.
5fcb208d0b
...
4e645dfc0c
3 changed files with 227 additions and 280 deletions
|
@ -217,12 +217,11 @@ Handle project workflows in a unified way:
|
|||
|
||||
* build instead of readme
|
||||
* generate graphs
|
||||
* list behavior differences
|
||||
* Continuous Integration platforms
|
||||
* Operating Systems
|
||||
* list CI behavior differences
|
||||
|
||||
#### Shell
|
||||
|
||||
* command to echo & run
|
||||
* comment
|
||||
* handle errors
|
||||
* packages
|
||||
|
@ -239,6 +238,8 @@ Handle project workflows in a unified way:
|
|||
* disable & enable https
|
||||
* locales
|
||||
* persist
|
||||
* restrict LC_* variables set for alpine
|
||||
* test LC_* variables
|
||||
* test
|
||||
|
||||
#### Shell → Python
|
||||
|
|
27
spcd.sh
27
spcd.sh
|
@ -1,27 +0,0 @@
|
|||
#! /usr/bin/env sh
|
||||
|
||||
gource \
|
||||
--auto-skip-seconds 1 \
|
||||
--date-format "%Y / %m / %d ⋅ %H : %M : %S" \
|
||||
--disable-progress \
|
||||
-f \
|
||||
--hide mouse,usernames \
|
||||
--highlight-dirs \
|
||||
--key \
|
||||
--output-framerate 60 \
|
||||
--seconds-per-day 2.0 \
|
||||
--output-ppm-stream - \
|
||||
| \
|
||||
ffmpeg \
|
||||
-codec:v ppm \
|
||||
-format image2pipe \
|
||||
-framerate 120 \
|
||||
-i - \
|
||||
-codec:v libx264 \
|
||||
-preset veryslow \
|
||||
-qp 23 \
|
||||
-movflags \
|
||||
+faststart \
|
||||
-pix_fmt yuv420p \
|
||||
-y \
|
||||
spcd.mp4
|
|
@ -1,20 +1,8 @@
|
|||
#! /usr/bin/env sh
|
||||
|
||||
# ╭───────────────╮
|
||||
# │ __ = internal │
|
||||
# ╰───────────────╯
|
||||
|
||||
# __SPCD_BANNER_TOP
|
||||
# __SPCD_BANNER_MIDDLE
|
||||
# __SPCD_BANNER_BOTTOM
|
||||
|
||||
# __SPCD_STEP_LEVEL
|
||||
# __SPCD_STEP_level_INDEX
|
||||
# __SPCD_STEP_level_LABEL
|
||||
|
||||
# ╭─────────────╮
|
||||
# │ _ = private │
|
||||
# ╰─────────────╯
|
||||
# ╭───╮
|
||||
# │ _ │
|
||||
# ╰───╯
|
||||
|
||||
_SPCD_BOX_DOWN_AND_HORIZONTAL="┬"
|
||||
_SPCD_BOX_DOWN_AND_LEFT="╮"
|
||||
|
@ -155,11 +143,11 @@ _SPCD_FRAME_TOP="${_SPCD_BOX_DOWN_AND_RIGHT}${_SPCD_BOX_LEFT}"
|
|||
_SPCD_FRAME_BOTTOM="${_SPCD_BOX_UP_AND_RIGHT}${_SPCD_BOX_LEFT}"
|
||||
|
||||
_spcd_frame_open() {
|
||||
echo "${_SPCD_FRAME_TOP}${*}"
|
||||
echo "${_SPCD_FRAME_TOP}${1}"
|
||||
}
|
||||
|
||||
_spcd_frame_shut() {
|
||||
echo "${_SPCD_FRAME_BOTTOM}${*}"
|
||||
echo "${_SPCD_FRAME_BOTTOM}${1}"
|
||||
}
|
||||
|
||||
# ╭───┬────╮
|
||||
|
@ -207,9 +195,9 @@ _spcd_txt_pick() {
|
|||
esac
|
||||
}
|
||||
|
||||
# ╭────────────╮
|
||||
# │ p = public │
|
||||
# ╰────────────╯
|
||||
# ╭───────────╮
|
||||
# │ functions │
|
||||
# ╰───────────╯
|
||||
|
||||
spcd_ca() {
|
||||
local grep="\(After\|Before\|Issuer\|Signature Algorithm\|Subject:\)"
|
||||
|
@ -259,17 +247,9 @@ nameserver ${value}
|
|||
fi
|
||||
}
|
||||
|
||||
spcd_run() {
|
||||
if [ -n "${1}" ]; then
|
||||
_spcd_frame_open "${@}"
|
||||
"${@}"
|
||||
_spcd_frame_shut "${@}"
|
||||
fi
|
||||
}
|
||||
|
||||
# ╭───┬───────╮
|
||||
# │ p │ error │
|
||||
# ╰───┴───────╯
|
||||
# ╭───────────┬───────╮
|
||||
# │ functions │ error │
|
||||
# ╰───────────┴───────╯
|
||||
|
||||
spcd_error_ci() {
|
||||
echo "× CI: ${*}"
|
||||
|
@ -282,9 +262,9 @@ spcd_error_os() {
|
|||
exit "${_SPCD_ERROR_OS}"
|
||||
}
|
||||
|
||||
# ╭───┬────╮
|
||||
# │ p │ os │
|
||||
# ╰───┴────╯
|
||||
# ╭───────────┬────╮
|
||||
# │ functions │ os │
|
||||
# ╰───────────┴────╯
|
||||
|
||||
spcd_os_grep() {
|
||||
local variable="${1}"
|
||||
|
@ -349,17 +329,17 @@ spcd_os_write() {
|
|||
fi
|
||||
}
|
||||
|
||||
# ╭───┬───────╮
|
||||
# │ p │ split │
|
||||
# ╰───┴───────╯
|
||||
# ╭───────────┬───────╮
|
||||
# │ functions │ split │
|
||||
# ╰───────────┴───────╯
|
||||
|
||||
spcd_split() {
|
||||
echo "${_SPCD_RULE_LEFT}${_SPCD_RULE_MIDDLE}${_SPCD_RULE_RIGHT}"
|
||||
}
|
||||
|
||||
# ╭───┬──────╮
|
||||
# │ p │ step │
|
||||
# ╰───┴──────╯
|
||||
# ╭───────────┬──────╮
|
||||
# │ functions │ step │
|
||||
# ╰───────────┴──────╯
|
||||
|
||||
spcd_step() {
|
||||
if [ -n "${1}" ]; then
|
||||
|
@ -383,9 +363,9 @@ spcd_step_out() {
|
|||
__SPCD_STEP_LEVEL=$((__SPCD_STEP_LEVEL - 1))
|
||||
}
|
||||
|
||||
# ╭───┬─────╮
|
||||
# │ p │ txt │
|
||||
# ╰───┴─────╯
|
||||
# ╭───────────┬─────╮
|
||||
# │ functions │ txt │
|
||||
# ╰───────────┴─────╯
|
||||
|
||||
SPCD_TXT_LOCALE_ENGLISH="en_US"
|
||||
SPCD_TXT_LOCALE_FRENCH="fr_FR"
|
||||
|
@ -397,13 +377,13 @@ spcd_txt_get() {
|
|||
esac
|
||||
}
|
||||
|
||||
# ╭──────────╮
|
||||
# │ s = step │
|
||||
# ╰──────────╯
|
||||
# ╭──────╮
|
||||
# │ step │
|
||||
# ╰──────╯
|
||||
|
||||
# ╭───┬───────────╮
|
||||
# │ s │ constants │
|
||||
# ╰───┴───────────╯
|
||||
# ╭──────┬───────────╮
|
||||
# │ step │ constants │
|
||||
# ╰──────┴───────────╯
|
||||
|
||||
SPCD_OS_ALMA="alma"
|
||||
SPCD_OS_ALPINE="alpine"
|
||||
|
@ -420,9 +400,9 @@ SPCD_PM_DNF="dnf"
|
|||
SPCD_PM_PACMAN="pacman"
|
||||
SPCD_PM_ZYPPER="zypper"
|
||||
|
||||
# ╭───┬─────────────╮
|
||||
# │ s │ environment │
|
||||
# ╰───┴─────────────╯
|
||||
# ╭──────┬─────────────╮
|
||||
# │ step │ environment │
|
||||
# ╰──────┴─────────────╯
|
||||
|
||||
spcd_step__environment_print() {
|
||||
spcd_ca "list"
|
||||
|
@ -790,9 +770,20 @@ spcd_step__environment_list_workspace() {
|
|||
spcd_os_ls "$(realpath .)"
|
||||
}
|
||||
|
||||
# ╭──────────────╮
|
||||
# │ f = function │
|
||||
# ╰──────────────╯
|
||||
# ╭──────┬───────────╮
|
||||
# │ step │ functions │
|
||||
# ╰──────┴───────────╯
|
||||
|
||||
spcd_clean_cache() {
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") apk cache purge ;;
|
||||
"${SPCD_PM_APT}") apt-get clean ;;
|
||||
"${SPCD_PM_DNF}") dnf clean all ;;
|
||||
"${SPCD_PM_PACMAN}") pacman --sync --clean --noconfirm ;;
|
||||
"${SPCD_PM_ZYPPER}") zypper clean ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
spcd_git_clone() {
|
||||
if [ -n "${1}" ]; then
|
||||
|
@ -815,6 +806,29 @@ spcd_git_url() {
|
|||
fi
|
||||
}
|
||||
|
||||
spcd_https_path() {
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") echo "/etc/apk/repositories.d/https" ;;
|
||||
"${SPCD_PM_APT}") echo "/etc/apt/apt.conf.d/https" ;;
|
||||
"${SPCD_PM_DNF}") echo "/etc/dnf/dnf.conf.d/https.conf" ;;
|
||||
"${SPCD_PM_PACMAN}") echo "/etc/pacman.d/https.conf" ;;
|
||||
"${SPCD_PM_ZYPPER}") ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
spcd_install_package() {
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") apk add "${1}" ;;
|
||||
"${SPCD_PM_APT}") apt-get install --assume-yes "${1}" ;;
|
||||
"${SPCD_PM_DNF}") dnf install --assumeyes "${1}" ;;
|
||||
"${SPCD_PM_PACMAN}") pacman --sync --noconfirm "${1}" ;;
|
||||
"${SPCD_PM_ZYPPER}") zypper --non-interactive install "${1}" ;;
|
||||
*) ;;
|
||||
esac
|
||||
spcd_clean_cache
|
||||
}
|
||||
|
||||
spcd_python_ln() {
|
||||
local command="${1}"
|
||||
if [ -n "${command}" ]; then
|
||||
|
@ -836,6 +850,17 @@ spcd_python_pip() {
|
|||
fi
|
||||
}
|
||||
|
||||
spcd_query_package() {
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") apk info "${1}" ;;
|
||||
"${SPCD_PM_APT}") dpkg-query --show "${1}" ;;
|
||||
"${SPCD_PM_DNF}") rpm --query "${1}" ;;
|
||||
"${SPCD_PM_PACMAN}") pacman --query "${1}" ;;
|
||||
"${SPCD_PM_ZYPPER}") rpm --query "${1}" ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
spcd_txt_locale() {
|
||||
local action="${1}"
|
||||
local chosen="${2}"
|
||||
|
@ -890,37 +915,6 @@ spcd_txt_locale() {
|
|||
spcd_split
|
||||
spcd_txt_locale "list"
|
||||
;;
|
||||
"show")
|
||||
local regex
|
||||
for name in "${@}"; do
|
||||
unset regex
|
||||
case "${name}" in
|
||||
# LC_CTYPE
|
||||
"LC_NUMERIC") regex="^\(decimal\|thousands\|grouping\)" ;;
|
||||
"LC_TIME") regex="^\(day\|mon\)" ;;
|
||||
# LC_COLLATE
|
||||
"LC_MONETARY")
|
||||
case "${SPCD_OS_ID}" in
|
||||
"${SPCD_OS_ALPINE}") ;;
|
||||
*) regex="^\(int_curr\|currency\|mon_\)" ;;
|
||||
esac
|
||||
;;
|
||||
"LC_MESSAGES") regex="^\(yes\|no\)" ;;
|
||||
"LC_PAPER") regex="^\(height\|width\)" ;;
|
||||
"LC_NAME") regex="^name_m" ;;
|
||||
"LC_ADDRESS") regex="^\(country\|lang\)_name" ;;
|
||||
"LC_TELEPHONE") regex="^int_" ;;
|
||||
"LC_MEASUREMENT") regex="^measurement=" ;;
|
||||
"LC_IDENTIFICATION") regex="^\(language\|territory\|title\)" ;;
|
||||
*) ;;
|
||||
esac
|
||||
spcd_split
|
||||
spcd_os_printenv "${name}"
|
||||
if [ -n "${regex}" ]; then
|
||||
locale --keyword-name "${name}" | grep "${regex}"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
@ -938,7 +932,7 @@ spcd_txt_locales() {
|
|||
spcd_split
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}")
|
||||
spcd_f_pm_install "musl-locales"
|
||||
spcd_install_package "musl-locales"
|
||||
export MUSL_LOCPATH="/usr/share/i18n/locales/musl"
|
||||
;;
|
||||
"${SPCD_PM_APT}")
|
||||
|
@ -949,17 +943,17 @@ ${name}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET}
|
|||
"
|
||||
done
|
||||
spcd_os_write "/etc/locale.gen" "${text}"
|
||||
spcd_f_pm_install "locales"
|
||||
spcd_install_package "locales"
|
||||
;;
|
||||
"${SPCD_PM_DNF}")
|
||||
local language
|
||||
for name in "${@}"; do
|
||||
language="$(echo "${name}" | cut -d _ -f 1)"
|
||||
spcd_f_pm_install "glibc-langpack-${language}"
|
||||
spcd_install_package "glibc-langpack-${language}"
|
||||
done
|
||||
;;
|
||||
"${SPCD_PM_PACMAN}") spcd_f_pm_install "glibc-locales" ;;
|
||||
"${SPCD_PM_ZYPPER}") spcd_f_pm_install "glibc-locale" ;;
|
||||
"${SPCD_PM_PACMAN}") spcd_install_package "glibc-locales" ;;
|
||||
"${SPCD_PM_ZYPPER}") spcd_install_package "glibc-locale" ;;
|
||||
*) ;;
|
||||
esac
|
||||
spcd_split
|
||||
|
@ -981,7 +975,7 @@ ${name}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET}
|
|||
done
|
||||
;;
|
||||
"list")
|
||||
if ! spcd_run locale --all-locales; then
|
||||
if ! locale --all-locales; then
|
||||
echo "No locales yet!"
|
||||
fi
|
||||
;;
|
||||
|
@ -989,133 +983,18 @@ ${name}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET}
|
|||
esac
|
||||
}
|
||||
|
||||
# ╭───┬────╮
|
||||
# │ f │ pm │
|
||||
# ╰───┴────╯
|
||||
|
||||
spcd_f_pm_clean() {
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") spcd_run apk cache purge ;;
|
||||
"${SPCD_PM_APT}") spcd_run apt-get clean ;;
|
||||
"${SPCD_PM_DNF}") spcd_run dnf clean all ;;
|
||||
"${SPCD_PM_PACMAN}") spcd_run pacman --sync --clean --noconfirm ;;
|
||||
"${SPCD_PM_ZYPPER}") spcd_run zypper clean ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
spcd_f_pm_install() {
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") spcd_run apk add "${1}" ;;
|
||||
"${SPCD_PM_APT}") spcd_run apt-get install --assume-yes "${1}" ;;
|
||||
"${SPCD_PM_DNF}") spcd_run dnf install --assumeyes "${1}" ;;
|
||||
"${SPCD_PM_PACMAN}") spcd_run pacman --sync --noconfirm "${1}" ;;
|
||||
"${SPCD_PM_ZYPPER}") spcd_run zypper --non-interactive install "${1}" ;;
|
||||
*) ;;
|
||||
esac
|
||||
spcd_f_pm_clean
|
||||
}
|
||||
|
||||
spcd_f_pm_query() {
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") apk info "${1}" ;;
|
||||
"${SPCD_PM_APT}") dpkg-query --show "${1}" ;;
|
||||
"${SPCD_PM_DNF}") rpm --query "${1}" ;;
|
||||
"${SPCD_PM_PACMAN}") pacman --query "${1}" ;;
|
||||
"${SPCD_PM_ZYPPER}") rpm --query "${1}" ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
spcd_f_pm_update() {
|
||||
spcd_step "Update"
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") spcd_run apk update ;;
|
||||
"${SPCD_PM_APT}") spcd_run apt-get update ;;
|
||||
"${SPCD_PM_DNF}") spcd_run dnf makecache ;;
|
||||
"${SPCD_PM_PACMAN}") spcd_run pacman --sync --refresh ;;
|
||||
"${SPCD_PM_ZYPPER}") spcd_run zypper refresh ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
spcd_f_pm_upgrade() {
|
||||
spcd_step "Upgrade"
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") spcd_run apk upgrade ;;
|
||||
"${SPCD_PM_APT}") spcd_run apt-get upgrade --assume-yes ;;
|
||||
"${SPCD_PM_DNF}") spcd_run dnf upgrade --assumeyes ;;
|
||||
"${SPCD_PM_PACMAN}") spcd_run pacman --sync --sysupgrade --noconfirm ;;
|
||||
"${SPCD_PM_ZYPPER}") spcd_run zypper --non-interactive update ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# ╭───┬────┬───────╮
|
||||
# │ f │ pm │ https │
|
||||
# ╰───┴────┴───────╯
|
||||
|
||||
spcd_f_pm_https_path() {
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") echo "/etc/apk/repositories.d/https" ;;
|
||||
"${SPCD_PM_APT}") echo "/etc/apt/apt.conf.d/https" ;;
|
||||
"${SPCD_PM_DNF}") echo "/etc/dnf/dnf.conf.d/https.conf" ;;
|
||||
"${SPCD_PM_PACMAN}") echo "/etc/pacman.d/https.conf" ;;
|
||||
"${SPCD_PM_ZYPPER}") ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
spcd_f_pm_https_trust() {
|
||||
spcd_step "Trust"
|
||||
local path text
|
||||
if [ -n "${SPCD_CA_1}" ] || [ "${SPCD_PM}" = "${SPCD_PM_APT}" ]; then
|
||||
path="$(spcd_f_pm_https_path)"
|
||||
if [ -n "${path}" ]; then
|
||||
spcd_os_mkdir "$(dirname "${path}")"
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") text="\
|
||||
--no-verify
|
||||
" ;;
|
||||
"${SPCD_PM_APT}") text="\
|
||||
Acquire::https::Verify-Peer False;
|
||||
" ;;
|
||||
"${SPCD_PM_DNF}") text="\
|
||||
sslverify=False
|
||||
" ;;
|
||||
"${SPCD_PM_PACMAN}") text="\
|
||||
SSLVerify = No
|
||||
" ;;
|
||||
"${SPCD_PM_ZYPPER}") ;;
|
||||
*) ;;
|
||||
esac
|
||||
[ -n "${text}" ] &&
|
||||
spcd_os_write "${path}" "${text}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
spcd_f_pm_https_verify() {
|
||||
spcd_step "Verify"
|
||||
local path
|
||||
path="$(spcd_f_pm_https_path)"
|
||||
if [ -n "${path}" ]; then
|
||||
spcd_os_rm "${path}"
|
||||
fi
|
||||
}
|
||||
|
||||
# ╭───┬─────╮
|
||||
# │ s │ dns │
|
||||
# ╰───┴─────╯
|
||||
# ╭──────┬─────╮
|
||||
# │ step │ dns │
|
||||
# ╰──────┴─────╯
|
||||
|
||||
spcd_step__dns() {
|
||||
spcd_step "DNS"
|
||||
spcd_dns "write"
|
||||
}
|
||||
|
||||
# ╭───┬──────────╮
|
||||
# │ s │ packages │
|
||||
# ╰───┴──────────╯
|
||||
# ╭──────┬──────────╮
|
||||
# │ step │ packages │
|
||||
# ╰──────┴──────────╯
|
||||
|
||||
spcd_step__packages_set_repositories() {
|
||||
spcd_step "Set repositories"
|
||||
|
@ -1288,20 +1167,60 @@ Dir::Etc::SourceParts \"\";
|
|||
esac
|
||||
case "${SPCD_OS_ID}" in
|
||||
"${SPCD_OS_ARCH}")
|
||||
spcd_run pacman-key --init
|
||||
pacman-key --init
|
||||
;;
|
||||
"${SPCD_OS_DEBIAN}" | "${SPCD_OS_UBUNTU}")
|
||||
export DEBIAN_FRONTEND="noninteractive"
|
||||
spcd_os_printenv DEBIAN_FRONTEND
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
spcd_step__packages_trust_https() {
|
||||
spcd_step "Trust HTTPS"
|
||||
local path text
|
||||
if [ -n "${SPCD_CA_1}" ] || [ "${SPCD_PM}" = "${SPCD_PM_APT}" ]; then
|
||||
path="$(spcd_https_path)"
|
||||
if [ -n "${path}" ]; then
|
||||
spcd_os_mkdir "$(dirname "${path}")"
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") text="\
|
||||
--no-verify
|
||||
" ;;
|
||||
"${SPCD_PM_APT}") text="\
|
||||
Acquire::https::Verify-Peer False;
|
||||
" ;;
|
||||
"${SPCD_PM_DNF}") text="\
|
||||
sslverify=False
|
||||
" ;;
|
||||
"${SPCD_PM_PACMAN}") text="\
|
||||
SSLVerify = No
|
||||
" ;;
|
||||
"${SPCD_PM_ZYPPER}") ;;
|
||||
*) ;;
|
||||
esac
|
||||
[ -n "${text}" ] &&
|
||||
spcd_os_write "${path}" "${text}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
spcd_step__packages_update_catalog() {
|
||||
spcd_step "Update catalog"
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") apk update ;;
|
||||
"${SPCD_PM_APT}") apt-get update ;;
|
||||
"${SPCD_PM_DNF}") dnf makecache ;;
|
||||
"${SPCD_PM_PACMAN}") pacman --sync --refresh ;;
|
||||
"${SPCD_PM_ZYPPER}") zypper refresh ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
spcd_step__packages_install_tools() {
|
||||
spcd_step "Install tools"
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APT}") spcd_f_pm_install "apt-utils" ;;
|
||||
"${SPCD_PM_APT}") spcd_install_package "apt-utils" ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
@ -1312,18 +1231,51 @@ spcd_step__packages_install_locales() {
|
|||
spcd_txt_locales "install"
|
||||
spcd_step "Set"
|
||||
spcd_txt_locale "set" "${SPCD_TXT_LOCALE}"
|
||||
spcd_step "Show"
|
||||
spcd_txt_locale "show"
|
||||
spcd_step "Test"
|
||||
# CTYPE
|
||||
# NUMERIC
|
||||
spcd_split
|
||||
locale --keyword-name LC_NUMERIC | grep "^\(decimal\|thousands\|grouping\)"
|
||||
# TIME
|
||||
spcd_split
|
||||
locale --keyword-name LC_TIME | grep "^\(day\|mon\)"
|
||||
# COLLATE
|
||||
# MONETARY
|
||||
spcd_split
|
||||
locale --keyword-name LC_MONETARY | grep "^\(int_curr\|currency\|mon_\)"
|
||||
# MESSAGES
|
||||
spcd_split
|
||||
locale --keyword-name LC_MESSAGES | grep "^\(yes\|no\)"
|
||||
#
|
||||
# PAPER
|
||||
spcd_split
|
||||
locale --keyword-name LC_PAPER | grep "^\(height\|width\)"
|
||||
# NAME
|
||||
spcd_split
|
||||
locale --keyword-name LC_NAME | grep "^name_m"
|
||||
# ADDRESS
|
||||
spcd_split
|
||||
locale --keyword-name LC_ADDRESS | grep "^\(country\|lang\)_name"
|
||||
# TELEPHONE
|
||||
spcd_split
|
||||
locale --keyword-name LC_TELEPHONE | grep "^int_"
|
||||
# MEASUREMENT
|
||||
spcd_split
|
||||
locale --keyword-name LC_MEASUREMENT | grep "^measurement="
|
||||
# IDENTIFICATION
|
||||
spcd_split
|
||||
locale --keyword-name LC_IDENTIFICATION |
|
||||
grep "^\(language\|territory\|title\)"
|
||||
spcd_step_out
|
||||
}
|
||||
|
||||
# ╭───┬────╮
|
||||
# │ s │ ca │
|
||||
# ╰───┴────╯
|
||||
# ╭──────┬────╮
|
||||
# │ step │ ca │
|
||||
# ╰──────┴────╯
|
||||
|
||||
spcd_step__ca_install_package() {
|
||||
spcd_step "Install package"
|
||||
spcd_f_pm_install "ca-certificates"
|
||||
spcd_install_package "ca-certificates"
|
||||
}
|
||||
|
||||
spcd_step__ca_write_certificates() {
|
||||
|
@ -1355,39 +1307,60 @@ spcd_step__ca_update_certificates() {
|
|||
"${SPCD_OS_ALMA}" | \
|
||||
"${SPCD_OS_FEDORA}" | \
|
||||
"${SPCD_OS_ROCKY}")
|
||||
spcd_run update-ca-trust
|
||||
update-ca-trust
|
||||
;;
|
||||
"${SPCD_OS_ALPINE}" | \
|
||||
"${SPCD_OS_DEBIAN}" | \
|
||||
"${SPCD_OS_OPENSUSE}" | \
|
||||
"${SPCD_OS_UBUNTU}")
|
||||
spcd_run update-ca-certificates
|
||||
update-ca-certificates
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# ╭───┬──────────╮
|
||||
# │ s │ packages │
|
||||
# ╰───┴──────────╯
|
||||
# ╭──────┬──────────╮
|
||||
# │ step │ packages │
|
||||
# ╰──────┴──────────╯
|
||||
|
||||
spcd_step__packages_verify_https() {
|
||||
spcd_step "Verify HTTPS"
|
||||
local path
|
||||
path="$(spcd_https_path)"
|
||||
if [ -n "${path}" ]; then
|
||||
spcd_os_rm "${path}"
|
||||
fi
|
||||
}
|
||||
|
||||
spcd_step__packages_upgrade_system() {
|
||||
spcd_step "Upgrade system"
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}") apk upgrade ;;
|
||||
"${SPCD_PM_APT}") apt-get upgrade --assume-yes ;;
|
||||
"${SPCD_PM_DNF}") dnf upgrade --assumeyes ;;
|
||||
"${SPCD_PM_PACMAN}") pacman --sync --sysupgrade --noconfirm ;;
|
||||
"${SPCD_PM_ZYPPER}") zypper --non-interactive update ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
spcd_step__packages_install_dos2unix() {
|
||||
spcd_step "Install dos2unix"
|
||||
spcd_f_pm_install "dos2unix"
|
||||
spcd_install_package "dos2unix"
|
||||
}
|
||||
|
||||
spcd_step__packages_install_git() {
|
||||
spcd_step "Install Git"
|
||||
spcd_f_pm_install "git"
|
||||
spcd_install_package "git"
|
||||
}
|
||||
|
||||
# ╭───┬────────╮
|
||||
# │ s │ python │
|
||||
# ╰───┴────────╯
|
||||
# ╭──────┬────────╮
|
||||
# │ step │ python │
|
||||
# ╰──────┴────────╯
|
||||
|
||||
spcd_step__python_install() {
|
||||
spcd_step "Install package"
|
||||
spcd_f_pm_install "${SPCD_PYTHON_PACKAGE}"
|
||||
spcd_install_package "${SPCD_PYTHON_PACKAGE}"
|
||||
spcd_step "Link alias to command"
|
||||
spcd_python_ln "${SPCD_PYTHON_COMMAND}"
|
||||
# venv
|
||||
|
@ -1395,7 +1368,7 @@ spcd_step__python_install() {
|
|||
spcd_step "Install package"
|
||||
case "${SPCD_OS_ID}" in
|
||||
"${SPCD_OS_DEBIAN}" | "${SPCD_OS_UBUNTU}")
|
||||
spcd_f_pm_install "python3-venv"
|
||||
spcd_install_package "python3-venv"
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
@ -1445,7 +1418,7 @@ spcd_step__install_packages() {
|
|||
spcd_step "EPEL"
|
||||
case "${SPCD_OS_ID}" in
|
||||
"${SPCD_OS_ALMA}" | "${SPCD_OS_ROCKY}")
|
||||
spcd_f_pm_install "epel-release"
|
||||
spcd_install_package "epel-release"
|
||||
case "${SPCD_OS_VERSION}" in
|
||||
"9")
|
||||
set -- \
|
||||
|
@ -1477,32 +1450,32 @@ spcd_step__install_packages() {
|
|||
esac
|
||||
# graphviz
|
||||
spcd_step "GraphViz"
|
||||
spcd_f_pm_install "graphviz"
|
||||
spcd_install_package "graphviz"
|
||||
# openssh
|
||||
spcd_step "OpenSSH"
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_APK}" | "${SPCD_PM_APT}")
|
||||
spcd_f_pm_install "openssh-client"
|
||||
spcd_install_package "openssh-client"
|
||||
;;
|
||||
"${SPCD_PM_DNF}" | "${SPCD_PM_ZYPPER}")
|
||||
spcd_f_pm_install "openssh-clients"
|
||||
spcd_install_package "openssh-clients"
|
||||
;;
|
||||
"${SPCD_PM_PACMAN}") spcd_f_pm_install "openssh" ;;
|
||||
"${SPCD_PM_PACMAN}") spcd_install_package "openssh" ;;
|
||||
*) ;;
|
||||
esac
|
||||
# plantuml
|
||||
spcd_step "PlantUML"
|
||||
spcd_f_pm_install "plantuml"
|
||||
spcd_install_package "plantuml"
|
||||
# rsync
|
||||
spcd_step "Rsync"
|
||||
spcd_f_pm_install "rsync"
|
||||
spcd_install_package "rsync"
|
||||
# shell check
|
||||
spcd_step "ShellCheck"
|
||||
case "${SPCD_PM}" in
|
||||
"${SPCD_PM_DNF}" | "${SPCD_PM_ZYPPER}")
|
||||
spcd_f_pm_install "ShellCheck"
|
||||
spcd_install_package "ShellCheck"
|
||||
;;
|
||||
*) spcd_f_pm_install "shellcheck" ;;
|
||||
*) spcd_install_package "shellcheck" ;;
|
||||
esac
|
||||
# shfmt
|
||||
spcd_step "ShellFormat"
|
||||
|
@ -1511,10 +1484,10 @@ spcd_step__install_packages() {
|
|||
"${SPCD_OS_DEBIAN}")
|
||||
case "${SPCD_OS_VERSION}" in
|
||||
"bullseye") ;;
|
||||
*) spcd_f_pm_install "shfmt" ;;
|
||||
*) spcd_install_package "shfmt" ;;
|
||||
esac
|
||||
;;
|
||||
*) spcd_f_pm_install "shfmt" ;;
|
||||
*) spcd_install_package "shfmt" ;;
|
||||
esac
|
||||
spcd_step_out
|
||||
}
|
||||
|
@ -1575,8 +1548,8 @@ spcd_main() {
|
|||
spcd_step_in "Packages"
|
||||
spcd_step__packages_set_repositories
|
||||
spcd_step__packages_set_configuration
|
||||
spcd_f_pm_https_trust
|
||||
spcd_f_pm_update
|
||||
spcd_step__packages_trust_https
|
||||
spcd_step__packages_update_catalog
|
||||
spcd_step__packages_install_tools
|
||||
spcd_step__packages_install_locales
|
||||
spcd_step_out
|
||||
|
@ -1588,9 +1561,9 @@ spcd_main() {
|
|||
spcd_step_out
|
||||
# packages
|
||||
spcd_step_in "Packages"
|
||||
spcd_f_pm_https_verify
|
||||
spcd_f_pm_update
|
||||
spcd_f_pm_upgrade
|
||||
spcd_step__packages_verify_https
|
||||
spcd_step__packages_update_catalog
|
||||
spcd_step__packages_upgrade_system
|
||||
spcd_step__packages_install_dos2unix
|
||||
spcd_step__packages_install_git
|
||||
spcd_step_out
|
||||
|
|
Loading…
Reference in a new issue