fix thing
This commit is contained in:
@@ -129,7 +129,7 @@ ${scwryptsmodule}.parse() {
|
|||||||
|
|
||||||
( -l | --list-themes ) parsed=1
|
( -l | --list-themes ) parsed=1
|
||||||
dotwryn.config colorscheme.themes
|
dotwryn.config colorscheme.themes
|
||||||
EARLY_ESCAPE_CODE=0
|
EARLY_ESCAPE_CODE=-1
|
||||||
;;
|
;;
|
||||||
|
|
||||||
( --only ) parsed=2
|
( --only ) parsed=2
|
||||||
|
|||||||
@@ -29,3 +29,78 @@ done
|
|||||||
unset DOTWRYN_REQUIRED_VAR
|
unset DOTWRYN_REQUIRED_VAR
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
||||||
|
dotwryn.config() {
|
||||||
|
local value values=()
|
||||||
|
local set_variable="${2}"
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
case "${1}" in
|
||||||
|
( colorscheme.path )
|
||||||
|
value="${DOTWRYN}/config/colorschemes"
|
||||||
|
mkdir -p -- "${value}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
( colorscheme.active.path )
|
||||||
|
value="$(dotwryn.config colorscheme.path)/active"
|
||||||
|
mkdir -p -- "${value}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
( colorscheme.active.source )
|
||||||
|
value="$(dotwryn.config colorscheme.active.path)/source.yaml"
|
||||||
|
;;
|
||||||
|
|
||||||
|
( colorscheme.active.default-material-references )
|
||||||
|
value="$(dotwryn.config colorscheme.active.path)/default.yaml"
|
||||||
|
;;
|
||||||
|
|
||||||
|
( colorscheme.themes )
|
||||||
|
local _theme
|
||||||
|
while IFS= read -r _theme
|
||||||
|
do
|
||||||
|
values+=("${_theme}")
|
||||||
|
done < <(
|
||||||
|
cd -- "$(dotwryn.config colorscheme.path)"
|
||||||
|
find . -mindepth 1 -maxdepth 1 -type f -name \*.yaml \
|
||||||
|
| sed 's|^./||; s|\.yaml$||' \
|
||||||
|
)
|
||||||
|
unset _theme
|
||||||
|
;;
|
||||||
|
|
||||||
|
( colorscheme.supported-apps )
|
||||||
|
use --group dotwryn desktop/colorscheme/apps \
|
||||||
|
|| echo.error 'cannot determine supported apps due to module load error' \
|
||||||
|
|| return 1
|
||||||
|
|
||||||
|
local _app
|
||||||
|
while IFS= read -r _app
|
||||||
|
do
|
||||||
|
values+=("${_app}")
|
||||||
|
done < <(typeset -f + | sed -n 's/^_GENERATE_THEME__//p')
|
||||||
|
unset _app
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
local value_type=none
|
||||||
|
[[ "${value}" ]] && value_type=scalar
|
||||||
|
[[ "${#values[@]}" -gt 0 ]] && value_type=array
|
||||||
|
|
||||||
|
case "${value_type}" in
|
||||||
|
( none ) return 1 ;;
|
||||||
|
|
||||||
|
( scalar )
|
||||||
|
case "${set_variable}" in
|
||||||
|
( '' ) echo "${value}" ;;
|
||||||
|
( * ) ${set_variable}="${value}" ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
( array )
|
||||||
|
case "${set_variable}" in
|
||||||
|
( '' ) printf '%s\n' "${values[@]}" ;;
|
||||||
|
( * ) eval "${set_variable}=(${(q)values[@]})" ;;
|
||||||
|
esac
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|||||||
@@ -43,5 +43,5 @@ MAIN() {
|
|||||||
|
|
||||||
MAIN.parse() { return 0; }
|
MAIN.parse() { return 0; }
|
||||||
MAIN.parse.validate() {
|
MAIN.parse.validate() {
|
||||||
[[ DRY_RUN =~ true ]] && FORWARD_ARGS+=(--dry-run)
|
[[ ${DRY_RUN} =~ true ]] && FORWARD_ARGS+=(--dry-run)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,12 +17,20 @@ ${scwryptsmodule}() {
|
|||||||
do
|
do
|
||||||
((SYMLINK_COUNT+=1))
|
((SYMLINK_COUNT+=1))
|
||||||
SOURCE_CONFIG="$(scwrypts.get-realpath "$(echo ${SYMLINK} | awk '{print $1;}')")"
|
SOURCE_CONFIG="$(scwrypts.get-realpath "$(echo ${SYMLINK} | awk '{print $1;}')")"
|
||||||
TARGET_CONFIG="$(scwrypts.get-realpath "$(echo ${SYMLINK} | awk '{print $2;}')")"
|
TARGET_CONFIG="$(echo ${SYMLINK} | awk '{print $2;}' | envsubst)"
|
||||||
|
|
||||||
|
[[ "${TARGET_CONFIG}" ]] \
|
||||||
|
&& TARGET_CONFIG="$(readlink --canonicalize-missing -- "$(dirname -- "${TARGET_CONFIG}")")/$(basename -- "${TARGET_CONFIG}")"
|
||||||
|
|
||||||
[ "${SOURCE_CONFIG}" ] && [ "${TARGET_CONFIG}" ] \
|
[ "${SOURCE_CONFIG}" ] && [ "${TARGET_CONFIG}" ] \
|
||||||
|| echo.error "bad symlink entry : ${SYMLINK}" \
|
|| echo.error "bad symlink entry : ${SYMLINK}" \
|
||||||
|| continue
|
|| continue
|
||||||
|
|
||||||
|
[ -L "${TARGET_CONFIG}" ] && [[ "$(readlink --canonicalize -- "${TARGET_CONFIG}")" == "${SOURCE_CONFIG}" ]] && {
|
||||||
|
echo.debug "already linked '$(echo "${TARGET_CONFIG}" | sed "s|${HOME}/||")'"
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
case "${TARGET_CONFIG}" in
|
case "${TARGET_CONFIG}" in
|
||||||
( /etc/* )
|
( /etc/* )
|
||||||
case ${SUDO} in
|
case ${SUDO} in
|
||||||
@@ -60,7 +68,7 @@ ${scwryptsmodule}() {
|
|||||||
&& [ ! -f "${SOURCE_CONFIG}" ] && [ ! -d "${SOURCE_CONFIG}" ] \
|
&& [ ! -f "${SOURCE_CONFIG}" ] && [ ! -d "${SOURCE_CONFIG}" ] \
|
||||||
&& [ ! -f "${TARGET_CONFIG}" ] && [ ! -d "${TARGET_CONFIG}" ] \
|
&& [ ! -f "${TARGET_CONFIG}" ] && [ ! -d "${TARGET_CONFIG}" ] \
|
||||||
&& echo.status "${SOURCE_CONFIG} is a new file" \
|
&& echo.status "${SOURCE_CONFIG} is a new file" \
|
||||||
&& mkdir -p -- "$(basename -- "${SOURCE_CONFIG}")" \
|
&& mkdir -p -- "$(dirname -- "${SOURCE_CONFIG}")" \
|
||||||
&& touch "${SOURCE_CONFIG}" \
|
&& touch "${SOURCE_CONFIG}" \
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -68,7 +76,7 @@ ${scwryptsmodule}() {
|
|||||||
&& [ ! -f "${SOURCE_CONFIG}" ] && [ ! -d "${SOURCE_CONFIG}" ] \
|
&& [ ! -f "${SOURCE_CONFIG}" ] && [ ! -d "${SOURCE_CONFIG}" ] \
|
||||||
&& [ -f "${TARGET_CONFIG}" ] \
|
&& [ -f "${TARGET_CONFIG}" ] \
|
||||||
&& echo.status "${SOURCE_CONFIG} is not tracked yet; copying from ${TARGET_CONFIG}" \
|
&& echo.status "${SOURCE_CONFIG} is not tracked yet; copying from ${TARGET_CONFIG}" \
|
||||||
&& mkdir -p -- "$(basename -- "${SOURCE_CONFIG}")" \
|
&& mkdir -p -- "$(dirname -- "${SOURCE_CONFIG}")" \
|
||||||
&& cp -- "${TARGET_CONFIG}" "${SOURCE_CONFIG}" \
|
&& cp -- "${TARGET_CONFIG}" "${SOURCE_CONFIG}" \
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user