From 494becb0387f79bed0f3bdb304a119a232295e8c Mon Sep 17 00:00:00 2001 From: Tony Messias Date: Sun, 8 Sep 2024 22:30:52 -0300 Subject: [PATCH 1/6] Remove the lazyvim.json config --- configs/neovim/lazyvim.json | 4 ---- install/terminal/app-neovim.sh | 2 -- 2 files changed, 6 deletions(-) delete mode 100644 configs/neovim/lazyvim.json diff --git a/configs/neovim/lazyvim.json b/configs/neovim/lazyvim.json deleted file mode 100644 index eaa67499..00000000 --- a/configs/neovim/lazyvim.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extras": [ "lazyvim.plugins.extras.lang.go" ], - "version": 6 -} diff --git a/install/terminal/app-neovim.sh b/install/terminal/app-neovim.sh index a5ea1a42..6a399a05 100644 --- a/install/terminal/app-neovim.sh +++ b/install/terminal/app-neovim.sh @@ -22,8 +22,6 @@ if [ ! -d "$HOME/.config/nvim" ]; then # Default to Tokyo Night theme cp ~/.local/share/omakub/themes/tokyo-night/neovim.lua ~/.config/nvim/lua/plugins/theme.lua - # Enable default extras - cp ~/.local/share/omakub/configs/neovim/lazyvim.json ~/.config/nvim/lazyvim.json fi # Replace desktop launcher with one running inside Alacritty From 46859d8d2b893e4bb22d2865f7dc26a4cc14a61f Mon Sep 17 00:00:00 2001 From: Tony Messias Date: Sun, 8 Sep 2024 22:31:01 -0300 Subject: [PATCH 2/6] Enable lazyvim extras based on the language --- install/terminal/select-dev-language.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/install/terminal/select-dev-language.sh b/install/terminal/select-dev-language.sh index 08c5ee89..2fc87165 100644 --- a/install/terminal/select-dev-language.sh +++ b/install/terminal/select-dev-language.sh @@ -6,6 +6,16 @@ else languages=$(gum choose "${AVAILABLE_LANGUAGES[@]}" --no-limit --height 10 --header "Select programming languages") fi +enable_lazyvim_extras() { + local temp_file=$(mktemp /tmp/omakub.XXXXX) + local extras=("$@") + local jq_extras=$(printf '"%s",' "${extras[@]}") + jq_extras="[${jq_extras%,}]" + + jq --argjson extras "$jq_extras" '.extras |= (. + $extras | unique)' ~/.config/nvim/lazyvim.json >"$temp_file" && + mv "$temp_file" ~/.config/nvim/lazyvim.json +} + if [[ -n "$languages" ]]; then for language in $languages; do case $language in @@ -15,9 +25,13 @@ if [[ -n "$languages" ]]; then ;; Node.js) mise use --global node@lts + + enable_lazyvim_extras "lazyvim.plugins.extras.lang.typescript" ;; Go) mise use --global go@latest + + enable_lazyvim_extras "lazyvim.plugins.extras.lang.go" ;; PHP) sudo add-apt-repository -y ppa:ondrej/php @@ -25,6 +39,8 @@ if [[ -n "$languages" ]]; then php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php --quiet && sudo mv composer.phar /usr/local/bin/composer rm composer-setup.php + + enable_lazyvim_extras "lazyvim.plugins.extras.lang.php" "lazyvim.plugins.extras.lang.typescript" ;; Python) mise use --global python@latest From 8b4102521aed1ed6910aa2605ac38dce7be140af Mon Sep 17 00:00:00 2001 From: Tony Messias Date: Fri, 25 Oct 2024 12:37:19 -0300 Subject: [PATCH 3/6] Remove TypeScript extras plugin when install PHP --- install/terminal/select-dev-language.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/terminal/select-dev-language.sh b/install/terminal/select-dev-language.sh index 2fc87165..319ab9c4 100644 --- a/install/terminal/select-dev-language.sh +++ b/install/terminal/select-dev-language.sh @@ -40,7 +40,7 @@ if [[ -n "$languages" ]]; then php composer-setup.php --quiet && sudo mv composer.phar /usr/local/bin/composer rm composer-setup.php - enable_lazyvim_extras "lazyvim.plugins.extras.lang.php" "lazyvim.plugins.extras.lang.typescript" + enable_lazyvim_extras "lazyvim.plugins.extras.lang.php" ;; Python) mise use --global python@latest From 84f9e4a3a48c060a1eeeabf0d01327361f8ca661 Mon Sep 17 00:00:00 2001 From: Tony Messias Date: Wed, 5 Feb 2025 11:35:13 -0300 Subject: [PATCH 4/6] Rename variables --- install/terminal/select-dev-language.sh | 105 +++++++++++++----------- 1 file changed, 55 insertions(+), 50 deletions(-) diff --git a/install/terminal/select-dev-language.sh b/install/terminal/select-dev-language.sh index 319ab9c4..5d48f417 100644 --- a/install/terminal/select-dev-language.sh +++ b/install/terminal/select-dev-language.sh @@ -1,61 +1,66 @@ # Install default programming languages if [[ -v OMAKUB_FIRST_RUN_LANGUAGES ]]; then - languages=$OMAKUB_FIRST_RUN_LANGUAGES + languages=$OMAKUB_FIRST_RUN_LANGUAGES else - AVAILABLE_LANGUAGES=("Ruby on Rails" "Node.js" "Go" "PHP" "Python" "Elixir" "Rust" "Java") - languages=$(gum choose "${AVAILABLE_LANGUAGES[@]}" --no-limit --height 10 --header "Select programming languages") + AVAILABLE_LANGUAGES=("Ruby on Rails" "Node.js" "Go" "PHP" "Python" "Elixir" "Rust" "Java") + languages=$(gum choose "${AVAILABLE_LANGUAGES[@]}" --no-limit --height 10 --header "Select programming languages") fi enable_lazyvim_extras() { - local temp_file=$(mktemp /tmp/omakub.XXXXX) - local extras=("$@") - local jq_extras=$(printf '"%s",' "${extras[@]}") - jq_extras="[${jq_extras%,}]" + local config_file="$HOME/.config/nvim/lazyvim.json" + local extras=("$@") - jq --argjson extras "$jq_extras" '.extras |= (. + $extras | unique)' ~/.config/nvim/lazyvim.json >"$temp_file" && - mv "$temp_file" ~/.config/nvim/lazyvim.json + local tmp_file + tmp_file=$(mktemp /tmp/omakub.XXXXX) + + local extras_json + extras_json=$(printf '"%s",' "${extras[@]}") + extras_json="[${extras_json%,}]" + + jq --argjson extras "$extras_json" '.extras |= (. + $extras | unique)' "$config_file" >"$tmp_file" + mv "$tmp_file" "$config_file" } if [[ -n "$languages" ]]; then - for language in $languages; do - case $language in - Ruby) - mise use --global ruby@3.3 - mise x ruby -- gem install rails --no-document - ;; - Node.js) - mise use --global node@lts - - enable_lazyvim_extras "lazyvim.plugins.extras.lang.typescript" - ;; - Go) - mise use --global go@latest - - enable_lazyvim_extras "lazyvim.plugins.extras.lang.go" - ;; - PHP) - sudo add-apt-repository -y ppa:ondrej/php - sudo apt -y install php8.3 php8.3-{curl,apcu,intl,mbstring,opcache,pgsql,mysql,sqlite3,redis,xml,zip} - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" - php composer-setup.php --quiet && sudo mv composer.phar /usr/local/bin/composer - rm composer-setup.php - - enable_lazyvim_extras "lazyvim.plugins.extras.lang.php" - ;; - Python) - mise use --global python@latest - ;; - Elixir) - mise use --global erlang@latest - mise use --global elixir@latest - mise x elixir -- mix local.hex --force - ;; - Rust) - bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs)" -- -y - ;; - Java) - mise use --global java@latest - ;; - esac - done + for language in $languages; do + case $language in + Ruby) + mise use --global ruby@3.3 + mise x ruby -- gem install rails --no-document + ;; + Node.js) + mise use --global node@lts + + enable_lazyvim_extras "lazyvim.plugins.extras.lang.typescript" + ;; + Go) + mise use --global go@latest + + enable_lazyvim_extras "lazyvim.plugins.extras.lang.go" + ;; + PHP) + sudo add-apt-repository -y ppa:ondrej/php + sudo apt -y install php8.3 php8.3-{curl,apcu,intl,mbstring,opcache,pgsql,mysql,sqlite3,redis,xml,zip} + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" + php composer-setup.php --quiet && sudo mv composer.phar /usr/local/bin/composer + rm composer-setup.php + + enable_lazyvim_extras "lazyvim.plugins.extras.lang.php" + ;; + Python) + mise use --global python@latest + ;; + Elixir) + mise use --global erlang@latest + mise use --global elixir@latest + mise x elixir -- mix local.hex --force + ;; + Rust) + bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs)" -- -y + ;; + Java) + mise use --global java@latest + ;; + esac + done fi From 6ba5e0b919700b192b647a556ee96abd592b1475 Mon Sep 17 00:00:00 2001 From: Tony Messias Date: Wed, 5 Feb 2025 11:52:49 -0300 Subject: [PATCH 5/6] Use a in-place file editing trick instead of relying on a tmp file --- install/terminal/select-dev-language.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/install/terminal/select-dev-language.sh b/install/terminal/select-dev-language.sh index 5d48f417..7750c180 100644 --- a/install/terminal/select-dev-language.sh +++ b/install/terminal/select-dev-language.sh @@ -10,15 +10,12 @@ enable_lazyvim_extras() { local config_file="$HOME/.config/nvim/lazyvim.json" local extras=("$@") - local tmp_file - tmp_file=$(mktemp /tmp/omakub.XXXXX) - local extras_json extras_json=$(printf '"%s",' "${extras[@]}") extras_json="[${extras_json%,}]" - jq --argjson extras "$extras_json" '.extras |= (. + $extras | unique)' "$config_file" >"$tmp_file" - mv "$tmp_file" "$config_file" + # This is cheating to mimic an in-place editing of files (without a tmp file)... + { rm "$config_file" && jq --argjson extras "$extras_json" '.extras |= (. + $extras | unique)' >"$config_file" } <"$config_file" } if [[ -n "$languages" ]]; then From 47f627e5fd104307ca83099d68cdd65d36b60508 Mon Sep 17 00:00:00 2001 From: Tony Messias Date: Wed, 5 Feb 2025 12:02:00 -0300 Subject: [PATCH 6/6] Fix missing a semicolon --- install/terminal/select-dev-language.sh | 78 ++++++++++++------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/install/terminal/select-dev-language.sh b/install/terminal/select-dev-language.sh index de30b180..66a7b1f3 100644 --- a/install/terminal/select-dev-language.sh +++ b/install/terminal/select-dev-language.sh @@ -15,46 +15,46 @@ enable_lazyvim_extras() { extras_json="[${extras_json%,}]" # This is cheating to mimic an in-place editing of files (without a tmp file)... - { rm "$config_file" && jq --argjson extras "$extras_json" '.extras |= (. + $extras | unique)' >"$config_file" } <"$config_file" + { rm "$config_file" && jq --argjson extras "$extras_json" '.extras |= (. + $extras | unique)' >"$config_file"; } <"$config_file" } if [[ -n "$languages" ]]; then - for language in $languages; do - case $language in - Ruby) - mise use --global ruby@3.4 - mise x ruby -- gem install rails --no-document - ;; - Node.js) - mise use --global node@lts - enable_lazyvim_extras "lazyvim.plugins.extras.lang.typescript" - ;; - Go) - mise use --global go@latest - enable_lazyvim_extras "lazyvim.plugins.extras.lang.go" - ;; - PHP) - sudo add-apt-repository -y ppa:ondrej/php - sudo apt -y install php8.4 php8.4-{curl,apcu,intl,mbstring,opcache,pgsql,mysql,sqlite3,redis,xml,zip} - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" - php composer-setup.php --quiet && sudo mv composer.phar /usr/local/bin/composer - rm composer-setup.php - enable_lazyvim_extras "lazyvim.plugins.extras.lang.php" - ;; - Python) - mise use --global python@latest - ;; - Elixir) - mise use --global erlang@latest - mise use --global elixir@latest - mise x elixir -- mix local.hex --force - ;; - Rust) - bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs)" -- -y - ;; - Java) - mise use --global java@latest - ;; - esac - done + for language in $languages; do + case $language in + Ruby) + mise use --global ruby@3.4 + mise x ruby -- gem install rails --no-document + ;; + Node.js) + mise use --global node@lts + enable_lazyvim_extras "lazyvim.plugins.extras.lang.typescript" + ;; + Go) + mise use --global go@latest + enable_lazyvim_extras "lazyvim.plugins.extras.lang.go" + ;; + PHP) + sudo add-apt-repository -y ppa:ondrej/php + sudo apt -y install php8.4 php8.4-{curl,apcu,intl,mbstring,opcache,pgsql,mysql,sqlite3,redis,xml,zip} + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" + php composer-setup.php --quiet && sudo mv composer.phar /usr/local/bin/composer + rm composer-setup.php + enable_lazyvim_extras "lazyvim.plugins.extras.lang.php" + ;; + Python) + mise use --global python@latest + ;; + Elixir) + mise use --global erlang@latest + mise use --global elixir@latest + mise x elixir -- mix local.hex --force + ;; + Rust) + bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs)" -- -y + ;; + Java) + mise use --global java@latest + ;; + esac + done fi