Skip to content

Instantly share code, notes, and snippets.

@rdgd
rdgd / babashka-version-bump.clj
Last active April 2, 2021 22:16
Babashka version bump utility. Will increment semantic version in pom.xml and added a new structured changelog map to changelog file. File extension added for syntax highlighting, can remove.
#!/usr/bin/env bb
(defn inc-ver
[ver mode]
(let [[major minor bugfix] (map #(Integer. %) (clojure.string/split ver #"\."))
new-ver (case mode
:major [(inc major) 0 0]
:minor [major (inc minor) 0]
:bugfix [major minor (inc bugfix)])]
(clojure.string/join "." new-ver)))
@rdgd
rdgd / install-jdk-macos
Created October 23, 2020 02:34
Install openjdk11 on mac w/ homebrew
brew install openjdk@11
sudo ln -sfn $(brew --prefix)/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
@rdgd
rdgd / select-keys-nested.clj
Created October 21, 2020 21:03
Clojure select keys nested and optionally apply function to values
(defn select-keys-nested
[m addresses]
(reduce (fn [acc [k addr f]]
(assoc acc k ((or f identity) (if (sequential? addr) (get-in m addr) (get m addr))))) {} addresses))
@rdgd
rdgd / new-ubuntu-setup
Created November 11, 2017 13:32
Script to install packages on a fresh Ubuntu instance
#!/usr/bin/env bash
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim
sudo apt-get install tmux
sudo apt-get install git
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
https://github.com/rdgd/dotfiles.git ~/dotfiles
mv ~/dotfiles/.vimrc ~/.vimrc
@rdgd
rdgd / clone_all_repos
Created January 7, 2017 06:27
Clone All GitHub Repos for User
#!/usr/bin/env bash
RES=$(curl https://api.github.com/users/rdgd/repos | grep ssh_url | awk '{ print $2}')
STRIPPED=${RES//"\""}
IFS=', ' read -r -a array <<< $STRIPPED
for element in "${array[@]}"
do
git clone $element
done
@rdgd
rdgd / switcher.css
Created February 12, 2016 23:43
Toggle switch that doesn't require "for" attribute on label (ideal for many dynamically generated rows)
input {
display: none;
}
.capsule {
width: 60px;
height: 30px;
cursor: pointer;
display: inline-block;
position: relative;