Skip to content

Instantly share code, notes, and snippets.

View pirafrank's full-sized avatar
⚙️
trying building rusty things for no apparent reason...

Francesco Pira pirafrank

⚙️
trying building rusty things for no apparent reason...
View GitHub Profile
@pirafrank
pirafrank / tasks.json
Created December 18, 2021 02:10
VS Code tasks config for Jekyll
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Serve",
"type": "shell",
"command": "bundle exec jekyll s",
"problemMatcher": []
@pirafrank
pirafrank / run_other_teams.ps1
Created November 19, 2021 17:04
Powershell script to open another instance of Microsoft Teams desktop application. This script runs the app as another user, you need to create another local Windows user before running the script. Check the link the comments to find out how. Tested on Windows 10 and Microsoft Teams v1.4.00.29469 (64-bit, last updated on 11/19/2021)
# Read me:
#
# You need to do some setup before running this script.
# Check the link below.
#
# Run this script as admin in powershell.
# By the way if you run it in a standard powershell it will
# prompt to open a new shell as admin.
#
@pirafrank
pirafrank / checkrun.sh
Created October 18, 2021 13:08
checkrun - a function to get try-catch in bash
function checkrun {
if [ $1 -ne 0 ]; then
echo "$2"
exit 2
fi
}
function test1 {
echo "test1" && \
echo "print 2"
@pirafrank
pirafrank / symlink.ps1
Created February 7, 2021 10:58
PowerShell script to create NTFS symlinks on Windows. It uses UNIX-like args placement.
@pirafrank
pirafrank / ssh-copy-id.ps1
Created February 7, 2021 10:57
ssh-copy-id as Windows PowerShell script. Put it in a folder in your PATH
function print($str) {
Write-Host "$str"
}
if ( $($args.Count) -ne 2 -And $($args.Count) -ne 3 ) {
$scriptName = $MyInvocation.MyCommand.Name
print("Usage: .\$scriptName [args...] pubKeyFile user@host")
exit
}
@pirafrank
pirafrank / docker_vol_dump.sh
Created January 31, 2021 22:50
scripts to dump docker volume to a tar.gz file and import from it
#!/bin/bash
if [ $# -ne 2 ]; then
echo "Usage: ./$0 tar_archive_name volume_name"
exit 1
fi
tararchive="$1"
volname="$2"
BASEDIR="$HOME/docker_vol_exports"
@pirafrank
pirafrank / vim_install.sh
Last active March 18, 2023 12:02
Install vim from source (+python3 +ruby and more) on Ubuntu 20.04 Focal Fossa (GUI options enabled)
#!/bin/bash
# Remove old vim installs
sudo apt-get remove vim vim-runtime gvim vim-tiny \
vim-common vim-gui-common vim-nox gvim
# install vim-gtk deps
sudo apt-get build-dep vim-gtk
# install some more deps
@pirafrank
pirafrank / hetzner.js
Created November 15, 2020 11:00
Scriptable script to list your Hetzner servers in the app and on widgets. Requires iOS 14+ and Scriptable 1.6
// Your Hetzner API token
// Go to Cloud Console > [your project] > Security > API tokens
const token = "PUT_YOUR_TOKEN_HERE" // main
// urls
let listServersUrl = "https://api.hetzner.cloud/v1/servers"
let widget = await createWidget(listServersUrl)
if (config.runsInWidget) {
// The script runs inside a widget, so we pass our instance of ListWidget to be shown inside the widget on the Home Screen.
@pirafrank
pirafrank / setup_java.sh
Created October 31, 2020 19:31
A script to download Oracle JDK (versions from 9 to 11). Licence restrictions apply. Read them on: https://www.oracle.com/downloads/licenses/javase-license1.html#licenseContent
#!/bin/bash
function calculate_url {
curl -sSL $baseurl | \
grep 'linux-x64_bin.tar.gz' | head -n1 | \
grep -E "data-file[=0-9a-zA-Z'//\.%-_]*" -o | \
cut -d"'" -f2 | cut -d'/' -f3- | \
sed s@/otn/@/otn-pub/@g | sed s@^@https://@g
}
@pirafrank
pirafrank / ephemeral
Created October 19, 2020 21:06
an ephemeral text editor in your browser. create a new bookmark and paste the raw content of this gist inside in the url field. enjoy!
data:text/html;base64,PCFET0NUWVBFIGh0bWw+DQo8IS0tDQogIFlvdSBjdXJpb3VzIDpQDQogLS0+DQo8aHRtbCBsYW5nPSJlbiI+DQo8aGVhZD4NCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPg0KICA8dGl0bGU+RXBoZW1lcmFsIFRleHQgRWRpdG9yPC90aXRsZT4NCiAgPHN0eWxlPg0KICAgIGJvZHkgew0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQogICAgfQ0KICAgIC5iZWNvb2wgew0KICAgICAgbGluZS1oZWlnaHQ6MS41Ow0KICAgICAgZm9udC1zaXplOjE4cHg7DQogICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOw0KICAgICAgbWluLWhlaWdodDogMTBlbTsNCiAgICAgIHBhZGRpbmc6IDE1cHg7DQogICAgICBib3JkZXI6IDJweCBzb2xpZCAjMzMzMzMzOw0KICAgICAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgICAgbWFyZ2luLWxlZnQ6IDN2dzsNCiAgICAgIG1hcmdpbi1yaWdodDogM3Z3Ow0KICAgICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgICB9DQogICAgLmZvb3RlciB7DQogICAgICBwYWRkaW5nLXRvcDogMTBweDsNCiAgICAgIGZvbnQtc2l6ZTogMC45ZW07DQogICAgfQ0KICA8L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHk+DQogIDxkaXYgY2xhc3M9InRvcCI+DQogICAgPHA+DQogICAgICBKdXN0IGEgcHJldHRpZXIgPGNvZGU+Y29udGVudGVkaXRhYm