I hereby claim:
- I am paulgalow on github.
- I am paulgalow (https://keybase.io/paulgalow) on keybase.
- I have a public key whose fingerprint is FAB2 F3EF EC6C C5D4 A9BF 4AB3 B90D B0E9 29F1 E4C6
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
#!/usr/bin/swift | |
import AppKit | |
func generateMacIcon(dimension: CGFloat, name iconName: String) { | |
// Make sure our maximum rendering size does not exceed 512 px | |
guard dimension <= 512 else { | |
print("Error: Maximum dimension allowed is 512") | |
return |
#!/bin/bash | |
# Get AWS CLI IAM credentials from LastPass CLI | |
# Blog post: https://paulgalow.com/securing-aws-credentials-macos-lastpass | |
# ############################################################################## | |
# Please adjust those properties | |
readonly lastPassEntry="REPLACE-ME" # Name of LastPass entry that stores your IAM credentials | |
readonly lpass="/usr/local/bin/lpass" # Path to LastPass CLI | |
# ############################################################################## |
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
<plist version="1.0"> | |
<dict> | |
<key>PayloadContent</key> | |
<array> | |
<dict> | |
<key>EnterprisePoliciesEnabled</key> | |
<true/> | |
<key>Extensions</key> |
#!/bin/bash | |
# macOS Automator script to rename photos/videos based on creation date | |
# Blog post: https://paulgalow.com/macos-quick-action-rename-photos-videos-timestamp | |
export PATH=/usr/bin:/bin:/usr/sbin:/sbin | |
# Create subfolder to store renamed files | |
createDestination() { | |
readonly destination="$(dirname "$file")/sorted" |
const { parse } = require("url"); | |
function checkHTTP(url) { | |
return new Promise((resolve, reject) => { | |
const { protocol } = parse(url); | |
const lib = protocol === "https:" ? require("https") : require("http"); | |
const request = lib.get(url, response => { | |
console.log(`HTTP Status Code:`, response.statusCode); | |
resolve(response); |
const { createConnection } = require("net"); | |
function checkTCP(host = "1.1.1.1", port = 53) { | |
return new Promise((resolve, reject) => { | |
const client = createConnection({ host, port }, () => { | |
console.log(`TCP connection established on port ${port}`); | |
client.end(); | |
resolve(); | |
}); |
#!/bin/sh | |
readonly installAssistant="$1" | |
# Display error messages and exit script | |
error() { | |
echo "[ERROR] $*" | |
exit 1 | |
} |
🔔 UPDATE |
---|
GFI has released an official statement |
Log4j hotfix against Log4Shell (CVE-2021-44228) for Kerio Connect server instances running on Ubuntu 20.04. Please note that at this point it is unclear to me if Kerio Connect is vulnerable. This is meant as a precaution.
JndiLookup
class from log4j-core-2.5.jar
. I haven't run into any side effects, but be advised this might cause unintended side effects.
cd /opt/kerio/mailserver/javaservices/im/lib
const dotenv = require("dotenv"); | |
const fs = require("fs").promises; | |
const path = require("path"); | |
module.exports = async function processManifest(manifestData) { | |
const stageName = Object.keys(manifestData)[0]; | |
const { outputs } = manifestData[stageName]; | |
const envArray = outputs | |
.map((obj) => Object.values(obj)) | |
.map((arr) => [camelToUpperSnakeCase(arr[0]), arr[1]]); |