Skip to content

Instantly share code, notes, and snippets.

@akomakom
akomakom / find-nexus-local-repos.rb
Last active December 19, 2016 22:58
Nexus 2.x backup helper that finds local repositories and produces an rsync include file or runs a command for each one. See comments and -h for usage.
#!/usr/bin/env ruby
#
# helper for backing up nexus 2 repositories that matter
# Run with -h for help
#
# Finds Nexus repositories that are not group, shadow or proxy
# and either produces an rsync file or runs an arbitrary command for each directory
#
# Examples (you may need to specify -n for all of these examples to specify your nexus installation)
@akomakom
akomakom / russian-phonetic-like-linux.klc
Last active April 16, 2017 20:36 — forked from max630/gist:2872656
Russian phonetic layout for MS Keyboard Layout Creator 1.4 (Windows 7). Layout is the same as the standard Russian-Phonetic keyboard in Ubuntu. (Ч on +, Ю on `, Э on \). Layout Creator 1.4 would not load https://gist.github.com/max630/2872656, so I rebuilt it from scratch.
KBD RU_P "Russian - Phonetic Akom"
COPYRIGHT "(c) 2017 Akom"
COMPANY "Akom"
LOCALENAME "ru-RU"
LOCALEID "00000419"
@akomakom
akomakom / init.gradle
Last active March 29, 2018 15:27 — forked from mosabua/init.gradle
init.gradle file for proxying all repositories with Sonatype Nexus, with blacklisting feature for excluded projects. also adds plugin repository handling and a disable flag
/**
* init.gradle file for development using Nexus as proxy repository
*
* @author Manfred Moser <manfred@simpligility.com
* akom added blacklisting feature to leave certain projects alone.
*/
apply plugin: NexusRepositoryPlugin
class NexusRepositoryPlugin implements Plugin<Gradle> {
@akomakom
akomakom / git_svn_bash_prompt.sh
Last active September 19, 2018 18:15 — forked from woods/git_svn_bash_prompt.sh
Set color bash prompt according to git/svn branch, and return status of last command.
#!/bin/bash
#
# DESCRIPTION:
#
# Set the bash prompt according to:
# * the branch/status of the current git repository
# * the branch of the current subversion repository
# * the return value of the previous command
#
# USAGE:
@akomakom
akomakom / README.md
Last active January 15, 2019 01:03
Bash completion file for tmux using a simple clusters file, autocompletes list names and starts ssh to all matches in a single window with synchronized keyboard input.

What this is

The two bash completion scripts provide two bash completion prefixes:

  • tm or tmuxmulti ("Connect in a split terminal to all hosts in the matched list(s)")
  • tmh or tmuxmultihost ("Tmux Multi by Host", same but for matching against the hostnames rather than list names)

The system-of-record for both of these is a ~/.tmux_clusters file (see below for format).

Installation

Option 1 (static)

@akomakom
akomakom / README.md
Last active November 11, 2019 15:16
barracudavpn <-> systemd-resolve compatibilty script

barracudavpn <-> systemd-resolve compatibilty script

Problem

My corporate Ubuntu laptop is set up with barracudavpn that doesn't understand systemd-resolve.
In its default configuration it simply overwrites /etc/resolv.conf, completely screwing up DNS on my local LAN (and non-work DNS).

Purpose

@akomakom
akomakom / ansible-setup-windows.ps1
Last active December 25, 2020 23:15
Set up windows host for ansible remoting including upgrading powershell and rebooting if necessary (reboots only if PS requires upgrade)
# This script has been tested on Windows server 2008, 2012, 2016 and Windows 10.
# This script can be run from puppet using puppetlabs/powershell:
# exec { 'setup-ansible-remoting':
# command => file("${module_name}/ansible-setup-windows.ps1"),
# provider => powershell,
# logoutput => true,
# }
# To make sure that we can run local scripts. You may need to run this line manually before you can run this script
@akomakom
akomakom / README.md
Last active April 16, 2021 22:31
Automated DVD Rip (then encode) using dvdbackup and ffmpeg, on insert. udev->systemd->dvdrip(script here)->dvdbackup (automatic rip to VOB). Then, when all are ripped, run dvdencode(script here) to compress all VOBS into a new cleanly named hierarchy

What this is

A collection of files to set up the following automation:

  • Activate on insert
  • Rip the DVD to a temporary path (eg /opt/dvd/tmp.XXXXX/NAME-FROM-DVD-ITSELF/VIDEO_TS)
  • Eject

Then a manual step:

  • Review directory names and rename as needed (a lot of DVD disk identifiers are useless)
  • run dvdencode, it will process all of the above to a new hierarchy, example filename: /opt/dvd/encoded/NAME-FROM-DVD-ITSELF/NAME-FROM-DVD-ITSELF-1-of-7.mp4
#!/usr/bin/env python3
from subprocess import check_output
from re import findall, DOTALL, MULTILINE
import psutil
def log(s):
check_output(['logger', '-t', __file__, s])
inputs = findall(r'.*?index: (\d+).*?sink: (\d+).*?application\.process\.id = "(\d+)"',
@akomakom
akomakom / doshutdown
Last active June 28, 2021 14:03
Plugin for apcupsd to prevent low battery shutdown when external DC source is connected
#!/usr/bin/env python
# Prevent shutdown when batteries are not really empty
# installed in /etc/apcupsd/ as 'doshutdown' and 'mainsback' (symlink)
import os
from sys import argv
from subprocess import check_output
from syslog import syslog
threshold=24.3 # If batteries are above this, don't shut down