Skip to content

Instantly share code, notes, and snippets.

@PCouaillier
PCouaillier / sysup
Last active August 24, 2022 13:11
simple script to keep a system up to date
#!/usr/bin/env sh
if command -v apt-fast > /dev/null 2>&1
then
sudo apt-fast update && sudo apt-fast upgrade -y
else
if command -v apt > /dev/null 2>&1
then
sudo apt update && sudo apt upgrade -y
fi
@PCouaillier
PCouaillier / fish_prompt.fish
Last active April 24, 2021 11:23
fish prompt base on my-aws to a look like zsh candy shell
function fish_prompt --description 'Write out the prompt'
# Cache exit status
set -l last_status $status
# Just calculate these once, to save a few cycles when displaying the prompt
if not set -q __fish_user
if test (id -u) -eq 0
set -g __fish_user '#'
else
set -g __fish_user '&'
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
({name: player.currentItem.label + '.mpga', source: player.currentItem.source})
const cleanUtf8Regex = str => {
let i = 0;
let res = '';
let code;
while(code = str.charCodeAt(i)) {
res += 0x7E < code && code <= 0xFF ? `\\x{${code.toString(16)}}` : str[i];
i += 1;
}
return res;
}
const notString = s => `^(?:[^${s[0]}]|${s[0]}(?!${s.substring(1)}))*$`;
@PCouaillier
PCouaillier / show_exception_tree.php
Created September 10, 2019 05:42
Show exception tree
<?php
if (!function_exists('interface_exists')) {
die('PHP version too old');
}
$throwables = listThrowableClasses();
$throwablesPerParent = splitInParents($throwables);
printTree($throwablesPerParent);
if (count($throwablesPerParent) !== 0) {
die('ERROR!!!');
[
{
"code": "AED",
"symbol": "د.إ",
"name": "UAE dirham"
},
{
"code": "AFN",
"symbol": "؋",
"name": "Afghan afghani"

npm commands

npm install

npm install save

Save

npm i -S
@PCouaillier
PCouaillier / spy.ts
Last active May 1, 2020 11:32
spy.ts
import {inspect} from 'util';
/**
* This show arguments and output of a function / a method
*
* @param {Function} thisArg
* @param {Function} func
*/
export const spy = <T, A extends any[], R, F extends (this: T, ...args: A) => R>(thisArg: T, func: F): F => {
return function() {