Skip to content

Instantly share code, notes, and snippets.

View ephrin's full-sized avatar
🎯
Focusing

Volodymyr Myrza ephrin

🎯
Focusing
  • Vinnytsia/Ukraine
View GitHub Profile
ca_certs:
remove_defaults: false
trusted:
- |
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
@ephrin
ephrin / gist:bf6371f3790c95e998f10f5ba2332b44
Created March 15, 2024 10:48
Grok postfix Datadog rules
queued %{date("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZ"):date} %{notSpace:hostname} %{notSpace:source}/%{notSpace:proc}\[%{integer:op}\]\: %{notSpace:procCode}\: %{data:attr:keyvalue} \(%{data:message}\)
cleaned %{date("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZ"):date} %{notSpace:hostname} %{notSpace:source}/%{notSpace:proc}\[%{integer:op}\]\: %{notSpace:procCode}\: %{data:attr:keyvalue}
daemon %{date("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZ"):date} %{notSpace:hostname} %{notSpace:source}/%{notSpace:proc}\[%{integer:op}\]\:\s+%{data:message}
@ephrin
ephrin / filler.sh
Last active January 24, 2024 16:13
#!/bin/bash
# Directory to fill with files
DIR=$1
# Threshold for free space in KB
THRESHOLD=${2:-104857} # Default is 100MB
# Size of each file in KB
FILESIZE=5120 # 5MB
@ephrin
ephrin / dotenv.sh
Last active December 3, 2023 11:52
eval and substitute from prototype env file
#!/bin/bash
# Default values for source and output files
env_example=".env.example"
env_output=".env"
# Flag to ask for confirmation for each variable (enabled by default)
ask_each_var=1
# Function to display help message
@ephrin
ephrin / traverse.js
Created January 12, 2023 09:13 — forked from sphvn/traverse.js
Recursively traverse object javascript, recurse json js, loop and get key/value pair for JSON
var traverse = function(o, fn) {
for (var i in o) {
fn.apply(this,[i,o[i]]);
if (o[i] !== null && typeof(o[i])=="object") {
traverse(o[i], fn);
}
}
}
// usage
@ephrin
ephrin / mongo-repl-log.js
Created November 16, 2022 14:49
MongoDB Replication Log from mongosh CLI
db.adminCommand( { getLog:'global'} ).log.forEach(x => { var l = JSON.parse(x); if(l.c === "REPL") {console.log(l)}})
type AnyObject = Record<string, unknown>;
export type Join<K, P> = K extends string | number
? P extends string | number
? `${K}${'' extends P ? '' : '.'}${P}`
: never
: never;
export type Prev = [
never,
@ephrin
ephrin / paths.ts
Created July 18, 2022 10:00
Typescript nested object paths
type AnyObject = Record<string, unknown>;
export type Join<K, P> = K extends string | number
? P extends string | number
? `${K}${'' extends P ? '' : '.'}${P}`
: never
: never;
export type Prev = [
never,
@ephrin
ephrin / dow.php
Created May 28, 2022 08:51
calc days of week in month
<?php
function calcDays($daysToCalc, string $firstDay, string $lastDay)
{
$start = new \DateTime($firstDay);
$oneDay = new \DateInterval('P1D');
$end = (new \DateTime($lastDay))->sub($oneDay);
$day = $start;
<?php
function tpl_replace_all(array $data, string $template, string $openDelimiter, string $closeDelimiter): string
{
$d = in_array('/', [$openDelimiter, $closeDelimiter], true) ? '#' : '/';
$do = preg_quote($openDelimiter, $d);
$dc = preg_quote($closeDelimiter, $d);
$pattern = $d.'(?<replace>'.$do.'(?<keys>.+?(?='.$dc.'))'.$dc.')'.$d;