Skip to content

Instantly share code, notes, and snippets.

View mrjk's full-sized avatar

mrjk

  • Montréal
View GitHub Profile
@mrjk
mrjk / cli-app.bash
Last active April 25, 2024 21:33
Command based CLI bash skeleton
#!/bin/bash
# TEMPLATE_VERSION=2024-04-25
# Basic bash template for command/resource based CLI.
# Features:
# * Automatic command discovery and help generation
# * Logging and traces
# * Application dependency checker
# * Support for getopts
# * Return code support
@mrjk
mrjk / cli-basic.bash
Last active March 28, 2024 00:16
A simple template cli for bash
#!/bin/bash
# Utility to discover installed binaries
set -eu
path_list ()
{
tr ':' '\n' <<< "$PATH"
@mrjk
mrjk / cli-app-typer.py
Last active March 2, 2025 15:15
A quite complete example of python CLI Typer boilerplate [python] (Archive)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Version: 08-2024
# Migrated to: https://github.com/mrjk/python_snippets/blob/main/examples/typer/cli-app-typer.py
"""MyApp CLI interface
This CLI provides a similar experience as the git CLI, but in Python with Typer.
@mrjk
mrjk / dip.sh
Last active May 25, 2023 13:16
Docker Scripts
#!/bin/bash
# From: https://gist.github.com/ipedrazas/2c93f6e74737d1f8a791?permalink_comment_id=3704504#gistcomment-3704504
set -eu
function dip() {
local cols='%-13s %-48s %-40s %-80s'
_print_container_info() {
local container_id
@mrjk
mrjk / cli-minimal.bash
Last active December 21, 2023 20:26
Minimal bash cli script
#!/bin/bash
set -eu
# set -x
install_system()
{
apt install python3 py3-pip git
pip install --root-user-action=ignore poetry
}
@mrjk
mrjk / gen_favicon.sh
Created February 14, 2023 18:20
Generate favicon from svg
#!/bin/bash
# Usage example:
# gen_favicon.sh SVG_FILE.svg OUT_FILE.ico
set -eu
# Generate favicon from official logo
convert -density 300 -define icon:auto-resize=256,128,96,64,48,32,16 -background none $1 $2
@mrjk
mrjk / README.md
Created January 19, 2023 05:09
How to tcpdump a docker container interface from host?

How to find which container map on the host

$ docker exec -ti $container cut -d: -f1 /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo
  eth0
  eth1
 eth2
@mrjk
mrjk / merge_dirs
Created December 14, 2022 09:27
Merge two directory and does not overwrite things.
#!/bin/bash
# To install in in: /usr/local/bin/merge_dirs
# Then: chmod +x /usr/local/bin/merge_dirs
set -eu
# Source: https://unix.stackexchange.com/a/155633
# Usage: like mv but: SRC DEST
@mrjk
mrjk / gist:7098e4b882025e777407e2ea8a3b7676
Created November 11, 2022 22:42
poetry-bug-report-broken-pipe
[tool.poetry]
name = "python-project-poetry-template"
version = "0.1.0"
description = "Python Project Poetry Template"
authors = ["mrjk"]
license = "GPLv3"
packages = [
{ include = "myprj"}
]
@mrjk
mrjk / vimrc.local
Last active November 13, 2024 15:43
System wide Debian sane vimrc for devops
" Source: https://gist.github.com/mrjk/1d146a701b201e77279ea4e7c5d075a5
" Last update: 2024/11/13
" Place this in /etc/vim/vimrc.local for debian based distros
" Place this in /etc/vimrc.local for rhel based distros
" Debian specifities
if filereadable("/usr/share/vim/vim80/defaults.vim")
source /usr/share/vim/vim80/defaults.vim
endif
" now set the line that the defaults file is not reloaded afterwards!