Skip to content

Instantly share code, notes, and snippets.

View juliyvchirkov's full-sized avatar
🇺🇦
old but not obsolete

Juliy V. Chirkov juliyvchirkov

🇺🇦
old but not obsolete
View GitHub Profile
@juliyvchirkov
juliyvchirkov / README.md
Last active July 12, 2023 01:09
sh: extended implementation of ”YesNoPrompt” shell function, fully POSIX compliant

YesNoPrompt

Extended implementation of ”YesNoPrompt” shell function, fully POSIX compliant

Designed, developed and tested in 2023 by Juliy V. Chirkov juliyvchirkov@gmail.com under the MIT license.

##################################
# shellcheck shell=sh enable=all #
##################################
@juliyvchirkov
juliyvchirkov / getOptionValue.sh
Created October 4, 2022 07:24
bash: long options parser
##
# long option format: --option=value
#
# usage: value="$(getOptionValue option "${@}")"
# script.sh --pidfile=/run/pidfile.pid ➙ pidfile="$(getOptionValue pidfile "${@}")"
##
getOptionValue() {
local option
@juliyvchirkov
juliyvchirkov / oum
Last active December 7, 2021 01:35
bash: /usr/sbin/oum fixes
#!/usr/bin/env bash
# Copyright Atomicorp 2020
# AGPL 3.0
# Modified by Juliy V. Chirkov juliyvchirkov@gmail.com https://juliyvchirkov.github.io/ 12/07/2021
# Globals
VERSION=0.2
OSSEC_HOME=/var/ossec
SERVER=updates.atomicorp.com
@juliyvchirkov
juliyvchirkov / annotation.rst
Last active January 2, 2024 20:45
bash: backup of live kvm machines

Backup of live kvm machines

Note

Work on routine update and annotation in progress

  • apparmor.d - /etc/apparmor.d/local/{usr.sbin.libvirtd,libvirt-qemu,usr.lib.libvirt.virt-aa-helper}, root:root 0644 (-rw-r--r--)
  • kvmbackup.cron - /etc/cron.d/kvmbackup.cron, root:root 0644 (-rw-r--r--)
@juliyvchirkov
juliyvchirkov / string.polyfill.php
Last active April 14, 2024 22:24
php: polyfills of string functions str_starts_with, str_contains and str_ends_with
<?php declare(strict_types = 1);
/**
* Provides polyfills of string functions str_starts_with, str_contains and str_ends_with,
* core functions since PHP 8, along with their multibyte implementations mb_str_starts_with,
* mb_str_contains and mb_str_ends_with
*
* Covers PHP 4 - PHP 7, safe to utilize with PHP 8
*/
/**
@juliyvchirkov
juliyvchirkov / mageRoot.mjs
Last active August 16, 2022 20:36
nodejs, php, bash: Magento 1 / 2 baseDir autodetection
import { realpathSync, existsSync } from 'node:fs'
import { basename, dirname } from 'node:path'
export default (() => {
let mageRoot = dirname(realpathSync(import.meta.url.slice(7)))
while (!(existsSync(`${ mageRoot }/app/Mage.php`) || existsSync(`${ mageRoot }/bin/magento`))) {
if (mageRoot === '/') {
throw new Error(`${ basename(import.meta.url.slice(7)) } should be placed inside Magento project tree`)
}
@juliyvchirkov
juliyvchirkov / __git_ps1.sh
Last active June 23, 2022 03:42
bash: simplified custom function __git_ps1 to display current branch or tag name in git repo
#!/usr/bin/env bash
#
# If one is missing the original *__git_ps1* function from @git/git package, this wrapper can be utilized as
# temporary solution. Just like the original, it prints current branch name like *main*, *dev* etc. or tags
# like *v1.4.0*, or nothing, if current directory is outside of any git tree
#
# @see https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh
#
# Significantly updated 06/18/2022
#
@juliyvchirkov
juliyvchirkov / termTestTruecolor.sh
Last active March 13, 2021 02:14
bash: terminal truecolor test. proof of concept, completely made of pure bash builtins
#!/usr/bin/env bash
#
# Terminal truecolor test
# Proof of concept, completely made of pure bash builtins
#
# Accepts an integer from 14 up to infinity to set the length of test snake
# By default the snake is 88 symbols long
#
# Execute or source termTestTruecolor.sh to export function
#
@juliyvchirkov
juliyvchirkov / apt.sh
Last active May 30, 2022 16:05
bash: apt bootstrap to implement options shortcuts
#!/usr/bin/env bash
#
# Provides shortcuts for apt options
#
# @see https://gist.github.com/juliyvchirkov/7ee6591b9744c36fa9ab73a1ca2ef544#file-quickinstall-rst
case ${1} in
i)
arg1st="install" ;;
ri)
@juliyvchirkov
juliyvchirkov / macos-sudo-nopasswd.sh
Last active August 28, 2023 15:43
bash: sudo without a password on macOS
#!/bin/bash
#
# Enable nopasswd mode for sudo on macOS from the userspace in fast and totally non-interactive way
#
# Type the password last time to apply the new mode and forget it for any console task for ages
# Use the rollback to restore password protection
#
# Developed and tested by https://juliyvchirkov.github.io/ under the MIT license on macOS Big Sur 11.2.0
#
# Get latest version at https://gist.github.com/juliyvchirkov/3ca76582ed6b6a8366c9e7d60644960d