Useful snippets

    Open Webstorm from terminal (Windows + WSL & Mac)

    2023-12-08

    WSL

    .bashrc

    webstorm()
    {
         # /mnt/c/Program\ Files/JetBrains/WebStorm\ 2022.1.2/bin/webstorm64.exe "$1" > /dev/null 2>&1 &!
         /mnt/c/Program\ Files/JetBrains/WebStorm\ 2023.2.5/bin/webstorm64.exe .
    }

    Usage: Run webstorm in terminal

    Mac

    .zshrc

    webstorm() {
    #   open "/Applications/WebStorm.app" .
        open -na "WebStorm.app" --args "$@"
    }

    Usage: Run webstorm . in terminal

    Docs WSL & Mac

    https://www.jetbrains.com/help/webstorm/working-with-the-ide-features-from-command-line.html

    Revert changes introduced in old commit

    2025-08-11

    Reverse apply changes from old commit

    git checkout <commit-hash>
    git log # copy previous commit hash
    git diff <previous-commit-hash> > diff.patch
    git checkout <main-or-up-to-date-branch>
    git apply diff.patch --reverse

    Create new commit that revert last commit

    git revert <last-commit-hash>

    Check if a file exists (pre-push example)

    2026-03-03

    Bash

    Check existence

    lpo() {
      if [[ -f ".git/hooks/pre-push" ]]; then
        echo ".git/hooks/pre-push was found:"
        echo "pre-push is activated"
      else
        if [[ -f ".git/hooks/pre-push.sample" ]]; then
          echo ".git/hooks/pre-push was not found:"
          echo "but .git/hooks/pre-push.sample was found:"
          echo "pre-push is deactivated"
        else
          echo "Hmmmmm"
        fi
      fi
    }

    Nvim edit file

    po() {
      if [[ -f ".git/hooks/pre-push" ]]; then
        echo ".git/hooks/pre-push was found:"
        nvim .git/hooks/pre-push
      else
        if [[ -f ".git/hooks/pre-push.sample" ]]; then
          echo ".git/hooks/pre-push was not found:"
          echo "but .git/hooks/pre-push.sample was found:"
          nvim .git/hooks/pre-push.sample
        else
          echo "Hmmmmm"
        fi
      fi
    }

    Lua nvim edit file

    function file_exists(name)
       local f=io.open(name,"r")
       if f~=nil then io.close(f) return true else return false end
    end
    

    function open_prepush() if file_exists(".git/hooks/pre-push") then vim.cmd("vsplit .git/hooks/pre-push") elseif file_exists(".git/hooks/pre-push.sample") then vim.cmd("vsplit .git/hooks/pre-push.sample") else vim.cmd("echo 'Hmmmmm'") end end

    vim.keymap.set("n", "<leader><leader>po", open_prepush, { desc = "Open pre-push a new split" })