Skip to content

Instantly share code, notes, and snippets.

@avoidik
avoidik / README.md
Created October 20, 2022 06:34
Change Windows known shell folders

List all

$knownFolders = Get-Item 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders'
foreach ($folder in $knownFolders) {
    $props = Get-ItemProperty $folder.PSPath
    foreach ($p in $props.PSObject.Properties) {
        Write-Host "$($p.Name) = $($p.Value)"
    }
}
@avoidik
avoidik / README.md
Last active October 17, 2022 12:40
Share Docker socket via socat

In general this action is extremely insecure (you know what are you doing, right?)

export DEV_USER=jenkins
export DEV_UID=1000
export DEV_GID=1000

socat -d -d UNIX-LISTEN:/home/"${DEV_USER}"/.docker/docker_socket,fork,user="${DEV_UID}",group="${DEV_GID}",mode=777 UNIX-CONNECT:/var/run/docker.sock

export DOCKER_HOST=unix:///home/${DEV_USER}/.docker/docker_socket
@avoidik
avoidik / README.md
Created October 17, 2022 12:22
Git for Windows - Generate self-signed certificate

Newer openssl (>= 1.1.1)

MSYS_NO_PATHCONV=1 openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
  -keyout example.key -out example.crt -subj "/CN=example.com" \
  -addext "subjectAltName=DNS:example.com,DNS:www.example.net,IP:10.0.0.1"

Before 1.1.1

@avoidik
avoidik / u.sh
Last active February 18, 2023 07:10
Updater scripts
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "Error: This script must be run as root"
exit 1
fi
PKGARCH="x86_64-unknown-linux-gnu.tar.gz$" # aarch64-unknown-linux-musl.tar.gz
echo "starship"
DURL="$(curl -s https://api.github.com/repos/starship/starship/releases/latest | jq -r --arg arch $PKGARCH '.assets[] | select(.name|match($arch)) | .browser_download_url')"
@avoidik
avoidik / README.md
Last active July 14, 2023 09:15
Organize Git projects based on purpose

It is be possible to organize Git-cloned projects into folders based on work/personal criteria, for instance one folder could be completely dedicated to personal projects, while the other to work related projects.

We could have these two folders in our case:

  • ~/projects/personal/ - personal projects directory
  • ~/projects/work/ - work projects directory

Let's define configuration with sane defaults for git-cloned repositories outside of these two folders.

@avoidik
avoidik / README.md
Last active October 7, 2022 08:03
Run AWS metadata service locally

Run AWS metadata service locally

The idea is to run AWS metadata service on a local machine and redirect all link-local level requests to a mock server, which will provide real IAM credentials.

Install amazon-ec2-metadata-mock

curl -fsSL ec2-metadata-mock https://github.com/aws/amazon-ec2-metadata-mock/releases/download/v1.11.2/ec2-metadata-mock-`uname | tr '[:upper:]' '[:lower:]'`-`dpkg --print-architecture` -o /usr/local/bin/ec2-metadata-mock
chmod +x /usr/local/bin/ec2-metadata-mock
@avoidik
avoidik / remove-disabled-snaps.sh
Created September 21, 2022 15:09
Remove disabled snaps
#!/bin/bash
# https://gitlab.com/snippets/1927120
set -eu -o pipefail
if (( $# )) ; then
cat << HELP
Looks for inactive snaps and removes them.
There are no command line options.
@avoidik
avoidik / README.md
Last active September 18, 2022 09:33
Host-only network in Qemu
@avoidik
avoidik / README.md
Last active September 16, 2022 09:09
Configure Linux kernel to always scan disks

Update initramfs image with required binaries (if fsk for some reason isn't there)

tee /etc/initramfs-tools/hooks/e2fsck.sh <<'EOF' >/dev/null
#!/bin/sh
. /usr/share/initramfs-tools/hook-functions
copy_exec /sbin/e2fsck /sbin
copy_exec /sbin/fsck /sbin
copy_exec /sbin/fsck.ext2 /sbin
copy_exec /sbin/fsck.ext4 /sbin
@avoidik
avoidik / README.md
Last active December 29, 2022 17:30
Install Step CLI & CA on Raspberry PI

Install Step CLI & CA on Raspberry PI

Steps

Install Step CLI

Download

curl -fsSLO https://github.com/smallstep/cli/releases/download/v0.23.0/step_linux_0.23.0_armv7.tar.gz