Add a Windows install script

This commit is contained in:
Michael Campagnaro 2020-05-14 00:36:01 -04:00
parent 55c29f1813
commit 90be84e992
4 changed files with 86 additions and 71 deletions

129
install
View File

@ -1,47 +1,29 @@
#!/bin/bash #!/bin/bash
source "$HOME/.dotfiles/script_helpers/all.sh" source "script_helpers/printing.sh"
source "script_helpers/core.sh"
set -e source "script_helpers/platform.sh"
source "script_helpers/file_ops.sh"
cwd=$PWD cwd=$PWD
platform=`uname` platform=`uname`
confirm_link=0
echo platform: $platform
os_is_windows is_windows os_is_windows is_windows
if [[ $is_windows -eq 1 ]]; then if [[ $is_windows -eq 1 ]]; then
error "This is only supported on Linux or MacOS.\n" # Check for admin permissions.
exit 1 net session &>/dev/null
admin_error=$?
if [[ ! $admin_error -eq 0 ]]; then
fatal "You need to run this in an admin shell!"
fi
fi fi
setup_dotfile_repo() { set -e
if [ ! -d "$HOME/.dotfiles" ]; then
printf "${YELLOW}Creating dotfiles symlink${NORMAL}\n"
ln -s $cwd $HOME/.dotfiles
fi
# Used by various things (e.g. vim history) ####################################################################################################
mkdir -p $HOME/tmp # Helpers
} ####################################################################################################
link() {
file=$1
link_file "$HOME/.dotfiles/$file" "$HOME/.$file" 0
}
setup_git() {
printf "Setting up git...\n"
FILES=()
FILES+=('gitconfig')
FILES+=('githelpers')
for file in "${FILES[@]}"
do
link "$file"
done
}
setup_zsh() { setup_zsh() {
printf "Setting up zsh...\n" printf "Setting up zsh...\n"
@ -68,52 +50,59 @@ setup_zsh() {
for file in "${FILES[@]}" for file in "${FILES[@]}"
do do
link "$file" setup_file "$file"
done done
} }
setup_vim() { ####################################################################################################
printf "Setting up vim...\n" # Setup
####################################################################################################
FILES=() pushd "$HOME" &>/dev/null
FILES+=('vim')
FILES+=('vimrc')
for file in "${FILES[@]}" #########################
do # Setup root dirs
link "$file" #########################
done setup_dir $cwd .dotfiles
} setup_dir .dotfiles/vim .vim
setup_misc() { #########################
printf "Setting up misc...\n" # Setup root files
#########################
FILES=()
FILES+=('aliases')
FILES+=('functions')
FILES+=('gitconfig')
FILES+=('githelpers')
FILES+=('vimrc')
FILES+=('curlrc')
FILES=() for file in "${FILES[@]}"
FILES+=('curlrc') do
setup_file .dotfiles/$file .$file
done
for file in "${FILES[@]}" #########################
do # Setup non-root files
link "$file" #########################
done if [[ $is_windows -eq 1 ]]; then
} setup_file .dotfiles/bash/bashrc .bashrc
setup_file .dotfiles/bash/bash_profile .bash_profile
setup_file .dotfiles/bash/inputrc .inputrc
setup_file .dotfiles/windows/gitconfig.platform .gitconfig.platform
fi
# //////////////////////////////////////////////////////////////////////////////////////// curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o .git-completion.bash
# OSX
setup_osx() { if [[ $is_windows -eq 0 ]]; then
./osx/install.sh setup_zsh
} fi
# ////////////////////////////////////////////////////////////////////////////////////////
# Run
setup_dotfile_repo
setup_git
setup_zsh
setup_vim
setup_misc
if [[ $platform == 'Darwin' ]]; then if [[ $platform == 'Darwin' ]]; then
printf "\n${BOLD}Running the OS X installer${NORMAL}\n" printf "\n${BOLD}Running the OS X installer${NORMAL}\n"
setup_osx ./osx/install.sh
fi fi
popd "$HOME" &>/dev/null
printf "${BOLD}${GREEN}Done!${NORMAL}\n"

View File

@ -213,3 +213,23 @@ link_file() {
eval $link_cmd eval $link_cmd
} }
function setup_file() {
src=$1
dest=$2
if [ ! -f $dest ]; then
link_file $src $dest $confirm_link
else
printf "${BOLD}*${NORMAL} ${YELLOW}'$dest'${NORMAL} already linked to ${YELLOW}'$src'${NORMAL}\n"
fi
}
function setup_dir() {
src=$1
dest=$2
if [ ! -d $dest ]; then
link_file $src $dest $confirm_link
else
printf "${BOLD}*${NORMAL} ${YELLOW}'$dest'${NORMAL} already linked to ${YELLOW}'$src'${NORMAL}\n"
fi
}

View File

@ -23,6 +23,12 @@ error() {
printf "${BOLD}${RED}$1${NORMAL}" printf "${BOLD}${RED}$1${NORMAL}"
} }
fatal() {
msg=$1
printf "${RED}${msg}${NORMAL}\n"
exit 1
}
log() { log() {
msg="$1" msg="$1"
value="$2" value="$2"

View File

@ -111,7 +111,7 @@ processor time and is generally useless.
* Now you can make a system32 cmd line shortcut that will be used to launch the batch file. e.g. * Now you can make a system32 cmd line shortcut that will be used to launch the batch file. e.g.
* `target:` `%windir%\System32\cmd.exe /k drive:\path-to-bat-file\shell-64.bat` * `target:` `%windir%\System32\cmd.exe /k drive:\path-to-bat-file\shell-64.bat`
* `start in:` `drive:\some-path` * `start in:` `drive:\some-path`
* Setup git completions for bash: * Setup git completions for bash (note: shouldn't have to do this if you ran the install script):
* `curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash` * `curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash`
### 32-bit dev tools ### 32-bit dev tools