Skip to content

Instantly share code, notes, and snippets.

@ntrrgc
ntrrgc / get-terminal-background-color.py
Created May 2, 2024 15:33
OSC 10 & 11: Query terminal foreground and background colors
#!/usr/bin/env python3
import os, termios, collections, re
TermAttr = collections.namedtuple("TermAttr",
["iflag", "oflag", "cflag", "lflag", "ispeed", "ospeed", "cc"])
old = TermAttr._make(termios.tcgetattr(0))
new = old._replace(
lflag=old.lflag & ~(termios.ECHO | termios.ICANON)
)
@ntrrgc
ntrrgc / mp4parser.py
Last active December 1, 2022 14:07 — forked from mildsunrise/_migrated.md
🕵️‍♀️ MP4 parser / dissector for the command line
#!/usr/bin/env python3
'''
Code by Alba Mendez, manually copied and pasted, had 8 revisions when copied.
https://gist.github.com/mildsunrise/ffd74730504e4dc44f47fc7528e7bf59
Portable* ISO Base Media File Format dissector / parser.
Usage: ./mp4parser.py <file name>
(*) Needs Python 3.8+
@ntrrgc
ntrrgc / register_path.sh
Created October 14, 2022 17:03
Function to add paths to env vars such as PATH or LD_LIBRARY_PATH without cluttering them
register_path() {
# Usage:
# register_path <env_var_name> <provided_path> [after]
#
# Registers a path in a PATH-like environment variable.
# The provided_path is prepended unless the "after"
# argument is provided, in which case it's appended.
#
# Example:
# register_path LD_LIBRARY_PATH /an/important/path
@ntrrgc
ntrrgc / gen-edit-lists.py
Last active August 30, 2022 23:59
Generate crazy MP4 edit lists to be added to media files for testing.
#!/usr/bin/python3
#
# Generate crazy MP4 edit lists to be added to media files for testing.
#
# 1. Modify the timescales below with the actual values from the MP4 file.
#
# 2. Run the following commands to patch the file with Bento:
#
# # Remove previously existing edit list (optional, only if there is some)
# mp4edit --remove moov/trak/edts original.mp4 patched1.mp4
@ntrrgc
ntrrgc / memdump.py
Created March 2, 2014 17:21
Dumps a process' memory to stdout on Linux
#!/usr/bin/env python
from __future__ import print_function
import sys
import os
import re
import ctypes
import argparse
ulseek = ctypes.cdll['libc.so.6'].lseek
ulseek.restype = ctypes.c_uint64
@ntrrgc
ntrrgc / plot-wpt-compat.py
Created June 10, 2021 13:18
Plots the number of WPT tests passing for a given feature and a set of browsers over time
#!/usr/bin/python3
# Instructions:
# 1. Checkout: https://github.com/Ecosystem-Infra/wpt-results-analysis.git
# 2. cd compat-2021
# 3. Edit main.js like this:
# const CATEGORIES = [
# + 'media-source',
# + 'media',
# ];
# ...
@ntrrgc
ntrrgc / it-promise.js
Created August 24, 2014 16:10
Jasmine ES6 promises
// Quick and dirty ES6 promise testing (because I couldn't find any better)
// MIT License
function makeResolvedPromise(value) {
return new Promise(function(success) {
success(value);
});
}
function makeRejectedPromise(errorValue) {
@ntrrgc
ntrrgc / php-fpm.service
Created March 3, 2014 15:03
php-fpm systemd unit with auto-restart (because php-fpm crashes half the times it's started)
[Unit]
Description=PHP FastCGI Server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/php-fpm.pid
ExecStart=/usr/sbin/php-fpm --fpm-config /etc/php5/fpm/php-fpm.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
@ntrrgc
ntrrgc / backup-nas.sh
Last active April 6, 2020 20:09
My backup script for synology NAS, with safety checks for archival
#!/bin/bash
set -eu
found_not_mounted=0
function check_not_empty() {
local path="$1"
if [ ! -d "$path" ]; then
found_not_mounted=1
echo "ERROR: $path does not exist!"
elif [ ! "$(ls -A "$path")" ]; then
@ntrrgc
ntrrgc / ini_patch
Last active December 4, 2019 12:38
Fork of Ansible's ini_file, which does preserve comments and latter case
#!/usr/bin/python
# -*- coding: utf-8 -*-
# (c) 2014, Juan Luis Boya García <ntrrgc () gmail.com>
# (c) 2012, Jan-Piet Mens <jpmens () gmail.com>
#
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by