Skip to content

Instantly share code, notes, and snippets.

View iTrooz's full-sized avatar
💭
CODE

iTrooz

💭
CODE
View GitHub Profile
// can be replace by std::iter::from_fn(): https://doc.rust-lang.org/std/iter/fn.from_fn.html
struct EitherIterator<A, B, C>
where
A: Iterator<Item = C>,
B: Iterator<Item = C>,
{
either: itertools::Either<A, B>,
}
impl<A, B, C> Iterator for EitherIterator<A, B, C>
@iTrooz
iTrooz / main.go
Created February 8, 2024 13:07
Run C code from Go
package main
/*
#include <stdio.h>
static void foo() {
printf("Hello from C\n");
}
*/
import "C"
@iTrooz
iTrooz / to_tldr.py
Created January 26, 2024 21:24
Check commands that you can add to tldr
#!/usr/bin/env python3
# This script will check for commands that you could most easily contribute to tldr (https://tldr.sh/)
# Run it in the root of the https://github.com/tldr-pages/tldr repository
import os
import sys
def get_used_commands():
used_cmds = {}
for filepath, complex in {"~/.zsh_history": True, "~/.bash_history": False}.items():
with open(os.path.expanduser(filepath), "rb") as file:
@iTrooz
iTrooz / binattrs.py
Created December 12, 2023 12:07
cleaner alternative syntax for python ctypes structures, allowing autocompletion
def binattrs(cls):
cls._fields_ = tuple(cls.__annotations__.items())
return cls
@iTrooz
iTrooz / main.py.php
Created December 4, 2023 21:05
python preprocessor
<?php # The voice in my head told me to. Run with `php main.py.php | python` ?>
def getOS():
<?php
if (PHP_OS == "Linux"){
?>
for line in open("/etc/os-release"):
key, value = line.split("=")
if key == "ID":
distro_id = value
@iTrooz
iTrooz / main.sh
Created November 14, 2023 21:49
bash_conditions
# Everything here prints "OK"
# 1 is true
if (( 1 )); then
echo "OK"
else
echo "NOT OK"
exit 1
fi
@iTrooz
iTrooz / cmd.txt
Created September 19, 2023 16:55
TMate anywhere
# Simple command combination to download + start tmate anywhere
wget https://github.com/tmate-io/tmate/releases/download/2.4.0/tmate-2.4.0-static-linux-amd64.tar.xz -P /tmp && tar -xvf /tmp/tmate-2.4.0-static-linux-amd64.tar.xz -C /tmp && /tmp/tmate-2.4.0-static-linux-amd64/tmate
@iTrooz
iTrooz / kubeenv.sh
Last active September 18, 2023 13:16
kubeenv
function kubeenv() {
DIR=$(realpath ~/.config/kube)
if [ $# -eq 0 ]; then
>&2 echo "$0: Please specify a config file or -l to list them"
return 1
fi
if [[ "$1" = "-l" ]]; then
@iTrooz
iTrooz / infsleep.c
Created June 25, 2023 15:03
Infinite sleep
// Like https://gist.github.com/iTrooz/b0e932fc6e0382b1b90751af979d1aa0 but without stdin, and can't really be stopped from waiting
// CC0 / Public domain
#include<unistd.h>
#include<limits.h>
int main(){
sleep(UINT_MAX);
return 1;
}
@iTrooz
iTrooz / utils.py
Created June 23, 2023 17:24
Auto generate __str__ for a python class, but with properties instead of attributes
"""
With help from:
https://python-forum.io/thread-12462.html
https://stackoverflow.com/a/33800620
"""
import inspect
def auto_str_props(cls):
properties = []