Skip to content

Instantly share code, notes, and snippets.

View iTrooz's full-sized avatar
💭
CODE

iTrooz

💭
CODE
View GitHub Profile
@iTrooz
iTrooz / loadenv
Last active April 12, 2025 23:52
Execute a command with environment set from .env
#!/bin/sh
# Source: https://gist.github.com/iTrooz/4caeaf2f26c5d4a1ee06f33917cd6fa7
# Syntax: loadenv <command> [args]
if [ -f .env ]
then
while IFS= read -r line || [ -n "$line" ]; do
var="${line%%#*}"
[[ -n "$var" ]] && eval "export $var" # Eval is needed for quoted values
done < .env
@iTrooz
iTrooz / bad.swift
Last active April 4, 2025 10:40
Swift is bad
// wdym structs and classes have different assignment semantics, and it still persists with protocols ??
protocol P {
var data: Int { get set }
}
struct A: P {
var data = 0
}
@iTrooz
iTrooz / iceandfire-common.toml
Created March 8, 2025 22:19
IceAndFire 1.20.1 default upstream config
[Generation]
[Generation.Dragon]
#Whether to generate dragon skeletons or not
"Generate Dragon Skeletons" = true
#1 out of this number chance per chunk for generation
#Range: 1 ~ 10000
"Generate Dragon Skeleton Chance" = 300
#1 out of this number chance per chunk for generation
#Range: 1 ~ 10000
@iTrooz
iTrooz / main.py
Created February 12, 2025 20:34
Sort authors in a git repository by total contributed lines (I know it's useless)
import os
import re
output = os.popen('git shortlog -s -n').read()
lines = {}
for line in output.split("\n"):
if not line:
continue
@iTrooz
iTrooz / alwaysctrlc
Created December 7, 2024 16:34
Allows you to always use Ctrl+C on a command
#!/usr/bin/env python3
"""
Allows you to always use Ctrl+C on a command
2 Ctrl+C = SIGTERM
3 Ctrl+C = SIGKILL
"""
import signal
import sys
import datetime
@iTrooz
iTrooz / gdbcmd
Created December 6, 2024 21:39
gdb run command with classic syntax and auto exit if ok
#!/bin/sh
# Auto run command (syntax is `gdbcmd <binary> <args>`)
# Auto exit if the program exits with 0
gdb "$1" \
-ex 'python gdb.events.exited.connect(lambda x : gdb.execute("quit") if x.exit_code == 0 else None)' \
-ex "run ${*:2}"
@iTrooz
iTrooz / main.py
Created November 21, 2024 13:39
Arch list explicitly installed packages that are are depended on by other softwares
#!/usr/bin/env python3
"""
list explicitly installed packages that are are depended on by other softwares
"""
import subprocess
def parse_pacman_output(data: str):
packages = {}
current_package = None
@iTrooz
iTrooz / panel.json
Created August 7, 2024 20:48
Alternative UnifiedMetrics (Minecraft server Prometheus exporter) Grafana panel
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"enable": true,
@iTrooz
iTrooz / swapstats.py
Last active August 9, 2024 00:53
Show swap usage of processes
#!/usr/bin/env python3
"""
Show the swap usage of all processes in the system.
Note: This may not be reliable because of "shared pages". Source: https://www.cyberciti.biz/faq/linux-which-process-is-using-swap/
"""
import os
import sys
import humanize
import psutil
import tabulate
@iTrooz
iTrooz / ssh_udp.py
Last active August 9, 2024 21:29
Utility to setup SSH UDP port forwarding easily
#!/usr/bin/env python3
"""
This script setups the UDP translators in order to enable UDP traffic forwarding over SSH.
-L example usage: `py ssh_udp.py -L 53000:8.8.8.8:53 your_ssh_host` an then `dig @127.0.0.1 -p 53000 google.com` locally
-R example usage: `py ssh_udp.py -R 53000:8.8.8.8:53 your_ssh_host` an then `dig @127.0.0.1 -p 53000 google.com` on the server
Note: I know this code is ugly.
Thanks to https://stackpointer.io/network/ssh-port-forwarding-tcp-udp/365/ for the help
"""
import subprocess
import time