Automatically run getdot once a day.
Quieter copy.sh when links are already in place
This commit is contained in:
parent
0ba2e5df3a
commit
566c1904ef
49
copy.sh
49
copy.sh
|
@ -1,5 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Initializing dotfiles..."
|
||||||
|
|
||||||
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||||
FAKE_HOME="$SCRIPT_DIR/fake_home"
|
FAKE_HOME="$SCRIPT_DIR/fake_home"
|
||||||
export f="$FAKE_HOME"
|
export f="$FAKE_HOME"
|
||||||
|
@ -16,8 +18,11 @@ dotdirs="$(find $FAKE_HOME -mindepth 1 -type d)"
|
||||||
|
|
||||||
echo "$dotdirs" | while read -r dotdir; do
|
echo "$dotdirs" | while read -r dotdir; do
|
||||||
new="$HOME${dotdir:${#FAKE_HOME}}"
|
new="$HOME${dotdir:${#FAKE_HOME}}"
|
||||||
|
if test -d "$new"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
echo "mkdir -p $new"
|
echo "mkdir -p $new"
|
||||||
mkdir -p $new
|
mkdir -p "$new"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,12 +30,15 @@ dotfiles="$(find $FAKE_HOME -mindepth 1 -type f)"
|
||||||
|
|
||||||
echo "$dotfiles" | while read -r dotfile; do
|
echo "$dotfiles" | while read -r dotfile; do
|
||||||
new="$HOME${dotfile:${#FAKE_HOME}}"
|
new="$HOME${dotfile:${#FAKE_HOME}}"
|
||||||
|
if [[ "$(realpath $dotfile)" == "$(realpath $new)" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
echo "$dotfile => $new"
|
echo "$dotfile => $new"
|
||||||
ln -sf "$dotfile" "$new"
|
ln -sf "$dotfile" "$new"
|
||||||
done
|
done
|
||||||
|
|
||||||
function add-export {
|
function add-export {
|
||||||
if ! grep "$1" "$HOME/.zsh_local"; then
|
if ! grep "$1" "$HOME/.zsh_local" &> /dev/null; then
|
||||||
echo "$1\"$2\"" >> "$HOME/.zsh_local"
|
echo "$1\"$2\"" >> "$HOME/.zsh_local"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -42,25 +50,19 @@ if [[ "$1" == "--files-only" ]]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
|
||||||
echo "Installing required packages..."
|
|
||||||
|
|
||||||
echo -n "Rust is "
|
|
||||||
if ! command -v cargo &> /dev/null; then
|
if ! command -v cargo &> /dev/null; then
|
||||||
echo "not installed. Installing..."
|
echo "Rust is not installed. Installing..."
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||||
else
|
|
||||||
echo "already installed."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
. "$HOME/.cargo/env"
|
. "$HOME/.cargo/env"
|
||||||
if command -v cargo &> /dev/null && ! command -v bat &> /dev/null; then
|
if command -v cargo &> /dev/null && ! command -v bat &> /dev/null; then
|
||||||
|
echo "Bat is not installed. Installing..."
|
||||||
cargo install bat
|
cargo install bat
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -n "nvm is "
|
|
||||||
if ! test -d "$HOME/.nvm"; then
|
if ! test -d "$HOME/.nvm"; then
|
||||||
echo "not installed. Installing..."
|
echo "nvm is not installed. Installing..."
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
|
||||||
export NVM_DIR="$HOME/.nvm"
|
export NVM_DIR="$HOME/.nvm"
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||||
|
@ -69,57 +71,40 @@ if ! test -d "$HOME/.nvm"; then
|
||||||
nvm install 18
|
nvm install 18
|
||||||
nvm install node
|
nvm install node
|
||||||
nvm use node
|
nvm use node
|
||||||
else
|
|
||||||
echo "already installed."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -n "dotnet is "
|
|
||||||
if ! command -v dotnet &> /dev/null; then
|
if ! command -v dotnet &> /dev/null; then
|
||||||
echo "not installed. Installing..."
|
echo "dotnet is not installed. Installing..."
|
||||||
wget https://dot.net/v1/dotnet-install.sh -O /tmp/dotnet-install.sh
|
wget https://dot.net/v1/dotnet-install.sh -O /tmp/dotnet-install.sh
|
||||||
chmod +x /tmp/dotnet-install.sh
|
chmod +x /tmp/dotnet-install.sh
|
||||||
/tmp/dotnet-install.sh --version latest
|
/tmp/dotnet-install.sh --version latest
|
||||||
rm /tmp/dotnet-install.sh
|
rm /tmp/dotnet-install.sh
|
||||||
else
|
|
||||||
echo "already installed."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -n "starship is "
|
|
||||||
if ! command -v starship &> /dev/null; then
|
if ! command -v starship &> /dev/null; then
|
||||||
echo "not installed. Installing..."
|
echo "starship is not installed. Installing..."
|
||||||
curl -sS https://starship.rs/install.sh | sh
|
curl -sS https://starship.rs/install.sh | sh
|
||||||
else
|
|
||||||
echo "already installed."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -n "JetBrains toolbox is "
|
|
||||||
if ! test -d $HOME/.config/JetBrains/; then
|
if ! test -d $HOME/.config/JetBrains/; then
|
||||||
echo "not installed. Installing..."
|
echo "JetBrains toolbox is not installed. Installing..."
|
||||||
ARCHIVE_URL="$(curl -s 'https://data.services.jetbrains.com/products/releases?code=TBA&latest=true&type=release' | grep -Po '"linux":.*?[^\\]",' | awk -F ':' '{print $3,":"$4}'| sed 's/[", ]//g')"
|
ARCHIVE_URL="$(curl -s 'https://data.services.jetbrains.com/products/releases?code=TBA&latest=true&type=release' | grep -Po '"linux":.*?[^\\]",' | awk -F ':' '{print $3,":"$4}'| sed 's/[", ]//g')"
|
||||||
wget -q --show-progress -cO "/tmp/jetbrains-toolbox-latest.tar.gz" "$ARCHIVE_URL"
|
wget -q --show-progress -cO "/tmp/jetbrains-toolbox-latest.tar.gz" "$ARCHIVE_URL"
|
||||||
cd /tmp/
|
cd /tmp/
|
||||||
tar -xvf jetbrains-toolbox-latest.tar.gz --strip-components=1
|
tar -xvf jetbrains-toolbox-latest.tar.gz --strip-components=1
|
||||||
chmod +x jetbrains-toolbox
|
chmod +x jetbrains-toolbox
|
||||||
./jetbrains-toolbox
|
./jetbrains-toolbox
|
||||||
else
|
|
||||||
echo "already installed."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "$HOME/.local/share/fonts"
|
mkdir -p "$HOME/.local/share/fonts"
|
||||||
echo -n "FiraCode is "
|
|
||||||
if ! test -f "$HOME/.local/share/fonts/FiraCodeNerdFontMono-Medium.ttf"; then
|
if ! test -f "$HOME/.local/share/fonts/FiraCodeNerdFontMono-Medium.ttf"; then
|
||||||
echo "not installed. Installing..."
|
echo "FiraCode is not installed. Installing..."
|
||||||
wget -O /tmp/firacode.zip "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/FiraCode.zip"
|
wget -O /tmp/firacode.zip "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/FiraCode.zip"
|
||||||
unzip -d "$HOME/.local/share/fonts" /tmp/firacode.zip
|
unzip -d "$HOME/.local/share/fonts" /tmp/firacode.zip
|
||||||
rm /tmp/firacode.zip
|
rm /tmp/firacode.zip
|
||||||
fc-cache -f -v
|
fc-cache -f -v
|
||||||
|
|
||||||
else
|
|
||||||
echo "already installed."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v fzf &> /dev/null; then
|
if ! command -v fzf &> /dev/null; then
|
||||||
echo "You may wish to install fzf for sofi and other search"
|
echo "You may wish to install fzf for sofi and other search"
|
||||||
else
|
|
||||||
echo "fzf is already installed"
|
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -3,7 +3,7 @@ if test -f /usr/share/doc/fzf/examples/completion.zsh &> /dev/null; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
HISTFILE=~/.histfile
|
HISTFILE=~/.histfile
|
||||||
HISTSIZE=SAVEHIST=100000
|
HISTSIZE=SAVEHIST=100000000
|
||||||
setopt appendhistory autocd notify
|
setopt appendhistory autocd notify
|
||||||
setopt menu_complete
|
setopt menu_complete
|
||||||
unsetopt beep
|
unsetopt beep
|
||||||
|
@ -91,6 +91,13 @@ if test -f ~/.cargo/env; then
|
||||||
source ~/.cargo/env
|
source ~/.cargo/env
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
last_get_file="/tmp/.$(whoami)-dotfiles-last-get"
|
||||||
|
current_date="$(date '+%Y-%m-%d')"
|
||||||
|
if test -d "$DOT_DIR" && [[ "$current_date" != "$(cat "$last_get_file")" ]] &> /dev/null; then
|
||||||
|
echo "$current_date" > "$last_get_file"
|
||||||
|
getdot
|
||||||
|
fi
|
||||||
|
|
||||||
export NVM_DIR="$HOME/.nvm"
|
export NVM_DIR="$HOME/.nvm"
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||||
|
|
Loading…
Reference in New Issue