Skip to content

Instantly share code, notes, and snippets.

@Cilyan
Cilyan / ifearly.py
Created January 7, 2021 19:03
Modification of sphinx.ext.ifconfig to run as a Transform as early as possible. By processing the conditions early and removing the nodes that will not go to the final doctree, the goal is to reduce the amount of unexpected errors and warnings that later transforms may face when processing nodes that are not going to be included anyway.
"""
sphinxcontrib.ifearly
~~~~~~~~~~~~~~~~~~~~~
Provides the ``ifearly`` directive that allows to write documentation
that is included depending on configuration variables.
Usage::
.. ifearly:: releaselevel in ('alpha', 'beta', 'rc')
@Cilyan
Cilyan / 95-mkuki-install.hook
Created December 29, 2020 19:37
mkuki: Make Universal Kernel Image
[Trigger]
Type = File
Operation = Install
Operation = Upgrade
Target = usr/lib/modules/*/vmlinuz
Target = usr/lib/initcpio/*
Target = boot/*.img
Target = boot/vmlinuz-*
Target = usr/lib/systemd/boot/efi/linuxx64.efi.stub
Target = usr/share/systemd/bootctl/splash-arch.bmp
@Cilyan
Cilyan / jail.pl
Last active February 29, 2020 18:39 — forked from wilbowma/jail.pl
A perl script to create nginx chroot in arch linux.
#!/usr/bin/perl
# This script was hastily cobbled together for my own use. It can
# probably break your system. Use at your own risk.
$JAIL = "/srv/http";
$USER = "http";
$GROUP = "http";
$WWW_DIR = "www";
$BIN = "bin"; # "bin" or "sbin"
#include <iostream>
#include "plugins.h"
int main()
{
auto &factory = PluginSystem::PluginFactory::Instance();
auto plugin = factory.GetPlugin("Plugin1");
plugin->DoSomething();
@Cilyan
Cilyan / PKGBUILD
Created January 20, 2016 00:41
PKGBUILD for libreoffice-extension-languagetool-nofr, a package that offers the LanguageTool LibO extension without french registered for compatibility with Grammalecte
# Maintainer: 3ED <krzysztof1987 /at/ gmail /dot/ com>
# Contributor: jtts
pkgname=libreoffice-extension-languagetool-nofr
_pkgname=languagetool
pkgver=3.2
pkgrel=1
pkgdesc="An Open Source style and grammar checker. Will not register for french and can this be installed in parallel to Grammalecte"
arch=('any')
url="http://www.languagetool.org/"
@Cilyan
Cilyan / depgraph.py
Created August 6, 2015 16:31
Simple utility to resolve dependencies between arbitrary (but hashable) objects.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class DependencyGraph(object):
"""
Handle a dependency graph. Using :py:meth:`insert`, you add objects
to the graph and connect them with their dependencies, and the
:py:meth:`resolve` function will yield them back so that any object
comes after all its dependencies.
"""
@Cilyan
Cilyan / recursivedescent.py
Last active August 29, 2015 14:22
Example parser using a stateful lexer and a recursive descent parser. Goal is to parse a C file containing structures, unions and variables (no functions) and some doxygen comments, building an AST. (Originally part of a bigger project.)
# Nodes for the Abstract Syntax Tree
class Node(object):
def __init__(self):
self.children = []
self.parent = None
for attr in self.__attributes__:
setattr(self, attr, None)
def __repr__(self):
main_attr = self.__attributes__[0]
return "<{class_} {attr_name}={attr_value}".format(
@Cilyan
Cilyan / robot.c
Created March 31, 2015 16:28
Strange nested construct of structures
#include <stdio.h>
#include <string.h>
/* gcc -Wall -Werror -std=c11 -pedantic -o robotc robot.c */
struct Robot_st {
int pos_x;
int pos_y;
struct BatteryStatus_st {
int capacity;
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
import timeit
# http://www.gutenberg.org/cache/epub/1597/pg1597.txt
# Public Domain
text = """
Many years ago, there was an Emperor, who was so excessively fond of
import timeit
import itertools
import operator
import random
import sys
import functools
import pprint
DEBUG = False