Improve autoinstall
This commit is contained in:
parent
b5764c0376
commit
57cd02890a
8 changed files with 92 additions and 187 deletions
62
.bin/autoinstall
Executable file
62
.bin/autoinstall
Executable file
|
@ -0,0 +1,62 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
_autoinstall_all () {
|
||||
plug_path="$HOME/.config/vim/autoload/plug.vim"
|
||||
if [ ! -f "$plug_path" ]
|
||||
then
|
||||
_autoinstall_file "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" "$plug_path"
|
||||
[ -x "$(command -v vim)" ] && yes | vim +'PlugInstall --sync' +qa --not-a-term
|
||||
fi
|
||||
|
||||
nvim_dir="$HOME/.config/nvim"
|
||||
if [ ! -d "$nvim_dir" ]
|
||||
then
|
||||
_autoinstall_git "https://github.com/AstroNvim/AstroNvim" "$nvim_dir"
|
||||
[ -x "$(command -v nvim)" ] && nvim --headless -c 'autocmd User PackerComplete quitall' -c 'PackerSync'
|
||||
fi
|
||||
|
||||
if [ ! -x "$(command -v starship)" ]
|
||||
then
|
||||
mkdir -p "$HOME/.local/bin"
|
||||
curl -sS "https://starship.rs/install.sh" | BIN_DIR="$HOME/.local/bin" FORCE=1 sh
|
||||
fi
|
||||
|
||||
if [ -x "$(command -v envsubst)" ]
|
||||
then
|
||||
wakatime_cfg="$WAKATIME_HOME/.wakatime.cfg"
|
||||
wakatime_tpl="$wakatime_cfg.tpl"
|
||||
envsubst < "$wakatime_tpl" > "$wakatime_cfg"
|
||||
fi
|
||||
|
||||
_autoinstall_file \
|
||||
"https://raw.githubusercontent.com/qw3rtman/git-fire/master/git-fire" \
|
||||
"$HOME/.local/bin/git-fire"
|
||||
|
||||
}
|
||||
|
||||
_autoinstall_git () {
|
||||
if [ ! -d "$2" ]
|
||||
then
|
||||
echo "Installing repo $1 to $2"
|
||||
mkdir -p "$2"
|
||||
git clone "$1" "$2" >/dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
_autoinstall_file () {
|
||||
if [ ! -f "$2" ]
|
||||
then
|
||||
echo "Installing file $1 to $2"
|
||||
file_path=$(dirname "$2")
|
||||
mkdir -p "$file_path"
|
||||
cd "$file_path" || exit
|
||||
curl -sSo "$2" "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
case $1 in
|
||||
all) _autoinstall_all ;;
|
||||
git) _autoinstall_git "$2" "$3" ;;
|
||||
file) _autoinstall_file "$2" "$3" ;;
|
||||
*) echo "'$1' is not valid" ;;
|
||||
esac
|
|
@ -1,30 +0,0 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
vim_autoload_dir="$HOME/.config/vim/autoload"
|
||||
if [ ! -f "$vim_autoload_dir/plug.vim" ]
|
||||
then
|
||||
mkdir -p "$vim_autoload_dir"
|
||||
cd "$vim_autoload_dir" || exit
|
||||
curl -o "plug.vim" "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim"
|
||||
[ -x "$(command -v vim)" ] && yes | vim +'PlugInstall --sync' +qa --not-a-term
|
||||
fi
|
||||
|
||||
nvim_dir="$HOME/.config/nvim"
|
||||
if [ ! -d "$nvim_dir" ]
|
||||
then
|
||||
git clone https://github.com/AstroNvim/AstroNvim "$nvim_dir"
|
||||
[ -x "$(command -v nvim)" ] && nvim --headless -c 'autocmd User PackerComplete quitall' -c 'PackerSync'
|
||||
fi
|
||||
|
||||
if [ ! -x "$(command -v starship)" ]
|
||||
then
|
||||
mkdir -p "$HOME/.local/bin"
|
||||
curl -sS "https://starship.rs/install.sh" | BIN_DIR="$HOME/.local/bin" FORCE=1 sh
|
||||
fi
|
||||
|
||||
if [ -x "$(command -v envsubst)" ]
|
||||
then
|
||||
wakatime_cfg="$WAKATIME_HOME/.wakatime.cfg"
|
||||
wakatime_tpl="$wakatime_cfg.tpl"
|
||||
envsubst < "$wakatime_tpl" > "$wakatime_cfg"
|
||||
fi
|
107
.bin/git-fire
107
.bin/git-fire
|
@ -1,107 +0,0 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# The MIT License (MIT)
|
||||
|
||||
# Copyright (c) 2015 - 2019 Nimit Kalra <nimit@utexas.edu>
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# Of this software and associated documentation files (the "Software"), to deal
|
||||
# In the Software without restriction, including without limitation the rights
|
||||
# To use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# Copies of the Software, and to permit persons to whom the Software is
|
||||
# Furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# Copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
# Setup.
|
||||
VERSION="0.2.3"
|
||||
|
||||
version() {
|
||||
printf "git-fire version %s\n" "$VERSION"
|
||||
|
||||
git --version
|
||||
}
|
||||
|
||||
# Helpers.
|
||||
current_branch() {
|
||||
basename "$(git symbolic-ref HEAD)"
|
||||
}
|
||||
|
||||
current_epoch() {
|
||||
date +%s
|
||||
}
|
||||
|
||||
user_email() {
|
||||
git config user.email
|
||||
}
|
||||
|
||||
new_branch() {
|
||||
echo "fire-${1:-$(current_branch)}-$(user_email)-$(current_epoch)"
|
||||
}
|
||||
|
||||
fire() {
|
||||
initial_branch="$(current_branch)"
|
||||
|
||||
git checkout -b "$(new_branch)"
|
||||
|
||||
# cd to git root directory
|
||||
cd "$(git rev-parse --show-toplevel)"
|
||||
|
||||
git add -A
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
message="Fire! Branch $(current_branch)."
|
||||
else
|
||||
message="$*"
|
||||
fi
|
||||
|
||||
git commit -m "$message" --no-verify
|
||||
|
||||
for remote in $(git remote); do
|
||||
git push --no-verify --set-upstream "${remote}" "$(current_branch)" || true
|
||||
done
|
||||
|
||||
if [ "$(git stash list)" != '' ]; then
|
||||
for sha in $(git rev-list -g stash); do
|
||||
git push --no-verify origin "$sha":refs/heads/"$(current_branch $initial_branch)"-stash-"$sha"
|
||||
done
|
||||
fi
|
||||
|
||||
printf "\n\nLeave building!\n"
|
||||
}
|
||||
|
||||
display_help() {
|
||||
cat <<-EOF
|
||||
|
||||
usage:
|
||||
git fire [options] [COMMAND] [args]
|
||||
|
||||
commands:
|
||||
git fire Add, commit, and push to remote in case of a fire
|
||||
git fire <message> Execute git fire with <message> for commit message
|
||||
|
||||
|
||||
options:
|
||||
-V, --version Output current version of git-fire
|
||||
-h, --help Display this help information
|
||||
|
||||
EOF
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
case $1 in
|
||||
-V|--version) version; exit 0 ;;
|
||||
-h|--help) display_help; exit 0 ;;
|
||||
esac
|
||||
|
||||
fire "$@"
|
|
@ -2,10 +2,12 @@
|
|||
|
||||
base_path="$HOME/.cache/remote-sources"
|
||||
mkdir -p "$base_path"
|
||||
file_path="$base_path/$1"
|
||||
file_path="$base_path/$2"
|
||||
if [ ! -f "$file_path" ]
|
||||
then
|
||||
echo "Installing file $1"
|
||||
curl -Ls -o "$file_path" "$2"
|
||||
echo "Installing file $2"
|
||||
curl -Ls -o "$file_path" "$1"
|
||||
fi
|
||||
source $file_path
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
. "$file_path"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue