Skip to content

Instantly share code, notes, and snippets.

View iTrooz's full-sized avatar
💭
CODE

iTrooz

💭
CODE
View GitHub Profile
@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
@iTrooz
iTrooz / main.py
Created July 30, 2024 11:07
pacman package upgrade size verbose
#!/usr/bin/env python
"""
This script shows the individual size changes of upgradable packages in Arch Linux.
You can use it to understand, e.g. why your upgrade size is negative.
"""
import typing
import subprocess
import sys
@iTrooz
iTrooz / FILE.md
Last active November 13, 2024 16:07
Map of Sodium and Lithium forks

This document is about the Minecraft mods Sodium and Lithium, and their forks. These are mods to help performance.

The Sodium stuff

What is it

Sodium optimizes the client rendering pipeline. It does nothing for the server.

Table

@iTrooz
iTrooz / stdout_breakpoint.gdb
Last active July 24, 2024 22:39
Make a breakpoint when a certain text is written to stdout
# Make a breakpoint when a certain text is written to stdout
# Note: only work with C/C++ binaries
set width 0
set height 0
set verbose off
# Modify this to search for a different string
# Case sensitive
set $STR_SEARCH = "hello world"