From d8b2333dca5806763646572ab0c073fdefac98f5 Mon Sep 17 00:00:00 2001 From: Edward Delaporte Date: Sat, 13 Mar 2021 15:29:25 -0600 Subject: [PATCH 1/1] Refactor to separate install and setup --- bootstrap.sh | 74 ----------------------------------------- bootstrap_pi.sh | 76 ------------------------------------------- install.sh | 30 +++++++++++++++++ install/code.sh | 8 +++++ install/i3.sh | 5 +++ install/powershell.sh | 8 +++++ setup.sh | 42 ++++++++++++++++++++++++ setup/vundle.sh | 6 ++++ 8 files changed, 99 insertions(+), 150 deletions(-) delete mode 100755 bootstrap.sh create mode 100644 install.sh create mode 100644 install/code.sh create mode 100644 install/i3.sh create mode 100755 install/powershell.sh create mode 100644 setup.sh create mode 100644 setup/vundle.sh diff --git a/bootstrap.sh b/bootstrap.sh deleted file mode 100755 index e202b32..0000000 --- a/bootstrap.sh +++ /dev/null @@ -1,74 +0,0 @@ -# Reminder to future self: -# Step 1: ssh-keygen on remote host. -# Step 0: Remove any existing .vim, .vimrc and .zsrhrc on remote host. -# Step 2: Add ssh pubkey to GitHub as deploy key. -# Step 3: clone the repo. -# Step 4: Run this bootstrap script. - -# You can scp just this file to the destination host, -# and then run it. - -## Setup Git and Vim -if [ ! -d ~/dotfiles ]; then - sudo apt-get install git install vim - # TODO: Consider vim-nox to resolve 'needs python' error from some of my vundle plugins. - git config --global user.email "edward@delaporte.us" - git config --global user.name "Edward Delaporte" - git config --global core.editor /usr/bin/vim - cd ~; git clone git@github.com:edthedev/dotfiles.git -fi -if [ ! -f ~/.vimrc ]; then - ln -s ~/dotfiles/vimrc ~/.vimrc -fi - - -## Setup PowerShell -if [ ! -f ~/.config/powershell/Microsoft.PowerShell_profile.ps1 ]; then - sudo apt-get install powershell - chsh --shell /usr/bin/pwsh - mkdir -p /home/delaport/.config/powershell/ - ln -s ~/dotfiles/Microsoft.PowerShell_profile.ps1 ~/.config/powershell/Microsoft.PowerShell_profile.ps1 -fi - -## Create SSH Keys -if [ ! -f ~/.ssh/id_rsa ]; then - ssh-keygen -fi - -## Setup Remote Access -# if [ ! -f ~/id_rsa.pub ]; then -# cp ~/dotfiles/id_rsa.pub ~/id_rsa.pub -# chmod go+r ~/id_rsa.pub -# fi - -## Setup ZShell Profile -# if [ ! -f ~/.zshrc ]; then -# ln -s ~/dotfiles/zshrc ~/.zshrc -# fi -# if [ ! -f ~/dotfiles/antigen/README.md ]; then -# cd ~/dotfiles;git submodule update --init -# fi - -## Setup Screen -if [ ! -f ~/.screenrc ]; then - sudo apt-get install screen - ln -s ~/dotfiles/screenrc ~/.screenrc -fi - -## Setup Vundle for Vim -if [ ! -d ~/.vim/bundle ]; then - echo "*** Setup Vundle for Vim***" - git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim - - sudo apt-get install vim-gtk3 # For python support - sudo update-alternatives --set editor /usr/bin/vim.gtk3 - sudo update-alternatives --set vim /usr/bin/vim.gtk3 - sudo update-alternatives --set vi /usr/bin/vim.gtk3 - - vim +BundleInstall +qall - -fi - -# Vim-Plu -curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ - https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim diff --git a/bootstrap_pi.sh b/bootstrap_pi.sh index 145fbce..b28b04f 100755 --- a/bootstrap_pi.sh +++ b/bootstrap_pi.sh @@ -1,79 +1,3 @@ -# Reminder to future self: -# Step 0: git clone https://github.com/edthedev/dotfiles -# Step 1: Run this bootstrap script. -echo "Git, vi are already installed." -mkdir -p ~/.installed -if [ ! -d ~/dotfiles ]; then - echo "************** Setup Git and Vim" - sudo apt-get install git vim-nox - cd ~; git clone git@github.com:edthedev/dotfiles.git -fi - -# sudo apt-get install vim-nox - -if [ ! -f ~/.vimrc ]; then - echo "************** Configure Git and link Vimrc" - git config --global user.email "edward@delaporte.us" - git config --global user.name "Edward Delaporte" - git config --global core.editor /usr/bin/vim - ln -s ~/dotfiles/vimrc ~/.vimrc -fi - -if [ ! -f ~/.installed/i3 ]; then - echo "************** Install i3 Window Manager" - sudo apt-get install i3 - touch ~/.installed/i3 -fi - -## Setup PowerShell -if [ ! -f ~/.config/powershell/Microsoft.PowerShell_profile.ps1 ]; then - echo "************** Install PowerShell and setup profile" - sudo apt-get install powershell - chsh --shell /usr/bin/pwsh - mkdir -p ~/.config/powershell/ - ln -s ~/dotfiles/Microsoft.PowerShell_profile.ps1 ~/.config/powershell/Microsoft.PowerShell_profile.ps1 -fi - -## Create SSH Keys -if [ ! -f ~/.ssh/id_rsa ]; then - echo "************** Generate an SSH key" - ssh-keygen -fi - -## Setup Remote Access -# if [ ! -f ~/id_rsa.pub ]; then -# cp ~/dotfiles/id_rsa.pub ~/id_rsa.pub -# chmod go+r ~/id_rsa.pub -# fi - -## Setup Screen -if [ ! -f ~/.screenrc ]; then - echo "************** Install Screen" - sudo apt-get install screen - ln -s ~/dotfiles/screenrc ~/.screenrc -fi - -## Setup Vundle for Vim -if [ ! -d ~/.vim/bundle ]; then - echo "************** Setup Vundle for Vim" - git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim - vim +BundleInstall +qall -fi - -if [ ! -d ~/.installed/code ]; then - echo "************** Install Visual Studio Code" - # sudo apt install snapd - # sudo snap install --classic code - wget https://packagecloud.io/headmelted/codebuilds/gpgkey -O - | sudo apt-key add - - curl -L https://raw.githubusercontent.com/headmelted/codebuilds/master/docs/installers/apt.sh | sudo bash - touch ~/.installed/code -fi - -echo "https://github.com/settings/keys" -echo "vim .git/config -- add: url = git@github.com:edthedev/dotfiles.git" -cat ~/.ssh/id_rsa.pub - -ls -al ~/.installed diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..71db6c6 --- /dev/null +++ b/install.sh @@ -0,0 +1,30 @@ +# Reminder to future self: +# Step 0: git clone https://github.com/edthedev/dotfiles +# Step 1: Run this bootstrap script. + +mkdir -p ~/.installed + +if [ ! -d ~/dotfiles ]; then + echo "************** Install Git" + sudo apt-get install -y git +fi + +if [ ! -f ~/.vimrc ]; then + echo "************** Install Vim" + sudo apt-get install -y vim-nox +fi + +if [ ! -f ~/.config/powershell/Microsoft.PowerShell_profile.ps1 ]; then + echo "************** Install PowerShell" + sudo apt-get install -y powershell +fi + +if [ ! -f ~/.screenrc ]; then + echo "************** Install Screen" + sudo apt-get install -y screen +fi + +echo "Installed:" +ls -al ~/.installed +echo "Setup Options: +ls -al ~/setup diff --git a/install/code.sh b/install/code.sh new file mode 100644 index 0000000..93a0e58 --- /dev/null +++ b/install/code.sh @@ -0,0 +1,8 @@ +if [ ! -d ~/.installed/code ]; then + echo "************** Install Visual Studio Code" + # sudo apt install snapd + # sudo snap install --classic code + wget https://packagecloud.io/headmelted/codebuilds/gpgkey -O - | sudo apt-key add - + curl -L https://raw.githubusercontent.com/headmelted/codebuilds/master/docs/installers/apt.sh | sudo bash + touch ~/.installed/code +fi diff --git a/install/i3.sh b/install/i3.sh new file mode 100644 index 0000000..84df46c --- /dev/null +++ b/install/i3.sh @@ -0,0 +1,5 @@ +if [ ! -f ~/.installed/i3 ]; then + echo "************** Install i3 Window Manager" + sudo apt-get install i3 + touch ~/.installed/i3 +fi diff --git a/install/powershell.sh b/install/powershell.sh new file mode 100755 index 0000000..0f7b2eb --- /dev/null +++ b/install/powershell.sh @@ -0,0 +1,8 @@ +## Setup PowerShell +if [ ! -f ~/.config/powershell/Microsoft.PowerShell_profile.ps1 ]; then + echo "************** Install PowerShell and setup profile" + sudo apt-get install powershell + chsh --shell /usr/bin/pwsh + mkdir -p ~/.config/powershell/ + ln -s ~/dotfiles/Microsoft.PowerShell_profile.ps1 ~/.config/powershell/Microsoft.PowerShell_profile.ps1 +fi diff --git a/setup.sh b/setup.sh new file mode 100644 index 0000000..7893144 --- /dev/null +++ b/setup.sh @@ -0,0 +1,42 @@ +if [ ! -d ~/dotfiles ]; then + echo "************** Cloning Dotfiles Directory" + cd ~; git clone git@github.com:edthedev/dotfiles.git +fi + +if [ ! -f ~/.ssh/id_rsa ]; then + echo "************** Generate an SSH key" + ssh-keygen +fi + +if [ ! -f ~/.screenrc ]; then + echo "************** Setup Screen" + ln -s ~/dotfiles/screenrc ~/.screenrc +fi + +if [ ! -f ~/.config/powershell/Microsoft.PowerShell_profile.ps1 ]; then + echo "************** Setup PowerShell" + chsh --shell /usr/bin/pwsh + mkdir -p ~/.config/powershell/ + ln -s ~/dotfiles/Microsoft.PowerShell_profile.ps1 ~/.config/powershell/Microsoft.PowerShell_profile.ps1 +fi + +if [ ! -f ~/.vimrc ]; then + echo "************** Link Vimrc" + ln -s ~/dotfiles/vimrc ~/.vimrc +fi + +if [ -f ~/.vimrc ]; then + echo "************** Configure Git to use Vim" + git config --global core.editor /usr/bin/vim +fi + +if [ -f ~/.gitconfig ]; then + echo "************** Configure Git user" + git config --global user.email "edward@delaporte.us" + git config --global user.name "Edward Delaporte" +fi + +echo "************** Reminder to setup GitHub key" +echo "https://github.com/settings/keys" +echo "vim .git/config -- add: url = git@github.com:edthedev/dotfiles.git" +cat ~/.ssh/id_rsa.pub diff --git a/setup/vundle.sh b/setup/vundle.sh new file mode 100644 index 0000000..ccdfe91 --- /dev/null +++ b/setup/vundle.sh @@ -0,0 +1,6 @@ +## Setup Vundle for Vim +if [ ! -d ~/.vim/bundle ]; then + echo "************** Setup Vundle for Vim" + git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim + vim +BundleInstall +qall +fi -- 2.47.3