forked from ChrisTitusTech/linutil
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request ChrisTitusTech#335 from nnyyxxxx/testing-12
Move mybash and CTT nvim to Linutil with minor refactoring
- Loading branch information
Showing
3 changed files
with
175 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
#!/bin/sh -e | ||
|
||
. ../common-script.sh | ||
|
||
gitpath="$HOME/.local/share/mybash" | ||
|
||
cloneMyBash() { | ||
# Check if the dir exists before attempting to clone into it. | ||
if [ -d "$gitpath" ]; then | ||
rm -rf "$gitpath" | ||
fi | ||
mkdir -p "$HOME/.local/share" # Only create the dir if it doesn't exist. | ||
cd "$HOME" && git clone https://github.com/ChrisTitusTech/mybash.git "$gitpath" | ||
} | ||
|
||
installDepend() { | ||
echo "Install mybash if not already installed" | ||
case "$PACKAGER" in | ||
pacman) | ||
$ESCALATION_TOOL "$PACKAGER" -S --needed --noconfirm bash bash-completion tar bat tree unzip fontconfig | ||
;; | ||
apt) | ||
$ESCALATION_TOOL "$PACKAGER" install -y bash bash-completion tar bat tree unzip fontconfig | ||
;; | ||
dnf) | ||
$ESCALATION_TOOL "$PACKAGER" install -y bash bash-completion tar bat tree unzip fontconfig | ||
;; | ||
zypper) | ||
$ESCALATION_TOOL "$PACKAGER" install -y bash bash-completion tar bat tree unzip fontconfig | ||
;; | ||
*) | ||
printf "%b\n" "${RED}Unsupported package manager: $PACKAGER${RC}" # The packages above were grabbed out of the original mybash-setup-script. | ||
exit 1 | ||
;; | ||
esac | ||
} | ||
|
||
installFont() { | ||
# Check to see if the MesloLGS Nerd Font is installed (Change this to whatever font you would like) | ||
FONT_NAME="MesloLGS Nerd Font Mono" | ||
if fc-list :family | grep -iq "$FONT_NAME"; then | ||
echo "Font '$FONT_NAME' is installed." | ||
else | ||
echo "Installing font '$FONT_NAME'" | ||
# Change this URL to correspond with the correct font | ||
FONT_URL="https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Meslo.zip" | ||
FONT_DIR="$HOME/.local/share/fonts" | ||
TEMP_DIR=$(mktemp -d) | ||
curl -sSLo "$TEMP_DIR"/"${FONT_NAME}".zip "$FONT_URL" | ||
unzip "$TEMP_DIR"/"${FONT_NAME}".zip -d "$TEMP_DIR" | ||
mkdir -p "$FONT_DIR"/"$FONT_NAME" | ||
mv "${TEMP_DIR}"/*.ttf "$FONT_DIR"/"$FONT_NAME" | ||
fc-cache -fv | ||
rm -rf "${TEMP_DIR}" | ||
echo "'$FONT_NAME' installed successfully." | ||
fi | ||
} | ||
|
||
installStarshipAndFzf() { | ||
if command_exists starship; then | ||
echo "Starship already installed" | ||
return | ||
fi | ||
|
||
if ! curl -sSL https://starship.rs/install.sh | sh; then | ||
printf "%b\n" "${RED}Something went wrong during starship install!${RC}" | ||
exit 1 | ||
fi | ||
if command_exists fzf; then | ||
echo "Fzf already installed" | ||
else | ||
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf | ||
$ESCALATION_TOOL ~/.fzf/install | ||
fi | ||
} | ||
|
||
installZoxide() { | ||
if command_exists zoxide; then | ||
echo "Zoxide already installed" | ||
return | ||
fi | ||
|
||
if ! curl -sSL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh; then | ||
printf "%b\n" "${RED}Something went wrong during zoxide install!${RC}" | ||
exit 1 | ||
fi | ||
} | ||
|
||
linkConfig() { | ||
OLD_BASHRC="$HOME/.bashrc" | ||
if [ -e "$OLD_BASHRC" ] && [ ! -e "$HOME/.bashrc.bak" ]; then | ||
printf "%b\n" "${YELLOW}Moving old bash config file to $HOME/.bashrc.bak${RC}" | ||
if ! mv "$OLD_BASHRC" "$HOME/.bashrc.bak"; then | ||
printf "%b\n" "${RED}Can't move the old bash config file!${RC}" | ||
exit 1 | ||
fi | ||
fi | ||
|
||
printf "%b\n" "${YELLOW}Linking new bash config file...${RC}" | ||
ln -svf "$gitpath/.bashrc" "$HOME/.bashrc" || { | ||
printf "%b\n" "${RED}Failed to create symbolic link for .bashrc${RC}" | ||
exit 1 | ||
} | ||
ln -svf "$gitpath/starship.toml" "$HOME/.config/starship.toml" || { | ||
printf "%b\n" "${RED}Failed to create symbolic link for starship.toml${RC}" | ||
exit 1 | ||
} | ||
printf "%b\n" "${GREEN}Done! restart your shell to see the changes.${RC}" | ||
} | ||
|
||
checkEnv | ||
checkEscalationTool | ||
cloneMyBash | ||
installDepend | ||
installFont | ||
installStarshipAndFzf | ||
installZoxide | ||
linkConfig |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#!/bin/sh -e | ||
|
||
. ../common-script.sh | ||
|
||
gitpath="$HOME/.local/share/neovim" | ||
|
||
cloneNeovim() { | ||
# Check if the dir exists before attempting to clone into it. | ||
if [ -d "$gitpath" ]; then | ||
rm -rf "$gitpath" | ||
fi | ||
mkdir -p "$HOME/.local/share" # Only create the dir if it doesn't exist. | ||
cd "$HOME" && git clone https://github.com/ChrisTitusTech/neovim.git "$HOME/.local/share/neovim" | ||
} | ||
|
||
setupNeovim() { | ||
echo "Install Neovim if not already installed" | ||
case "$PACKAGER" in | ||
pacman) | ||
$ESCALATION_TOOL "$PACKAGER" -S --needed --noconfirm neovim ripgrep fzf python-virtualenv luarocks go shellcheck | ||
;; | ||
apt) | ||
$ESCALATION_TOOL "$PACKAGER" install -y neovim ripgrep fd-find python3-venv luarocks golang-go shellcheck | ||
;; | ||
dnf) | ||
$ESCALATION_TOOL "$PACKAGER" install -y neovim ripgrep fzf python3-virtualenv luarocks golang ShellCheck | ||
;; | ||
zypper) | ||
$ESCALATION_TOOL "$PACKAGER" install -y neovim ripgrep fzf python3-virtualenv luarocks golang ShellCheck | ||
;; | ||
*) | ||
printf "%b\n" "${RED}Unsupported package manager: $PACKAGER${RC}" # The packages above were grabbed out of the original nvim-setup-script. | ||
exit 1 | ||
;; | ||
esac | ||
} | ||
|
||
backupNeovimConfig() { | ||
if [ -d "$HOME/.config/nvim" ] && [ ! -d "$HOME/.config/nvim-backup" ]; then | ||
cp -r "$HOME/.config/nvim" "$HOME/.config/nvim-backup" | ||
fi | ||
rm -rf "$HOME/.config/nvim" | ||
} | ||
|
||
linkNeovimConfig() { | ||
mkdir -p "$HOME/.config/nvim" | ||
ln -s "$gitpath/titus-kickstart/"* "$HOME/.config/nvim/" # Wild card is used here to link all contents of titus-kickstart. | ||
} | ||
|
||
checkEnv | ||
checkEscalationTool | ||
cloneNeovim | ||
setupNeovim | ||
backupNeovimConfig | ||
linkNeovimConfig |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters