Skip to content

Instantly share code, notes, and snippets.

-- 1. Create a new generic password entry in Keychain Access called "WHATEVER_AnyConnect_VPN" (the name in Keychain access must match that in line 39 below) with your password for the Cisco AnyConnect VPN server.
-- 2. Open this script in Script Editor (both this and the above are in the Applications->Utilities folder) and "Save as.." an Application (.app) with desired name.
-- 3. Open Security & Privacy System Preferences, go to Privacy, Accessibility.
-- 4. Enable the above .app so it can access Accessibility
-- 5. Copy and paste a nice icon on the generic Applescript icon (I used a copy of the default AnyConnect one)
-- 6. Add the new .app to /Users/[yourshortname]/Applications with a shortcut to your Dock
-- 7. Enjoy the fast connection with no need to enter password and increased security of not having a sensitive password stored as plain text
-- 8. Run script again to close connection
-- AnyConnect now refered to as targetApp
@brettvitaz
brettvitaz / csv_reader_wrapper.py
Created October 3, 2015 01:15
Wrapper for csv reader to give len() capabilities. *** Doesn't work as expected. ***
class CsvReaderWrapper(object):
def __init__(self, csv_file, **kwargs):
self._csv_file = csv_file
self._reader = csv.reader(csv_file, **kwargs)
def __len__(self):
pos = self._csv_file.tell()
self._csv_file.seek(0)
items = 0
for items, _ in enumerate(self._reader):
@brettvitaz
brettvitaz / ldap_notation_parser.py
Created October 2, 2015 17:38
Parse and process LDAP search filter statement conditional arguments.
import functools
import re
class LdapNotationParser(object):
def __init__(self, parse_str, arg1_fn=None, arg2_fn=None):
"""
Parse and process LDAP search filter statement conditional arguments.
Optional functions can be applied to either argument in the statement.
Example usage:
@brettvitaz
brettvitaz / short_lived_file_server.py
Last active September 16, 2015 18:38
Start a temporary HTTP to serve a quick file and bail.
import signal
import time
import threading
import BaseHTTPServer
import SimpleHTTPServer
start = time.time()
run_time = 60
@brettvitaz
brettvitaz / prompting_combo_box.py
Last active September 14, 2015 21:13
Combo Box that can match choices as you type. `wxPython` `combobox`
"""
This module is a modified version of a code sample from
http://wiki.wxpython.org/Combo%20Box%20that%20Suggests%20Options
"""
import wx
class CBEvent(object):
normal = 0
ignore = 1
@brettvitaz
brettvitaz / multi_range.py
Last active August 29, 2015 14:27
MultiRange will make complex range sequences from a formatted string.
class MultiRange:
def __init__(self, range_str, **kwargs):
"""
MultiRange return a complex number sequence from a formatted string.
Range formats:
'Start[:Stop[:Step]]' - Start number (or single number), stop number (optional), step value (optional)
Groups are separated by ','.
For example, `MultiRange('1:3,5,7:9')` will result in (1,2,3,5,7,8,9).
Text substitution can be specified by adding a keyword argument of the same name.
@brettvitaz
brettvitaz / build_miner.sh
Last active August 29, 2015 14:06
Minera miner build script
#!/bin/bash
set -u
set -e
LINK_ONLY=0
BUILD_OK=0
MINERA_PATH="/var/www/minera"
BINARY_PATH="$MINERA_PATH/minera-bin"