From df30c85bc84362a3b5cb4bc968f24c1b4b4b2abd Mon Sep 17 00:00:00 2001 From: accel Date: Mon, 20 Dec 2021 17:08:22 +0300 Subject: [PATCH] wip --- global.funcs.zsh | 132 ++++++++++++++++++++++++++++------------------- zbootstrap.zsh | 54 +++++++++---------- 2 files changed, 103 insertions(+), 83 deletions(-) diff --git a/global.funcs.zsh b/global.funcs.zsh index 6af922e..e59df20 100644 --- a/global.funcs.zsh +++ b/global.funcs.zsh @@ -1,7 +1,75 @@ +typeset -g globaldots_path="${HOME}/.global" +if [[ -a $(realpath -m $(dirname $0)/../../.globaldir ) ]] +then + typeset -g globaldots_path=$(realpath -m $(dirname $0)/../../) +fi + +if [[ -n ${GLOBALDOTS_PATH} ]] +then + typeset -g globaldots_path=${GLOBALDOTS_PATH} +fi + if [[ -z $globaldots_path ]]; then echo 'functions require $globaldots_path to be set!' fi +#### BASIC ZSHLIBS TOOLS + +function zlibs_update() +{ + zbootstrap_message zlibs_update "preparing self update …" + if [[ -n "$zshlibs_install" ]] + then + zbootstrap_message zlibs_update "cd into '$zshlibs_install' …" + pushd $zshlibs_install + zbootstrap_message zlibs_update "git pull …" + git pull + zbootstrap_message zlibs_update "update done" + popd + else + echo "\$zshlibs_install not set!" + return 1 + zlibs_install + fi +} + +function ztools_ensure() +{ + target=${2} + typ=${1} + if ! test -e ${target} + then + zbootstrap_message ztools_ensure "creating '${target}' ($typ) …" + case $typ in + -d) + mkdir -p ${target} \ + || zbootstrap_message ztools_ensure "unable to create directory '${target}'" \ + && return 2 + ;; + -f) + touch ${target} \ + || zbootstrap_message ztools_ensure "unable to create file '${target}'" \ + && return 2 + esac + zbootstrap_message ztools_ensure "target '${target}' created" + elif test ${typ} ${target} + then + zbootstrap_message ztools_ensure "target '${target}' ($typ) present" + return 0 + else + zbootstrap_message ztools_ensure "target '${target}' already exists and it is not a directory" + return 1 + fi +} + +##### CONFIGURATION LIBRARIES + + +function zlibs_path_expand() +{ + +} + function global_path_expand() { local bin_base=${globaldots_path}/bin @@ -22,26 +90,16 @@ function global_fpath_expand() done; } -function ztools_update() -{ - # - if [[ -z "$ztools_install_directory" ]] - then - echo '$ztools_install_directory not set!' - return 1 - fi - -} function zconfig_checkload() { - typeset -a -g globaldots_configs_loaded - if [[ ! ${globaldots_configs_loaded[(r)${1}]} ]] + typeset -a -g zconfig_loaded + if [[ ! ${zconfig_loaded[(r)${1}]} ]] then zbootstrap_message zbootstrap "sourcing config '$1'" source -- $1 2>&1 >> "${HOME}/.log/z_zbootstrap.log" - globaldots_configs_loaded+=("$1") + zconfig_loaded+=("$1") zbootstrap_message zbootstrap "end sourcing config '$1'" else zbootstrap_message zbootstrap "config '$1' already loaded" @@ -78,52 +136,21 @@ function zbootstrap_message() echo "$(date -Ins) ${@}" >> "${HOME}/.log/z_$facility.log" } -function ztools_ensure() -{ - target=${2} - typ=${1} - if ! test -e ${target} - then - zbootstrap_message ztools_ensure "creating '${target}' ($typ) …" - case $typ in - -d) - mkdir -p ${target} \ - || zbootstrap_message ztools_ensure "unable to create directory '${target}'" \ - && return 2 - ;; - -f) - touch ${target} \ - || zbootstrap_message ztools_ensure "unable to create file '${target}'" \ - && return 2 - esac - zbootstrap_message ztools_ensure "target '${target}' created" - elif test ${typ} ${target} - then - zbootstrap_message ztools_ensure "target '${target}' ($typ) present" - return 0 - else - zbootstrap_message ztools_ensure "target '${target}' already exists and it is not a directory" - return 1 - fi -} - -function zbootstrap_noninteractive() +function zshlibs_boot() { # ensure log directory zbootstrap_message zbootstrap "ensure directory '${HOME}/.log/'" ztools_ensure -d "${HOME}/.log/" - # if ! [[ -d "${HOME}/.log/" ]] - # then - # mkdir "${HOME}/.log/" - # else if [[ -e "${HOME}/.log/" ]] - # then - # zbootstrap_message zbootstrap "zbootstrap logdir '${HOME}/.log/' exist and is not a directory" - # fi - # fi # loading configs - typeset -a -g globaldots_configs_loaded + typeset -a -g zconfig_loaded typeset -a -g path_extra typeset -a -g config_extra + typeset -g zconfig_shared_path="${zshlibs_install}/config" + typeset -g zconfig_local_path="${HOME}/.config/zsh" +} + +function zbootstrap_noninteractive() +{ zbootstrap_message zbootstrap 'load global config' zconfig_checkload ${globaldots_path}/config/zsh/global.config.zsh zbootstrap_message zbootstrap 'load local configs' @@ -142,6 +169,7 @@ function zbootstrap_noninteractive() function zbootstrap () { + zshlibs_boot zbootstrap_noninteractive zconfig_checkload ${globaldots_path}/config/zsh/global.style.zsh zbootstrap_message zbootstrap "done loading interactive config" diff --git a/zbootstrap.zsh b/zbootstrap.zsh index 750fb60..4cbb1c4 100644 --- a/zbootstrap.zsh +++ b/zbootstrap.zsh @@ -1,20 +1,16 @@ -if [[ -z ${zshlibs_install} ]] -then - typeset -g zshlibs_install="${HOME}/.local/zshlibs" -fi -if ! [[ -d ${zshlibs_install} ]] -then - cat > .zshlibs_repo.key < .zshlibs_repo.key < .zshlibs_repo.key.pub < .zshlibs_repo.key.pub <