82 lines
2.4 KiB
Bash
82 lines
2.4 KiB
Bash
#####################################################################
|
|
|
|
setup.filesystem.git() {
|
|
local sources_dir="${XDG_DATA_HOME:-${HOME}/.local/share}/project-source-code"
|
|
|
|
SOURCE_DIR="${DOTWRYN_SETUP__DOTWRYN}" \
|
|
TARGET_DIR="${sources_dir}/yage/dotwryn" \
|
|
REMOTE_UPSTREAMS=(
|
|
'git@github.com:wrynegade/dotwryn.git'
|
|
'git@yage.io:wrynegade/dotwryn.git'
|
|
'git@bitbucket.org:wrynegade/dotwryn.git'
|
|
) setup.filesystem.git._.remotes '.wryn'
|
|
|
|
SOURCE_DIR="${DOTWRYN_SETUP__DOTWRYN}/zsh/plugins/code-activator" \
|
|
TARGET_DIR="${sources_dir}/zsh/code-activator" \
|
|
REMOTE_UPSTREAMS=(
|
|
'git@yage.io:zsh/code-activator.git'
|
|
'git@github.com:wrynegade/code-activator.git'
|
|
) setup.filesystem.git._.remotes 'zsh-plugins/code-activator'
|
|
|
|
SOURCE_DIR="${DOTWRYN_SETUP__DOTWRYN}/zsh/plugins/scwrypts" \
|
|
TARGET_DIR="${sources_dir}/zsh/scwrypts" \
|
|
REMOTE_UPSTREAMS=(
|
|
'git@yage.io:zsh/scwrypts'
|
|
'git@github.com:wrynegade/scwrypts'
|
|
) setup.filesystem.git._.remotes 'zsh-plugins/scwrypts'
|
|
|
|
return 0
|
|
}
|
|
|
|
setup.filesystem.git._.remotes() {
|
|
: \
|
|
&& [[ "${SOURCE_DIR}" ]] \
|
|
&& [[ "${TARGET_DIR}" ]] \
|
|
&& [[ "${#REMOTE_UPSTREAMS[@]}" -gt 0 ]] \
|
|
|| return 1 \
|
|
;
|
|
|
|
[[ "${1}" ]] && echo.status "updating remotes for '${1}'"
|
|
|
|
git -C "${SOURCE_DIR}" remote rm upstream 2>/dev/null
|
|
git -C "${SOURCE_DIR}" remote add upstream "${REMOTE_UPSTREAMS[1]}"
|
|
|
|
local remote_upstream
|
|
for remote_upstream in "${REMOTE_UPSTREAMS[@]}"
|
|
do
|
|
git -C "${SOURCE_DIR}" remote set-url --add --push upstream "${remote_upstream}"
|
|
|
|
case "${remote_upstream}" in
|
|
( git@github.com:* )
|
|
git -C "${SOURCE_DIR}" remote rm github 2>/dev/null
|
|
git -C "${SOURCE_DIR}" remote add github "${remote_upstream}"
|
|
;;
|
|
( git@yage.io:* )
|
|
git -C "${SOURCE_DIR}" remote rm yage 2>/dev/null
|
|
git -C "${SOURCE_DIR}" remote add yage "${remote_upstream}"
|
|
;;
|
|
( git@bitbucket.org:* )
|
|
git -C "${SOURCE_DIR}" remote rm bitbucket 2>/dev/null
|
|
git -C "${SOURCE_DIR}" remote add bitbucket "${remote_upstream}"
|
|
;;
|
|
esac
|
|
done
|
|
unset remote_upstream
|
|
|
|
SOURCE_DIR="${SOURCE_DIR}" TARGET_DIR="${TARGET_DIR}" setup.filesystem.git._.link-to-projects \
|
|
|| echo.warning "failed to link '${TARGET_DIR}'"
|
|
|
|
return 0
|
|
}
|
|
|
|
setup.filesystem.git._.link-to-projects() {
|
|
[[ "${TARGET_DIR}" ]] && [[ "${SOURCE_DIR}" ]] \
|
|
|| return 1
|
|
|
|
{
|
|
mkdir -p -- "${TARGET_DIR}"
|
|
rm -- "${TARGET_DIR}/code"
|
|
ln -s -- "${SOURCE_DIR}" "${TARGET_DIR}/code"
|
|
} &>/dev/null
|
|
}
|