Skip to content

Instantly share code, notes, and snippets.

View fgimian's full-sized avatar

Fotis Gimian fgimian

View GitHub Profile
@fgimian
fgimian / terminal.js
Last active June 16, 2016 22:55
Setting up the Terminal with JavaScript on OS X Yosemite
#!/usr/bin/env osascript -l JavaScript
function run(argv) {
// Obtain the terminal application
terminal = Application('Terminal');
// Set the font
terminal.defaultSettings.fontName = 'Source Code Pro for Powerline';
terminal.defaultSettings.fontSize = 18;
terminal.defaultSettings.fontAntialiasing = true;
@fgimian
fgimian / virtualenvwrapper_autoswitch.sh
Created August 4, 2015 13:42
Automatic virtualenv switching for virtualenvwrapper
# Automatic activation and deactivation of virtualenvs using virtualenvwrapper
# whereby the virtualenv name must match the current directory name
function cd
{
# Perform the regular cd
builtin cd "$@"
# Iterate through the current directory, heading into each parent directory
# until we find a .virtualenv file or land in the top directory (/)
test_directory=$(pwd)
#!/usr/bin/env python
from __future__ import print_function
from glob import glob
import multiprocessing
import os
import signal
import subprocess
import sys
@fgimian
fgimian / satellite.py
Created August 21, 2016 23:35
Red Hat Satellite Dynamic Inventory for Ansible
#!/usr/bin/env python
#
# Red Hat Satellite Dynamic Inventory for Ansible
# Copyright 2016 by Fotis Gimian (MIT License)
#
# Set your inventory to point to this script and ensure the script is
# executable. You'll need an INI file with Satellite details of the following
# style (whereby you may specify one or more Satellite servers):
#
# [satellite]
@fgimian
fgimian / test-ping.sh
Last active November 21, 2016 08:16
A simple little script to run on macOS to test stability of your internet connection
#!/bin/bash
# Set the destination IP or hostname to ping
DESTINATION=8.8.8.9
# Ping the endpoint and write an error to a log file if the ping fails 5 times consecutively
FAILURE_COUNT=0
while true
do
ping -c 1 -t 1 $DESTINATION > /dev/null 2>&1
# Generate a file containing all URLs for Logic Pro X content
curl -s http://audiocontentdownload.apple.com/lp10_ms3_content_2016/logicpro1023.plist | \
grep -B 1 DownloadSize | grep "<string>" | sed -e "s:.*<string>::" -e "s:</string>.*::" | \
sed "s;^;http://audiocontentdownload.apple.com/lp10_ms3_content_2016/;" > logic-pro-x-download-urls-2016.txt
# After generating the output file logic-pro-x-download-urls-2016.txt, I recommend opening it with Firefox
# and using DownloadThemAll to download all the URLs.
# When the downloads are complete, you may automatically install packages as follows
sudo -v
import math
import sys
import time
# Colours
BOLD = '\033[1m'
RED = '\033[91m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
---
# Ensure very detailed checking with no exclusions
strictness: veryhigh
doc-warnings: true
member-warnings: true
test-warnings: true
# Set maximum line length across linters to the agreed length
max-line-length: 100
@fgimian
fgimian / custom_tag_handler.cr
Created May 28, 2018 10:22
The following Crystal code attempts to implement custom YAML tag processing
require "yaml"
# The default representation of null values in Crystal is an empty value which while valid
# (see http://yaml.org/type/null.html) but is less familiar and clear to me, use the string
# "null" instead
struct Nil
def to_yaml(yaml : YAML::Nodes::Builder)
yaml.scalar "null"
end
end
@fgimian
fgimian / slack_delete.rb
Created May 30, 2018 00:39 — forked from jamescmartinez/slack_delete.rb
This Ruby script will bulk remove all Slack files older than 30 days. Just add your API token from https://api.slack.com/web#authentication into the token quotes at the top of the file.
require 'net/http'
require 'json'
require 'uri'
@token = ''
def list_files(days)
params = {
token: @token,
ts_to: (Time.now - days * 24 * 60 * 60).to_i,