Skip to content

Instantly share code, notes, and snippets.

View exaV's full-sized avatar

Patrick Del Conte exaV

View GitHub Profile
@exaV
exaV / gitclean.sh
Created January 5, 2024 09:49
cleanup git branches that have no remote
# git branch -vv (verbose) marks deleted branches with : gone
git branch -vv | rg gone | fzf -m --bind ctrl-a:select-all | awk '{print $1}' | xargs -I {} git branch -D '{}'
@exaV
exaV / alpine.sh
Last active June 28, 2023 12:51
run Alpine Linux with corporate proxy setup
docker run --rm -it --network=host -e http_proxy="$HTTP_PROXY" -e https_proxy="$HTTPS_PROXY" -v $PWD/corporate_proxy.crt:/usr/local/share/ca-certificates/proxy.crt --entrypoint /bin/sh alpine -c "cat /usr/local/share/ca-certificates/proxy.crt >> /etc/ssl/certs/ca-certificates.crt; /bin/sh"
@exaV
exaV / Webgl2.Readme.md
Last active May 25, 2022 13:22
Kotlin type definitions for Webgl 2

Kotlin type definitions for Webgl 2

Usage:

fun main(){
    val canvas = document.createElement("canvas") as HTMLCanvasElement
    canvas.width = 800
    canvas.height = 600

 val gl = canvas.getContext("webgl2") as WebGL2RenderingContext
@exaV
exaV / gitall.sh
Created December 30, 2021 09:40
run a git command in all subdirectories
# output path to child directories which contain a .git folder
alias findgitdirs='find . -maxdepth 2 -type d -name ".git" | sed -e "s|/.git||"'
gitall(){
# execute the argument as a git command in all (git) subdirectories
# if there are no arguments then print all of the directorries that would be used
if [ "$#" -eq 0 ]; then findgitdirs; return; fi
findgitdirs | xargs -I{} git -C {} "$@"
}
@exaV
exaV / proxy-to-mitm-gnome.sh
Created October 28, 2021 09:37
mitmproxy setup
echo "enable proxy for http/https traffic"
gsettings set org.gnome.system.proxy.http host 'localhost'
gsettings set org.gnome.system.proxy.http port '8089'
gsettings set org.gnome.system.proxy.https host 'localhost'
gsettings set org.gnome.system.proxy.https port '8089'
gsettings set org.gnome.system.proxy mode 'manual'
mitmweb --listen-port 8089 --web-port 8083
gsettings set org.gnome.system.proxy mode 'none'
echo ""
echo "disable proxy"
@exaV
exaV / .ideavimrc
Last active August 15, 2022 14:25
vim and ideavim (https://github.com/JetBrains/ideavim) configuration
source ~/.vimrc
set ideamarks
set ideaput
set showmode
" ideavim plugins
" https://github.com/JetBrains/ideavim/wiki/Emulated-plugins
set NERDTree
set commentary
set argtextobj
@exaV
exaV / RestorableContext.kt
Last active August 7, 2020 17:41
Screeps restorable coroutines
package util.coroutines.restorable
import screeps.api.MutableRecord
import screeps.api.get
import screeps.api.keys
import screeps.api.set
import screeps.utils.unsafe.delete
import kotlin.coroutines.Continuation
import kotlin.coroutines.CoroutineContext
import kotlin.coroutines.intrinsics.COROUTINE_SUSPENDED
@exaV
exaV / docker-grep.sh
Last active August 25, 2020 12:56
A fuzzy wrapper for the docker cli. Execute a docker command for all containers who match a search term. Do something sensible if no command or no search terms are provided.
docker_ps_formatted(){ docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}" }
# dockerg [ARGS] SEARCH
# basically docker ps | grep SEARCH | xargs docker ARGS
# but all args are optional
# e.g. 'dockgerg bank' -> check which services are found; dockgerg logs --tail 15 bank -> log the service
# e.g. 'dockerg start Exited' -> start all containers with status 'Exited'
dockgerg(){
if [ "$#" -eq 0 ]; then docker_ps_formatted; return; fi
SEARCH=${@:$#};
if [ "$#" -eq 1 ]; then docker_ps_formatted | grep $SEARCH; return; fi
@exaV
exaV / README.md
Last active April 28, 2020 10:08
screeps stack trace resolver

Stack trace resolver for screeps

If you run this from the builtin terminal in IntellJ you will get clickable links to the source.

Usage

kotlin resolver.main.kts -- -h

You need the -- to separate the arguments to kotlin from the arguments to the script.

.soutv : print an expression to System.out
ARRAY → System.out.println("\n\n$escapedExpr*:escapeString(expr)$ = " + java.util.Arrays.toString($expr$) + "\n");
NON_VOID → System.out.println("\n\n$escapedExpr*:escapeString(expr)$ = " + $expr$ + "\n");