Skip to content

Instantly share code, notes, and snippets.

@bskiefer
bskiefer / Dockerfile
Created May 3, 2024 20:03
Parse Xdebug traces and produce unique listing of usages. Includes require/include files, functions/methods, used files, and a csv containing every entry.
FROM php:8.2-cli
RUN groupadd -r dev -g 433 && \
useradd -u 431 -r -g dev -s /sbin/nologin -c "Docker image user" dev
WORKDIR /home/dev
COPY trace.php /home/dev/trace.php
COPY entry.sh /home/dev/entry.sh
RUN chmod +x /home/dev/entry.sh
@bskiefer
bskiefer / json-to-php-file.php
Created May 3, 2024 19:48
Convert JSON to PHP array output file syntax
<?php
$source = file_get_contents("readfile.json");
$target = sprintf("<?php\n\nreturn = %s", JSONToPHPArrayConverter::convert($source));
file_put_contents("output.php", $target);
class JSONToPHPArrayConverter
{
/**
@bskiefer
bskiefer / xbrew.sh
Last active April 6, 2023 14:46
Automatically migrate amd64 to arm64 brew packages. Removes packages installed under /usr/local and reinstalls (if necessary) under /opt.
#!/bin/zsh
confirm=1
while getopts c flag; do
case "${flag}" in
c) confirm= ;;
esac
done
relink() {
<?php
declare(strict_types=1);
use Rector\CodeQuality\Rector\Class_\CompleteDynamicPropertiesRector;
use Rector\Config\RectorConfig;
use Rector\Core\ValueObject\PhpVersion;
use Rector\DowngradePhp74\Rector\ArrowFunction\ArrowFunctionToAnonymousFunctionRector;
use Rector\Set\ValueObject\LevelSetList;
use Rector\Set\ValueObject\SetList;
use Rector\Visibility\Rector\ClassMethod\ExplicitPublicClassMethodRector;
@bskiefer
bskiefer / README.md
Last active June 10, 2024 14:50
VSCodium Update Extensions from VS Marketplace

This script will gather the extensions currently installed for VSCodium and update them from marketplace.visualstudio.com automatically.

  • Packages defined under $SKIP are ignored.
  • Old extension folders are removed before the update is installed.

Why?

  • open-vsx.org doesn't get updated very quickly, if at all
  • it's "illegal" to use the VS Marketplace as the extension source in non-M$ products
@bskiefer
bskiefer / .pre-commit-config.yaml
Created April 1, 2022 17:04
pre-commit hooks & config
repos:
- hooks:
- id: trailing-whitespace
- id: check-docstring-first
- id: check-json
- id: pretty-format-json
- id: check-merge-conflict
- id: check-yaml
- id: debug-statements
- id: name-tests-test
@bskiefer
bskiefer / reset-expired-ad-password.ps1
Created February 16, 2022 21:58
Reset Expired AD Password
function Set-PasswordRemotely {
[CmdletBinding(DefaultParameterSetName = 'Secure')]
param(
[Parameter(ParameterSetName = 'Secure', Mandatory)][string] $UserName,
[Parameter(ParameterSetName = 'Secure', Mandatory)][securestring] $OldPassword,
[Parameter(ParameterSetName = 'Secure', Mandatory)][securestring] $NewPassword,
[Parameter(ParameterSetName = 'Secure')][alias('DC', 'Server', 'ComputerName')][string] $DomainController
)
Begin {
$DllImport = @'
@bskiefer
bskiefer / clean_node_vendor_dirs.md
Last active May 18, 2022 17:57
List & delete all node_modules and vendor directories recursively

Output:

293M /Users/name/repos/app1/vendor

504M /Users/name/repos/app1/node_modules

423M /Users/name/repos/app2/node_modules

View folders sizes:

find ~/repos -type d \( -name "vendor" -o -name "node_modules" \) -exec du -sh {} \; -maxdepth 2

Delete folders

find ~/repos -type d ( -name "vendor" -exec du -sh {} ; -o -name "node_modules" -exec du -sh {} ; ) -exec rm -rf {} ; -maxdepth 2

{
"info": {
"_postman_id": "2488776b-8759-4fb7-ba5f-252d41ec5817",
"name": "Tag Renewal",
"description": "### Contents\n- Chains: Full steps to completing a renewal in Gov2Go. All requests are testable and currently check for 2 types of valid schema (generic and step-specific), status code, and no errors.\n- Errors: The tag renewal mock is loaded with error-specific plates that trigger a certain error. These tests parse the error text to confirm the correct error was throw.\n- Translate: Checks translation responses.\n- Tests: General tests to confirm the forms act appropriately when a certain scenario's requirements are met.\n- Schema: Loads the environment with form specific schema.\n\n### Schema\nIf the schema must change, select the appropriate schema request and modify the JSON schema under **Pre-request scripts**. It is best to run the request for your target environment upon initialization.\n\n### Collection Tests\n- Schema\n - set by `pm.environment.set(\"schema-key\", \"address\");` in the pr
{
"info": {
"_postman_id": "2488776b-8759-4fb7-ba5f-252d41ec5817",
"name": "Gov2Go",
"description": "## Getting Started\n\nRun each request under Schema\n> This stores schema for each request type in your variables, which is used for testing.",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Schema",