polish install scripts

pull/58/head
Simon Let 6 years ago
parent d4a5ad8e6d
commit a6cf02c5d7
  1. 60
      Makefile
  2. 11
      scripts/install_helper.sh
  3. 26
      scripts/rawinstall.sh

@ -63,49 +63,54 @@ clean:
install: build submodules/bash-preexec/bash-preexec.sh scripts/shellrc.sh conf/config.toml scripts/uuid.sh \ install: build submodules/bash-preexec/bash-preexec.sh scripts/shellrc.sh conf/config.toml scripts/uuid.sh \
| $(HOME)/.resh $(HOME)/.resh/bin $(HOME)/.config $(HOME)/.resh/bash_completion.d $(HOME)/.resh/zsh_completion.d | $(HOME)/.resh $(HOME)/.resh/bin $(HOME)/.config $(HOME)/.resh/bash_completion.d $(HOME)/.resh/zsh_completion.d
# Copying files to resh directory ... # Copying files ...
cp -f submodules/bash-preexec/bash-preexec.sh ~/.bash-preexec.sh @cp -f submodules/bash-preexec/bash-preexec.sh ~/.bash-preexec.sh
cp -f submodules/bash-zsh-compat-widgets/bindfunc.sh ~/.resh/bindfunc.sh @cp -f submodules/bash-zsh-compat-widgets/bindfunc.sh ~/.resh/bindfunc.sh
cp -f conf/config.toml ~/.config/resh.toml @cp -f conf/config.toml ~/.config/resh.toml
cp -f scripts/shellrc.sh ~/.resh/shellrc @cp -f scripts/shellrc.sh ~/.resh/shellrc
cp -f scripts/reshctl.sh scripts/widgets.sh scripts/hooks.sh scripts/util.sh ~/.resh/ @cp -f scripts/reshctl.sh scripts/widgets.sh scripts/hooks.sh scripts/util.sh ~/.resh/
bin/resh-control completion bash > ~/.resh/bash_completion.d/_reshctl # Generating completions for reshctl ...
bin/resh-control completion zsh > ~/.resh/zsh_completion.d/_reshctl @bin/resh-control completion bash > ~/.resh/bash_completion.d/_reshctl
@bin/resh-control completion zsh > ~/.resh/zsh_completion.d/_reshctl
cp -f scripts/uuid.sh ~/.resh/bin/resh-uuid # Copying more files ...
cp -f bin/* ~/.resh/bin/ @cp -f scripts/uuid.sh ~/.resh/bin/resh-uuid
cp -f scripts/resh-evaluate-plot.py ~/.resh/bin/ @cp -f bin/* ~/.resh/bin/
cp -fr data/sanitizer ~/.resh/sanitizer_data @cp -f scripts/resh-evaluate-plot.py ~/.resh/bin/
# backward compatibility: We have a new location for resh history file @cp -fr data/sanitizer ~/.resh/sanitizer_data
[ ! -f ~/.resh/history.json ] || mv ~/.resh/history.json ~/.resh_history.json
@# backward compatibility: We have a new location for resh history file
@[ ! -f ~/.resh/history.json ] || mv ~/.resh/history.json ~/.resh_history.json
# Adding resh shellrc to .bashrc ... # Adding resh shellrc to .bashrc ...
grep '[[ -f ~/.resh/shellrc ]] && source ~/.resh/shellrc' ~/.bashrc ||\ @grep -q '[[ -f ~/.resh/shellrc ]] && source ~/.resh/shellrc' ~/.bashrc ||\
echo -e '\n[[ -f ~/.resh/shellrc ]] && source ~/.resh/shellrc' >> ~/.bashrc echo -e '\n[[ -f ~/.resh/shellrc ]] && source ~/.resh/shellrc' >> ~/.bashrc
# Adding bash-preexec to .bashrc ... # Adding bash-preexec to .bashrc ...
grep '[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh' ~/.bashrc ||\ @grep -q '[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh' ~/.bashrc ||\
echo -e '\n[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh' >> ~/.bashrc echo -e '\n[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh' >> ~/.bashrc
# Adding resh shellrc to .zshrc ... # Adding resh shellrc to .zshrc ...
grep '[ -f ~/.resh/shellrc ] && source ~/.resh/shellrc' ~/.zshrc ||\ @grep -q '[ -f ~/.resh/shellrc ] && source ~/.resh/shellrc' ~/.zshrc ||\
echo -e '\n[ -f ~/.resh/shellrc ] && source ~/.resh/shellrc' >> ~/.zshrc echo -e '\n[ -f ~/.resh/shellrc ] && source ~/.resh/shellrc' >> ~/.zshrc
@# Deleting zsh completion cache - for future use @# Deleting zsh completion cache - for future use
@# [ ! -e ~/.zcompdump ] || rm ~/.zcompdump @# [ ! -e ~/.zcompdump ] || rm ~/.zcompdump
@# Final touch
@touch ~/.resh_history.json
# Restarting resh daemon ... # Restarting resh daemon ...
-if [ -f ~/.resh/resh.pid ]; then\ @-if [ -f ~/.resh/resh.pid ]; then\
kill -SIGTERM $$(cat ~/.resh/resh.pid);\ kill -SIGTERM $$(cat ~/.resh/resh.pid);\
rm ~/.resh/resh.pid;\ rm ~/.resh/resh.pid;\
fi fi
nohup resh-daemon &>/dev/null & disown @nohup resh-daemon &>/dev/null & disown
# Reloading rc files @# Generating resh-uuid ...
. ~/.resh/shellrc @[ -e "$(HOME)/.resh/resh-uuid" ] \
# Generating resh-uuid
[ -e "$(HOME)/.resh/resh-uuid" ] \
|| cat /proc/sys/kernel/random/uuid > "$(HOME)/.resh/resh-uuid" 2>/dev/null \ || cat /proc/sys/kernel/random/uuid > "$(HOME)/.resh/resh-uuid" 2>/dev/null \
|| ./uuid.sh > "$(HOME)/.resh/resh-uuid" 2>/dev/null || ./uuid.sh > "$(HOME)/.resh/resh-uuid" 2>/dev/null
# Final touch # Reloading rc files ...
touch ~/.resh_history.json @. ~/.resh/shellrc
# #
# #
# #
@ -117,15 +122,16 @@ install: build submodules/bash-preexec/bash-preexec.sh scripts/shellrc.sh conf/c
# #
# #
# WHAT'S NEXT # WHAT'S NEXT
# Please RESTART ALL OPEN TERMINAL WINDOWS (or reload your rc files) # It's recommended to RESTART ALL OPEN TERMINAL WINDOWS (or reload your rc files)
# Your resh history is located in `~/.resh_history.json` # Your resh history is located in `~/.resh_history.json`
# You can look at it using e.g. `tail -f ~/.resh_history.json | jq` # You can look at it using e.g. `tail -f ~/.resh_history.json | jq`
#
# #
# #
# ISSUES # ISSUES
# If anything looks broken create an issue: https://github.com/curusarn/resh/issues # If anything looks broken create an issue: https://github.com/curusarn/resh/issues
# You can uninstall this at any time by running `rm -rf ~/.resh/` # You can uninstall this at any time by running `rm -rf ~/.resh/`
# You won't lose any collected history by removing `~/.resh` directory # You won't lose any collected history by removing `~/.resh/` directory
# #
# #
# Please give me some contact info using this form: https://forms.gle/227SoyJ5c2iteKt98 # Please give me some contact info using this form: https://forms.gle/227SoyJ5c2iteKt98

@ -1,10 +1,13 @@
#!/usr/bin/env bash #!/usr/bin/env bash
resh_git_dir=~/.resh_git
if ! go version &>/dev/null; then if ! go version &>/dev/null; then
echo echo
echo "===========================================================================" echo "==========================================================================="
echo echo
echo "Please INSTALL GOLANG and run this again" echo "Please INSTALL GOLANG"
echo "after that rerun this script: \`cd $resh_git_dir && make autoinstall\`"
echo echo
if [ "$(uname)" = "Darwin" ]; then if [ "$(uname)" = "Darwin" ]; then
echo 'You can probably use `brew install go`.' echo 'You can probably use `brew install go`.'
@ -53,6 +56,8 @@ else
echo "===========================================================================" echo "==========================================================================="
echo "Your Golang version is older than 1.11 - we can't use go modules for build!" echo "Your Golang version is older than 1.11 - we can't use go modules for build!"
echo "It's RECOMMENDED to update your Golang! (press Ctrl+C and update Golang manually)" echo "It's RECOMMENDED to update your Golang! (press Ctrl+C and update Golang manually)"
echo "after that rerun this script: \`cd $resh_git_dir && make autoinstall\`"
echo
if [ "$(uname)" = "Linux" ]; then if [ "$(uname)" = "Linux" ]; then
. /etc/os-release . /etc/os-release
@ -64,6 +69,7 @@ else
echo echo
echo "I will try to build the project using dep. (I will let you review each step.)" echo "I will try to build the project using dep. (I will let you review each step.)"
echo "Continue? (Any key to continue / Ctrl+C to cancel)" echo "Continue? (Any key to continue / Ctrl+C to cancel)"
# shellcheck disable=2162 disable=2034
read x read x
take_care_of_gopath=0 take_care_of_gopath=0
@ -73,6 +79,7 @@ else
echo "GOPATH env variable is unset!" echo "GOPATH env variable is unset!"
echo "I will take care of GOPATH. (I will create tmp GOPATH.)" echo "I will take care of GOPATH. (I will create tmp GOPATH.)"
echo "Continue? (Any key to continue / Ctrl+C to cancel)" echo "Continue? (Any key to continue / Ctrl+C to cancel)"
# shellcheck disable=2162 disable=2034
read x read x
GOPATH=$(mktemp -d /tmp/gopath-XXX) \ GOPATH=$(mktemp -d /tmp/gopath-XXX) \
@ -91,6 +98,7 @@ else
echo "It appears that you don't have dep installed!" echo "It appears that you don't have dep installed!"
echo "I will install dep. (I will install it from GitHub.)" echo "I will install dep. (I will install it from GitHub.)"
echo "Continue? (Any key to continue / Ctrl+C to cancel)" echo "Continue? (Any key to continue / Ctrl+C to cancel)"
# shellcheck disable=2162 disable=2034
read x read x
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
@ -106,6 +114,7 @@ else
echo "It seems that current directory is not in the GOPATH!" echo "It seems that current directory is not in the GOPATH!"
echo "I will copy the project to appropriate GOPATH directory." echo "I will copy the project to appropriate GOPATH directory."
echo "Continue? (Any key to continue / Ctrl+C to cancel)" echo "Continue? (Any key to continue / Ctrl+C to cancel)"
# shellcheck disable=2162 disable=2034
read x read x
fi fi
cp -rf ./* .git* "$project_path" && echo "Copied files to $project_path" cp -rf ./* .git* "$project_path" && echo "Copied files to $project_path"

@ -2,8 +2,26 @@
set -euo pipefail set -euo pipefail
tmpdir="$(mktemp -d /tmp/resh-XXX)" while ! git --version &>/dev/null; do
cd "$tmpdir" echo "Please install git."
git clone https://github.com/curusarn/resh.git echo "Check again? (Any key to check again / Ctrl+C to exit)"
cd resh # shellcheck disable=2162 disable=2034
read x
echo
done
resh_git_dir=~/.resh_git
if [ ! -d "$resh_git_dir" ]; then
git clone https://github.com/curusarn/resh.git "$resh_git_dir"
echo "Cloned https://github.com/curusarn/resh.git to $resh_git_dir"
echo
fi
echo "Pulling the latest version of RESH ..."
cd "$resh_git_dir"
git checkout master
git pull
echo "Successfully pulled the latest version!"
make autoinstall make autoinstall

Loading…
Cancel
Save