From 1ffe13bcf44fbcbc40f98007ad86165838ccf118 Mon Sep 17 00:00:00 2001
From: Werner <guilherme.werner@outlook.com>
Date: Sat, 21 Jan 2023 19:49:05 -0300
Subject: [PATCH] Split wsl and ubuntu scripts

---
 Bootstrap.sh => Scripts/Ubuntu.sh |   2 +-
 Scripts/WSL.sh                    | 136 ++++++++++++++++++++++++++++++
 2 files changed, 137 insertions(+), 1 deletion(-)
 rename Bootstrap.sh => Scripts/Ubuntu.sh (99%)
 create mode 100644 Scripts/WSL.sh

diff --git a/Bootstrap.sh b/Scripts/Ubuntu.sh
similarity index 99%
rename from Bootstrap.sh
rename to Scripts/Ubuntu.sh
index 2b7d732..3fd9810 100644
--- a/Bootstrap.sh
+++ b/Scripts/Ubuntu.sh
@@ -65,7 +65,7 @@ rustup +nightly component add rust-src
 
 git clone https://github.com/asdf-vm/asdf ~/.asdf
 
-cargo install \
+cargo install --force \
     bandwhich \
     bat \
     cbindgen \
diff --git a/Scripts/WSL.sh b/Scripts/WSL.sh
new file mode 100644
index 0000000..b096796
--- /dev/null
+++ b/Scripts/WSL.sh
@@ -0,0 +1,136 @@
+#!/usr/bin/env sh
+
+# Update
+
+sudo apt update && sudo apt upgrade -y
+
+# Dependencies
+
+sudo apt install -y --no-install-recommends \
+    autoconf \
+    automake \
+    bash \
+    ca-certificates \
+    clang \
+    cmake \
+    curl \
+    ffmpeg \
+    file \
+    g++ \
+    gcc \
+    gh \
+    git \
+    gnupg \
+    gzip \
+    gzip \
+    htop \
+    iputils-ping \
+    libc6-dev \
+    libluajit-5.1-dev \
+    libncurses5-dev \
+    libssl-dev \
+    libudev-dev \
+    llvm \
+    lsb-release \
+    make \
+    mono-complete \
+    nano \
+    neofetch \
+    nginx \
+    ninja-build \
+    python3 \
+    samba \
+    tar \
+    ufw \
+    unzip \
+    wget \
+    xz-utils \
+    youtube-dl \
+    zsh
+
+# Rust
+
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+source "$HOME/.cargo/env"
+rustup toolchain install nightly
+rustup +nightly component add rust-src
+
+# Tools
+
+git clone https://github.com/asdf-vm/asdf ~/.asdf
+
+cargo install --force \
+    bandwhich \
+    bat \
+    cbindgen \
+    du-dust \
+    fd-find \
+    grex \
+    hyperfine \
+    naga-cli \
+    procs \
+    ripgrep \
+    rmesg \
+    sd \
+    tokei \
+    wasm-bindgen-cli \
+    ytop
+
+# Git
+
+cp ./Config/.gitconfig ~/.gitconfig
+
+# SSH
+
+mkdir ~/.ssh
+cp ./Config/.ssh/config ~/.ssh/config
+
+# ZSH
+
+cp ./Config/.zshrc ~/.zshrc
+
+# ASDF
+
+asdf plugin add dotnet https://github.com/hensou/asdf-dotnet
+asdf plugin add elixir https://github.com/asdf-vm/asdf-elixir
+asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang
+asdf plugin add golang https://github.com/kennyp/asdf-golang
+asdf plugin add gradle https://github.com/rfrancis/asdf-gradle
+asdf plugin add groovy https://github.com/weibemoura/asdf-groovy
+asdf plugin add haskell https://github.com/vic/asdf-haskell
+asdf plugin add java https://github.com/halcyon/asdf-java
+asdf plugin add kotlin https://github.com/asdf-community/asdf-kotlin
+asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs
+asdf plugin add php https://github.com/asdf-community/asdf-php
+asdf plugin add python https://github.com/danhper/asdf-python
+asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby
+asdf plugin add scala https://github.com/asdf-community/asdf-scala
+
+# .NET
+
+asdf install dotnet 7.0.100
+asdf global dotnet 7.0.100
+
+# Java
+
+asdf install java temurin-19.0.1+10
+asdf global java temurin-19.0.1+10
+
+# Erlang
+
+asdf install erlang 25.1.2
+asdf global erlang 25.1.2
+
+# Elixir
+
+asdf install elixir 1.14.2-otp-25
+asdf global elixir 1.14.2-otp-25
+
+# Shell
+
+mkdir ~/.config
+cp ./Config/starship.toml ~/.config/starship.toml
+git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
+source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
+curl -sS https://starship.rs/install.sh | sh
+chsh -s $(which zsh)