├── .gitignore ├── ExpansionFile ├── Gemfile ├── README.md ├── automation ├── autohotkey │ ├── .gitignore │ ├── ahk_start.mustache │ └── ahk_stop ├── brew │ ├── brew_configure_base_packages │ ├── brew_install │ └── brew_uninstall ├── cygwin │ └── cyg-wrapper.sh ├── diffmerge_tool │ └── diffmerge ├── divvy │ ├── .gitignore │ └── divvy.mustache ├── git │ ├── .gitignore │ ├── beyondcompare-diff.sh.mustache │ ├── beyondcompare-merge.sh.mustache │ ├── githelperfunctions.sh.mustache │ └── gitrb │ │ ├── gitrb │ │ ├── lib │ │ └── git │ │ │ ├── auto_crlf_toggler.rb │ │ │ ├── commands.rb │ │ │ └── runner.rb │ │ └── spec │ │ ├── git │ │ └── git_auto_crlf_toggler_spec.rb │ │ └── spec_helper.rb ├── install │ ├── create_sym_links │ └── install_utilities.sh ├── keychain │ └── get_keychain_password ├── misc │ ├── apache │ ├── buy_music │ ├── devtools_sync │ ├── gems.txt │ ├── great_podrunner_tracks │ ├── hide_desktop_items.sh │ ├── mirror │ ├── open_browser.sh │ ├── scratch │ ├── start_mongo │ ├── toggle_git_autocrlf │ ├── tree │ ├── uninstall_all_gems │ ├── uninstall_all_gems.rb │ ├── uninstall_utilities │ └── yumlme ├── mysql │ ├── mysql_start.sh │ └── setup.sh ├── notmuch │ └── mutt_notmuch ├── osx │ └── airport ├── perl │ └── ack ├── rvm │ ├── rvm_configure_vim_irb │ ├── rvm_gem_for_all_rubies │ ├── rvm_install │ ├── rvm_install_some_rubies │ ├── rvm_uninstall_all_gemsets │ ├── rvm_util.rb │ ├── rvmgsc │ └── rvmgsd ├── tasks │ └── tasks ├── testing │ ├── rproofs │ └── rspecs ├── timers │ ├── .gitignore │ ├── pomodoro │ ├── timer.erb │ ├── timerh │ └── timerm ├── vim │ ├── .gitignore │ ├── jp_cygwin_vim_build.sh │ ├── twitvim.mustache │ ├── update_vim_plugins │ └── vim_plugin_update.erb ├── visual_studio │ ├── .gitignore │ ├── 2010.sln │ ├── launch_vs_solution.mustache │ ├── sln.mustache │ └── vssol └── vmware │ └── startvm ├── create_sym_links ├── dev_run ├── expansions ├── config_cygwin ├── config_linux ├── config_mingw ├── config_osx ├── cygwin.rb ├── linux.rb ├── mingw.rb ├── osx.rb ├── task_purge_items.rb ├── task_register_executable_paths.rb └── task_shared_copy.rb ├── jp.settings ├── jp_cygwin.settings ├── mac ├── apps_to_install_on_new_image.markdown ├── brew │ └── Formula │ │ └── macvim.rb ├── filezilla │ └── filezilla_site_manager_entries.xml ├── services ├── spec_growl │ ├── green.jpg │ ├── growl.rb │ ├── pending.jpg │ └── red.jpg ├── ssh.plist └── terminal │ ├── Basic.terminal │ └── developwithpassion.terminal ├── msys_kick_off ├── osx_or_cygwin_finish ├── osx_or_cygwin_kick_off ├── remapping_advantage_pro ├── settings_file ├── settings_template ├── setup_osx.md ├── setup_windows_cygwin.md ├── setup_windows_msys.md ├── shared ├── dotfiles │ ├── bash │ │ ├── .gitignore │ │ ├── bash_aliases.cygwin.dotfile.mustache │ │ ├── bash_aliases.dotfile.mustache │ │ ├── bash_aliases.mingw.dotfile.mustache │ │ ├── bash_aliases.osx.dotfile.mustache │ │ ├── bash_aliases.shared.dotfile.mustache │ │ ├── bash_aliases.windows.osx.dotfile.mustache │ │ ├── bash_aliases_coreutils.dotfile.mustache │ │ ├── bash_colors.dotfile.mustache │ │ ├── bash_config.dotfile.mustache │ │ ├── bash_env.dotfile.mustache │ │ ├── bash_git.dotfile.mustache │ │ ├── bash_git_completion.dotfile.mustache │ │ ├── bash_profile.dotfile.mustache │ │ ├── bash_source_rvm.dotfile.mustache │ │ ├── bash_ssh.dotfile.mustache │ │ ├── bashrc.dotfile.mustache │ │ ├── dircolors.dotfile.mustache │ │ └── inputrc.dotfile.mustache │ ├── git │ │ ├── .gitignore │ │ └── gitconfig.dotfile.mustache │ ├── gnupg │ │ └── .gnupg │ │ │ ├── gpg-agent.conf │ │ │ └── gpg.conf │ ├── goobook │ │ ├── .gitignore │ │ └── goobookrc.dotfile.mustache │ ├── msmtp │ │ ├── .gitignore │ │ └── msmtprc.dotfile.mustache │ ├── mutt │ │ ├── .gitignore │ │ ├── .mutt │ │ │ ├── alias │ │ │ ├── aliases_courses │ │ │ ├── equifax_gmail.cert │ │ │ ├── gpg.rc │ │ │ ├── mailcap │ │ │ └── view_mail_attachment.rb │ │ ├── muttrc.dotfile.template │ │ ├── muttrc_jp_developwithpassion.dotfile.mustache │ │ └── muttrc_jp_developwithpassion.dotfile.settings │ ├── notmuch │ │ ├── .gitignore │ │ └── notmuch-config.dotfile.mustache │ ├── offlineimap │ │ ├── .gitignore │ │ ├── offlineimap.py │ │ └── offlineimaprc.dotfile.mustache │ ├── ruby │ │ └── .irbrc │ ├── rvm │ │ ├── .gitignore │ │ ├── global.gems │ │ └── rvmrc.dotfile.mustache │ ├── tmux │ │ ├── .gitignore │ │ └── tmux.conf.dotfile.mustache │ ├── urlview │ │ ├── .gitignore │ │ └── urlview.dotfile.mustache │ ├── vim │ │ ├── .gitignore │ │ ├── .vim_runtime │ │ │ ├── .VimballRecord │ │ │ ├── .gitignore │ │ │ ├── .netrwhist │ │ │ ├── autoload │ │ │ │ └── pathogen.vim │ │ │ ├── bundle │ │ │ │ ├── .gitignore │ │ │ │ └── developwithpassion │ │ │ │ │ ├── autoload │ │ │ │ │ └── mailcomplete.vim │ │ │ │ │ ├── ftplugin │ │ │ │ │ └── mail.vim │ │ │ │ │ ├── plugin │ │ │ │ │ └── csutils.vim │ │ │ │ │ └── snippets │ │ │ │ │ ├── cs.snippets │ │ │ │ │ ├── markdown.snippets │ │ │ │ │ └── ruby.snippets │ │ │ ├── dictionary.vim │ │ │ ├── install.sh │ │ │ ├── remaps.vim │ │ │ ├── vimrc.erb │ │ │ └── wordlist.vim.erb │ │ └── vimrc.dotfile.mustache │ ├── vimperator │ │ ├── .gitignore │ │ └── vimperatorrc.dotfile.mustache │ └── zsh │ │ ├── .gitignore │ │ ├── .zsh │ │ └── func │ │ │ ├── prompt_wunjo_setup │ │ │ └── zgitinit │ │ ├── zshenv.dotfile.mustache │ │ └── zshrc.dotfile.mustache ├── extra_fonts │ ├── droid_fonts │ │ ├── Ahem.ttf │ │ ├── Android.mk │ │ ├── DroidSans-Bold.ttf │ │ ├── DroidSans.ttf │ │ ├── DroidSansFallback.ttf │ │ ├── DroidSansJapanese.ttf │ │ ├── DroidSansMono.ttf │ │ ├── DroidSerif-Bold.ttf │ │ ├── DroidSerif-BoldItalic.ttf │ │ ├── DroidSerif-Italic.ttf │ │ ├── DroidSerif-Regular.ttf │ │ ├── MODULE_LICENSE_APACHE2 │ │ ├── NOTICE │ │ ├── README.txt │ │ └── fonts.xml │ ├── envy │ │ ├── Envy Code R Bold.ttf │ │ ├── Envy Code R Command Prompt.reg │ │ ├── Envy Code R Italic.ttf │ │ ├── Envy Code R VS Italic-as-bold.ttf │ │ ├── Envy Code R VS.ttf │ │ └── Envy Code R.ttf │ ├── ms_fonts │ │ ├── Calibri Bold Italic.ttf │ │ ├── Calibri Bold.ttf │ │ ├── Calibri Italic.ttf │ │ ├── Calibri.ttf │ │ ├── Cambria Bold Italic.ttf │ │ ├── Cambria Bold.ttf │ │ ├── Cambria Italic.ttf │ │ ├── Cambria.ttf │ │ ├── Candara Bold Italic.ttf │ │ ├── Candara Bold.ttf │ │ ├── Candara Italic.ttf │ │ ├── Candara.ttf │ │ ├── Consolas Bold Italic.ttf │ │ ├── Consolas Bold.ttf │ │ ├── Consolas Italic.ttf │ │ ├── Consolas.ttf │ │ ├── Constantia Bold Italic.ttf │ │ ├── Constantia Bold.ttf │ │ ├── Constantia Italic.ttf │ │ ├── Constantia.ttf │ │ ├── Corbel Bold Italic.ttf │ │ ├── Corbel Bold.ttf │ │ ├── Corbel Italic.ttf │ │ └── Corbel.ttf │ └── palmos_windows_font │ │ └── PalmOS-CP1252.FON └── hosts │ ├── .gitignore │ └── hosts.mustache └── windows ├── autohotkey ├── .gitignore ├── merge_footer_001_shared_utility_functions.ahk ├── merge_header_001_header.ahk ├── merge_header_002_shared_variables.ahk.mustache ├── partial_ahk_caps_as_windows_key.ahk ├── partial_ahk_general.ahk ├── partial_ahk_resharper.ahk ├── partial_ahk_spaces_as_underscores.ahk ├── partial_ahk_visual_studio.ahk ├── testnamingmode_16.ico └── testnamingmode_disabled_16.ico ├── console └── console.xml ├── cygwin ├── cygwin.bat └── cygwin_bash.bat ├── divvy └── shortcuts.db ├── mingw ├── etc │ ├── fstab │ └── profile └── msys_jp.bat ├── powershell ├── kill_subversion_files.ps1 ├── powershell_utils.ps1 └── profile.ps1 ├── registry_entries └── disable_lock_workstation.reg ├── resharper ├── UserSettings.xml ├── jp.DotSettings └── templates │ ├── file_templates_developwithpassion_specifications_moq.xml │ ├── file_templates_developwithpassion_specifications_rhino_mocks.xml │ ├── file_templates_general.xml │ ├── file_templates_machine_specifications.xml │ ├── live_templates_developwithpassion_specifications.xml │ ├── live_templates_general.xml │ ├── live_templates_machine_specifications.xml │ ├── live_templates_xunit.xml │ └── surround_templates_general.xml ├── scripts └── prep_machine.ps1 ├── utils_contents ├── viemu └── _viemurc └── visual_studio ├── 2012_developwithpassion_vs2010.vssettings ├── 2012_developwithpassion_vs2012.vssettings ├── 2012_march_7_developwithpassion_vs_2010.vssettings ├── developwithpassion_presentation_vs2010.vssettings └── developwithpassion_vs_2010.vssettings /.gitignore: -------------------------------------------------------------------------------- 1 | _Re[sS]harper* 2 | *.BACKUP* 3 | *.BASE* 4 | *.LOCAL* 5 | *.REMOTE* 6 | tags 7 | .DS_Store 8 | .bash_history 9 | *.orig 10 | Gemfile.lock 11 | *.swp 12 | CurrentSettings.vssettings 13 | conv_* 14 | .vikingrc 15 | .rvmrc 16 | .ruby-version 17 | .ruby-gemset 18 | *_ap*s* 19 | 20 | -------------------------------------------------------------------------------- /ExpansionFile: -------------------------------------------------------------------------------- 1 | expand do 2 | bundle_folder = %w[shared dotfiles vim .vim_runtime bundle].as_glob_pattern 3 | 4 | FileUtils.mkdir bundle_folder unless Dir.exist?(bundle_folder) 5 | 6 | log "The current platform is #{RUBY_PLATFORM}" 7 | platform = 'osx' if /dar/ =~ RUBY_PLATFORM 8 | platform = 'mingw' if /ming/ =~ RUBY_PLATFORM 9 | platform = 'cygwin' if /cyg/ =~ RUBY_PLATFORM 10 | platform = 'linux' if /linux/ =~ RUBY_PLATFORM 11 | 12 | configs = { 13 | :core => 14 | { 15 | :home => ENV["HOME"] , 16 | :devtools_root => File.expand_path(File.dirname(__FILE__)) 17 | } 18 | } 19 | configatron.configure_from_hash configs 20 | platform_config_file = "expansions/config_#{platform}" 21 | log "Loading config file #{platform_config_file}" 22 | load "#{platform_config_file}" 23 | user = File.basename(`whoami`.chomp) 24 | 25 | load "#{user}.settings" 26 | 27 | look_for_templates_in "**/*.{erb,mustache}" 28 | 29 | glob("expansions/**/task*.rb"){|file| load file} 30 | load "expansions/#{platform}.rb" 31 | 32 | cleanup do 33 | glob([configatron.core.home,"*.dotfile*"].as_glob_pattern){|item| log "Removing #{item}";FileUtils.rm_f(item)} 34 | end 35 | end 36 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'http://rubygems.org' 2 | 3 | gem 'bundler','>= 0.9.26' 4 | gem 'expansions' 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ##Overview 2 | 3 | This repository contains the majority of the files that I use to customize all aspects of the different programming related environments that I in on both osx and windows. 4 | 5 | The repository consists of mainly the following: 6 | 7 | * A set of automation scripts that can be modified and added to as needed. 8 | * A set of dotfiles that I have run successfully on: 9 | * Ubuntu 10 | * OSX 11 | * Windows (Cygwin/Msys) 12 | * Templates for the files that will be transformed to run on the differing platforms. 13 | * A small set of expansion scripts run using [expansions](http://github.com/developwithpassion/expansions). 14 | 15 | ##Cautionary Note 16 | 17 | * Some of the scripts are obviously tuned to work according to a flow that works well for me. Even though some work has been done to allow these scripts to be portable and usable by others. I apologize in advance for the "assumptions" that are made about how the system is setup (particularly for windows users). A lot of the configuration scripts attempt to isolate those changes, but there may be areas that I missed. Since these scripts were 18 | initially written just for myself, there may still be a couple of areas where some of the assumptions about how the system is configured cause the scripts to fail. See these scripts as a good starting point for you to be able to support cross platform environment setup from a single set of scripts, dotfiles etc. 19 | 20 | ##Preparation 21 | 22 | * Even though it is not required, to not have to fuss too much with the settings, create the following folder structure under your home folder named: 23 | * repositories/developwithpassion 24 | * Navigate to the folder you created above and make a clone of this repository (keep the devtools name). Feel free to fork the repository before you make a clone if you would like to send me pull requests. 25 | 26 | ##Once you have the folder cloned continue with the following readme's, specific to the environment you are using: 27 | * [OSX](http://github.com/developwithpassion/devtools/blob/master/setup_osx.md) 28 | * [MSys On Windows](http://github.com/developwithpassion/devtools/blob/master/setup_windows_msys.md) 29 | * [Cygwin On Windows](http://github.com/developwithpassion/devtools/blob/master/setup_windows_cygwin.md) 30 | 31 | ##Contributing 32 | 33 | As always, feel free to fork and make modifications to the scripts etc. If you add something you find useful, please feel free to send me a pull request. 34 | 35 | [Develop With Passion®](http://www.developwithpassion.com) 36 | -------------------------------------------------------------------------------- /automation/autohotkey/.gitignore: -------------------------------------------------------------------------------- 1 | ahk_start 2 | -------------------------------------------------------------------------------- /automation/autohotkey/ahk_start.mustache: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | {{# core.is_windows }} 4 | . {{{core.devtools_root}}}/windows/autohotkey/launch_ahk 5 | {{/core.is_windows }} 6 | 7 | -------------------------------------------------------------------------------- /automation/autohotkey/ahk_stop: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require 'win32ole' 4 | puts "Stopping processes" 5 | wmi = WIN32OLE.connect("winmgmts://") 6 | 7 | processes = wmi.ExecQuery("select * from win32_process") 8 | 9 | match = /AutoHotkey/ 10 | processes.each do|process| 11 | `taskkill /PID:#{process.ProcessID}` if match =~ process.Name 12 | end 13 | -------------------------------------------------------------------------------- /automation/brew/brew_configure_base_packages: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | %w[git 4 | coreutils 5 | ctags 6 | freetds 7 | gdbm 8 | growlnotify 9 | ircii 10 | libevent 11 | macvim 12 | neon 13 | node 14 | pkg-config 15 | readline 16 | reattach-to-user-namespace 17 | tmux 18 | zsh 19 | ].each{|item| system("brew install #{item}")} 20 | 21 | 22 | -------------------------------------------------------------------------------- /automation/brew/brew_install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ ! -x /usr/local/Cellar ]; then 4 | echo "Installing Brew" 5 | ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)" 6 | fi 7 | 8 | -------------------------------------------------------------------------------- /automation/brew/brew_uninstall: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Just copy and paste the lines below (all at once, it won't work line by line!) 4 | # MAKE SURE YOU ARE HAPPY WITH WHAT IT DOES FIRST! THERE IS NO WARRANTY! 5 | 6 | function abort { 7 | echo "$1" 8 | exit 1 9 | } 10 | 11 | set -e 12 | 13 | /usr/bin/which -s git || abort "brew install git first!" 14 | test -d /usr/local/.git || abort "brew update first!" 15 | 16 | cd `brew --prefix` 17 | git checkout master 18 | git ls-files -z | pbcopy 19 | rm -rf Cellar 20 | bin/brew prune 21 | pbpaste | xargs -0 rm 22 | rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions 23 | test -d Library/LinkedKegs && rm -r Library/LinkedKegs 24 | rmdir -p bin Library share/man/man1 2> /dev/null 25 | rm -rf .git 26 | rm -rf ~/Library/Caches/Homebrew 27 | rm -rf ~/Library/Logs/Homebrew 28 | rm -rf /Library/Caches/Homebrew 29 | -------------------------------------------------------------------------------- /automation/cygwin/cyg-wrapper.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/automation/cygwin/cyg-wrapper.sh -------------------------------------------------------------------------------- /automation/diffmerge_tool/diffmerge: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ## A little script to make it easier to launch DiffMerge from the command line. 3 | ## Install this script into a folder in your path, such as /usr/bin or /usr/local/bin. 4 | ## 5 | ## Version 3.3.0.1001 6 | ## Copyright (C) 2003-2009 SourceGear LLC. All Rights Reserved. 7 | ############################################################################## 8 | 9 | ## Change DIFFMERGE_PATH to point to where you installed DiffMerge 10 | 11 | DIFFMERGE_PATH=/Applications/DiffMerge.app 12 | 13 | ## The actual executable is hidden inside the .app bundle. 14 | 15 | DIFFMERGE_EXE=${DIFFMERGE_PATH}/Contents/MacOS/DiffMerge 16 | 17 | ## Launch DiffMerge using the given command line arguments. Use --help for 18 | ## additional information or see the man page distributed along with this 19 | ## shell script. 20 | 21 | exec ${DIFFMERGE_EXE} --nosplash "$@" 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /automation/divvy/.gitignore: -------------------------------------------------------------------------------- 1 | divvy 2 | -------------------------------------------------------------------------------- /automation/divvy/divvy.mustache: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | {{^core.is_osx }} 4 | start /c/utils/divvy/Divvy.exe 5 | {{/core.is_osx }} 6 | -------------------------------------------------------------------------------- /automation/git/.gitignore: -------------------------------------------------------------------------------- 1 | *.sh 2 | -------------------------------------------------------------------------------- /automation/git/beyondcompare-diff.sh.mustache: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Use BeyondCompare as difftool for git in cygwin. 3 | # git config --global difftool.bc3.cmd "beyondcompare-diff.sh \"\$LOCAL\" \"\$REMOTE\"" 4 | # git difftool -t bc3 branch1..branch2 5 | 6 | # Reference: http://www.tldp.org/LDP/abs/abs-guide.pdf 7 | 8 | library=githelperfunctions.sh 9 | 10 | #[ -f $library ] && . $library 11 | . $library 12 | 13 | echo Launching BeyondCommpare - beyondcompare-diff.sh: 14 | 15 | set_path_vars "$1" "$2" 16 | 17 | echo "$beyondcompare" $localwinpath $remotewinpath 18 | "$beyondcompare" "$localwinpath" "$remotewinpath" 19 | -------------------------------------------------------------------------------- /automation/git/beyondcompare-merge.sh.mustache: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Use SourceGear BeyondCompare as mergetool for git in cygwin. 3 | # git config --global mergetool.bc3.cmd "beyondcompare-merge.sh \"\$LOCAL\" \"\$REMOTE\" \"\$BASE\" \"\$MERGED\"" 4 | # git config --global mergetool.bc3.trustExitCode true 5 | # git mergetool -t bc3 6 | 7 | # Reference: http://www.tldp.org/LDP/abs/abs-guide.pdf 8 | 9 | library=githelperfunctions.sh 10 | 11 | #[ -f $library ] && . $library 12 | . $library 13 | 14 | echo Launching BeyondCompare - beyondcompare-merge.sh: 15 | 16 | set_path_vars "$1" "$2" "$3" "$4" 17 | 18 | echo "$beyondcompare" /lefttitle=Remote /righttitle=Local /centertitle=Base "$localwinpath" "$remotewinpath" "$basewinpath" "$mergedwinpath" 19 | 20 | {{# core.is_cygwin }} 21 | "$beyondcompare" /lefttitle=Remote /righttitle=Local /centertitle=Base "$remotewinpath" "$localwinpath" "$basewinpath" "$mergedwinpath" 22 | {{/core.is_cygwin }} 23 | 24 | {{# core.is_mingw }} 25 | "$beyondcompare" "$remotewinpath" "$localwinpath" "$basewinpath" "$mergedwinpath" 26 | {{/core.is_mingw }} 27 | -------------------------------------------------------------------------------- /automation/git/githelperfunctions.sh.mustache: -------------------------------------------------------------------------------- 1 | # From: http://rubenlaguna.com/wp/2010/08/05/visual-difftool-cygwin-git/ 2 | # From: http://gist.github.com/509918 3 | # Helper functions 4 | 5 | convert_path () { 6 | file=$1 7 | 8 | if [ "$file" == '/dev/null' ] || [ ! -e "$file" ] 9 | then 10 | file="/tmp/nulla" 11 | `echo "">$file` 12 | fi 13 | echo `cygpath -w -a "$file"` 14 | } 15 | 16 | 17 | set_path_vars () { 18 | local=$1 19 | remote=$2 20 | base=$3 21 | merged=$4 22 | 23 | echo ========= Cygwin paths ======= 24 | echo "LOCAL : $local" 25 | echo "REMOTE : $remote" 26 | echo "BASE : $base" 27 | echo "MERGED : $merged" 28 | 29 | {{# core.is_cygwin }} 30 | localwinpath=$(convert_path "$local") 31 | remotewinpath=$(convert_path "$remote") 32 | basewinpath=$(convert_path "$base") 33 | mergedwinpath=$(convert_path "$merged") 34 | {{/core.is_cygwin }} 35 | 36 | {{# core.is_mingw }} 37 | localwinpath=$local 38 | remotewinpath=$remote 39 | basewinpath=$base 40 | mergedwinpath=$merged 41 | {{/core.is_mingw }} 42 | 43 | echo ========= Win paths ======= 44 | echo "LOCAL : $localwinpath" 45 | echo "REMOTE : $remotewinpath" 46 | echo "BASE : $basewinpath" 47 | echo "MERGED : $mergedwinpath" 48 | 49 | caption=`basename "$merged"` 50 | beyondcompare="{{ my.windows.paths.unix_style.beyond_compare3 }}" 51 | } 52 | -------------------------------------------------------------------------------- /automation/git/gitrb/gitrb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | $:.unshift File.join(File.dirname(__FILE__), *%w[lib git]) 4 | 5 | require 'runner' 6 | 7 | %w/INT TERM/.each do |signal| 8 | Signal.trap(signal) do 9 | exit 10 | end 11 | end 12 | 13 | Git::Runner.run(ARGV) 14 | 15 | 16 | -------------------------------------------------------------------------------- /automation/git/gitrb/lib/git/auto_crlf_toggler.rb: -------------------------------------------------------------------------------- 1 | module Git 2 | class AutoCrlfToggler 3 | def initialize(output_file = File.join(ENV["HOME"],".gitconfig")) 4 | @output_file = output_file 5 | end 6 | 7 | def update_setting_to(flag) 8 | contents = File.read(File.join(ENV["HOME"],".gitconfig")) 9 | contents = contents.gsub(/(autocrlf\s*=\s*)(\w*)/,"\\1#{flag}") 10 | File.open(@output_file,'w') do|file| 11 | file.puts contents 12 | end 13 | end 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /automation/git/gitrb/lib/git/commands.rb: -------------------------------------------------------------------------------- 1 | module Git 2 | module Input 3 | extend self 4 | 5 | def pick_item_from(items,prompt) 6 | puts "#{prompt}\n" 7 | 8 | items.each_with_index do |item, index| 9 | puts "#{index + 1} - #{item}" 10 | end 11 | 12 | index = gets.chomp.to_i 13 | 14 | return index == 0 ? "": items[index-1] 15 | end 16 | end 17 | 18 | module Commands 19 | extend self 20 | 21 | def non_master_branches 22 | master_branch_pattern = /(\*.* | master)/ 23 | 24 | branches = run_git_command("branch", true) 25 | branches = branches.split("\n") 26 | branches = branches.select{ |branch| master_branch_pattern !~ branch } 27 | 28 | branches 29 | end 30 | 31 | def delete_all_other_branches 32 | master_branch_pattern = /(\*.* | master)/ 33 | branches = run_git_command("branch", true) 34 | branches = branches.split("\n") 35 | branches = branches.select{ |branch| master_branch_pattern !~ branch } 36 | 37 | branches.each do |branch| 38 | branch_delete branch 39 | end 40 | end 41 | 42 | def choose_branch 43 | Input.pick_item_from(non_master_branches, "Which branch?") 44 | end 45 | 46 | #add and commit everything on the current working branch 47 | def commit 48 | add_all 49 | run_git_command("commit") 50 | end 51 | 52 | def switch(branch_name=choose_branch) 53 | add_all 54 | checkout(branch_name) 55 | end 56 | 57 | #switch to a branch - will create the branch if it does not already exist 58 | def checkout(branch_name=choose_branch) 59 | if branch_exists?(branch_name) 60 | run_git_command("checkout #{branch_name}") 61 | else 62 | run_git_command("checkout -b #{branch_name}") 63 | end 64 | end 65 | 66 | #merge everything from the target branch into the current working branch 67 | def merge(target_branch=choose_branch) 68 | commit 69 | run_git_command("merge #{target_branch}") 70 | end 71 | 72 | #pull all of the changes from the specified remote onto a named local branch 73 | #if a local_branch is not specified it will create a new branch and do the pull 74 | #onto that branch 75 | def pull(remote, remote_branch='master', create_new_branch=false) 76 | commit 77 | create_new_branch ||= false 78 | remote_branch ||= 'master' 79 | local_branch_name = "pull_#{remote}_#{remote_branch}" 80 | checkout(local_branch) if (create_new_branch) 81 | run_git_command("pull --rebase #{remote} #{remote_branch}") 82 | end 83 | 84 | #reset all of the changes on the current working branch 85 | def reset(*args) 86 | run_git_command("reset --hard", false) 87 | run_git_command("clean -d -f #{args.join(' ')}") 88 | end 89 | 90 | #performs a commit, merge, and push to a remote 91 | #if the branch_to_push_from is different that the current working 92 | #branch, it will switch to that branch and first do a merge of 93 | #the current working branch 94 | def push(remote, branch_to_push_from=nil, switch_back_to_working=true) 95 | branch = active_branch 96 | branch_to_push_from ||= active_branch 97 | switch_back_to_working ||= true 98 | commit 99 | if (branch_to_push_from != branch) 100 | checkout(branch_to_push_from) 101 | merge(branch) 102 | end 103 | run_git_command("push #{remote} #{branch_to_push_from}") 104 | checkout(branch) if switch_back_to_working 105 | end 106 | 107 | def active_branch 108 | active_branch_pattern = /\*\s*(.*)\n/ 109 | output = run_git_command("branch", true) 110 | match = active_branch_pattern.match(output) 111 | match[1] 112 | end 113 | 114 | def add_all 115 | run_git_command("add -A") 116 | end 117 | 118 | def run_git_command(command, capture_ouptut = false) 119 | full_command = "git #{command}" 120 | 121 | return `#{full_command}` if (capture_ouptut) 122 | 123 | system(full_command) 124 | end 125 | 126 | def branch_delete(branch_name=choose_branch) 127 | run_git_command("branch -D #{branch_name}") 128 | end 129 | 130 | 131 | def branch_exists?(branch_name) 132 | branch_pattern = /#{branch_name}/ 133 | output = run_git_command("branch", true) 134 | not (branch_pattern =~ output).nil? 135 | end 136 | end 137 | end 138 | -------------------------------------------------------------------------------- /automation/git/gitrb/lib/git/runner.rb: -------------------------------------------------------------------------------- 1 | require 'commands' 2 | 3 | module Git 4 | module Runner 5 | extend self 6 | 7 | def run(args) 8 | command = args.shift 9 | Commands.send(command, *args) 10 | end 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /automation/git/gitrb/spec/git/git_auto_crlf_toggler_spec.rb: -------------------------------------------------------------------------------- 1 | require File.join(File.expand_path(File.dirname(__FILE__)),%w[.. spec_helper]) 2 | 3 | require 'auto_crlf_toggler' 4 | 5 | module Git 6 | describe AutoCrlfToggler,"when updating the git config autocrlf setting in the configuration" do 7 | 8 | BLAH_CONFIG = "blah.config" 9 | 10 | before(:each) do 11 | @match = /(autocrlf\s*=\s*)(\w*)/ 12 | @crlf_toggler = AutoCrlfToggler.new(BLAH_CONFIG) 13 | @original = read_file_setting(File.join(ENV["HOME"],".gitconfig")) 14 | 15 | because 16 | end 17 | 18 | after(:each) do 19 | File.delete(BLAH_CONFIG) 20 | end 21 | 22 | def read_file_setting(file) 23 | return @match.match(File.read(file))[2] 24 | end 25 | 26 | def because 27 | @crlf_toggler.update_setting_to("false") 28 | end 29 | 30 | it "should change the settings in the output config file" do 31 | read_file_setting(BLAH_CONFIG).should == "false" 32 | end 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /automation/git/gitrb/spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | require 'date' 2 | $:.unshift File.join(File.dirname(__FILE__),%w[.. bin]) 3 | 4 | Dir.chdir(File.join(File.dirname(__FILE__),%w[.. lib])) do 5 | Dir.glob("*").each do |lib| 6 | $:.unshift File.expand_path(lib) 7 | end 8 | end 9 | 10 | RSpec.configure do |config| 11 | config.mock_with :rr 12 | end 13 | 14 | module RSpec 15 | Matchers.define :start_with do|start_of_string| 16 | match do|string_element| 17 | string_element.start_with?(start_of_string).should be_true 18 | end 19 | end 20 | 21 | Matchers.define :end_with do|end_of_string| 22 | match do|string_element| 23 | string_element.end_with?(end_of_string).should be_true 24 | end 25 | end 26 | end 27 | 28 | -------------------------------------------------------------------------------- /automation/install/create_sym_links: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | def create_sym_link(target,link) 4 | system("rm -rf #{link}") unless File.symlink?(link) 5 | system("ln -s #{target} #{link}") unless File.exists?(link) || ! File.exist?(target) 6 | end 7 | 8 | {'/Volumes/machd/tempfiles' => '/tempfiles', 9 | '/Volumes/machd/to_backup' => '/to_backup', 10 | '/Volumes/machd/dropbox' => '/dropbox', 11 | '/tempfiles/downloads' => '~/Downloads', 12 | '/to_backup/repositories/dropbox' => '~/Dropbox', 13 | '/to_backup/repositories' => '~/repositories' 14 | }.each{|target,link| create_sym_link(target,link)} 15 | -------------------------------------------------------------------------------- /automation/install/install_utilities.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | install_quicksilver() 4 | { 5 | if [ ! -x /Applications/Quicksilver.app ]; then 6 | pushd /tempfiles/new_osx_install/startup_software 7 | rm Quicksilver.app 8 | tar -xzvf "quicksilver.tar.gz" 9 | cp -R "Quicksilver.app" /Applications 10 | popd 11 | fi 12 | devtools_sync 13 | } 14 | 15 | install_pygments() 16 | { 17 | easy_install Pygments 18 | } 19 | 20 | install_quicksilver 21 | install_pygments 22 | -------------------------------------------------------------------------------- /automation/keychain/get_keychain_password: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | # This automation item will get the requested attribute from a keychain item 4 | 5 | # Args: 6 | # Required 7 | # --account: Keychain account name 8 | # Optional 9 | # --keychain: Path to keychain to use, defaults to login keychain 10 | # --command: security command to run : defaults to find-internet-password 11 | require 'stringio' 12 | 13 | class Arguments 14 | attr_accessor :account 15 | attr_accessor :keychain 16 | 17 | def keychain 18 | @keychain ||= "/Users/jp/Library/Keychains/login.keychain" 19 | end 20 | 21 | def command=(value) 22 | @command = value.to_sym 23 | end 24 | 25 | def command 26 | @command ||= 'find-internet-password' 27 | end 28 | end 29 | 30 | def build_arguments(arguments) 31 | result = Arguments.new 32 | 33 | arguments.each do|argument| 34 | pair = argument.split(":") 35 | name = pair[0].gsub(/-/,"") 36 | value = pair[1] 37 | result.send "#{name}=", value 38 | end 39 | result 40 | end 41 | 42 | arguments = build_arguments(ARGV) 43 | 44 | command = "sudo -u jp /usr/bin/security #{arguments.command} -w -a #{arguments.account} #{arguments.keychain}" 45 | 46 | system(command) 47 | -------------------------------------------------------------------------------- /automation/misc/apache: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | /usr/local/apache2/bin/apachectl $* 4 | -------------------------------------------------------------------------------- /automation/misc/buy_music: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | mvim /tempfiles/music_to_purchase.md 3 | -------------------------------------------------------------------------------- /automation/misc/devtools_sync: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | . ~/.bash_source_rvm 4 | cd ~/repositories/developwithpassion/devtools 5 | expands 6 | ahk_start 7 | -------------------------------------------------------------------------------- /automation/misc/gems.txt: -------------------------------------------------------------------------------- 1 | actionmailer 2 | actionpack 3 | actionwebservice 4 | activerecord 5 | activeresource 6 | activesupport 7 | acts_as_ferret 8 | capistrano 9 | cgi_multipart_eof_fix 10 | daemons 11 | dnssd 12 | fastthread 13 | fcgi 14 | ferret 15 | gem_plugin 16 | highline 17 | hpricot 18 | libxml-ruby 19 | mongrel 20 | needle 21 | net-scp 22 | net-sftp 23 | net-ssh 24 | net-ssh-gateway 25 | rack 26 | rails 27 | rake 28 | RedCloth 29 | ruby-openid 30 | ruby-yadis 31 | rubygems-update 32 | rubynode 33 | spoon 34 | sqlite3-ruby 35 | termios 36 | xmpp4r 37 | -------------------------------------------------------------------------------- /automation/misc/great_podrunner_tracks: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | mvim /tempfiles/great_podrunner_tracks.md 3 | -------------------------------------------------------------------------------- /automation/misc/hide_desktop_items.sh: -------------------------------------------------------------------------------- 1 | #toggle desktop icon visibility to false 2 | defaults write com.apple.finder CreateDesktop -bool false 3 | #force the changes to refresh by restarting finder 4 | killall Finder 5 | -------------------------------------------------------------------------------- /automation/misc/mirror: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/automation/misc/mirror -------------------------------------------------------------------------------- /automation/misc/open_browser.sh: -------------------------------------------------------------------------------- 1 | open $* 2 | -------------------------------------------------------------------------------- /automation/misc/scratch: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | system("mvim","/tempfiles/documents/scratch") 4 | 5 | -------------------------------------------------------------------------------- /automation/misc/start_mongo: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | system("mongod run --config /usr/local/Cellar/mongodb/1.6.1-x86_64/mongod.conf") 4 | -------------------------------------------------------------------------------- /automation/misc/toggle_git_autocrlf: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib git]) 3 | 4 | require 'auto_crlf_toggler' 5 | 6 | Git::AutoCrlfToggler.new.update_setting_to(ARGV[0]) 7 | -------------------------------------------------------------------------------- /automation/misc/tree: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ####################################################### 3 | # UNIX TREE # 4 | # Version: 2.3 # 5 | # File: ~/apps/tree/tree.sh # 6 | # # 7 | # Displays Structure of Directory Hierarchy # 8 | # ------------------------------------------------- # 9 | # This tiny script uses "ls", "grep", and "sed" # 10 | # in a single command to show the nesting of # 11 | # sub-directories. The setup command for PATH # 12 | # works with the Bash shell (the Mac OS X default). # 13 | # # 14 | # Setup: # 15 | # $ cd ~/apps/tree # 16 | # $ chmod u+x tree.sh # 17 | # $ ln -s ~/apps/tree/tree.sh ~/bin/tree # 18 | # $ echo "PATH=~/bin:\${PATH}" >> ~/.profile # 19 | # # 20 | # Usage: # 21 | # $ tree [directory] # 22 | # # 23 | # Examples: # 24 | # $ tree # 25 | # $ tree /etc/opt # 26 | # $ tree .. # 27 | # # 28 | # Public Domain Software -- Free to Use as You Like # 29 | # http://www.centerkey.com/tree - By Dem Pilafian # 30 | ####################################################### 31 | 32 | echo 33 | if [ "$1" != "" ] #if parameter exists, use as base folder 34 | then cd "$1" 35 | fi 36 | pwd 37 | ls -R | grep ":$" | \ 38 | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/' 39 | # 1st sed: remove colons 40 | # 2nd sed: replace higher level folder names with dashes 41 | # 3rd sed: indent graph three spaces 42 | # 4th sed: replace first dash with a vertical bar 43 | if [ `ls -F -1 | grep "/" | wc -l` = 0 ] # check if no folders 44 | then echo " -> no sub-directories" 45 | fi 46 | echo 47 | exit 48 | -------------------------------------------------------------------------------- /automation/misc/uninstall_all_gems: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | gems = `gem list --local`.chomp.split("\n") 4 | puts gems 5 | -------------------------------------------------------------------------------- /automation/misc/uninstall_all_gems.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | expression = Regexp.new(/(.*)\s(\(.*\))/) 4 | gems = `gem list --local`.split("\n") 5 | gems = gems.select{|item| expression =~ item} 6 | other_gems = gems.map{|item| expression.match(item)[1]} 7 | 8 | puts other_gems 9 | -------------------------------------------------------------------------------- /automation/misc/uninstall_utilities: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'fileutils' 3 | 4 | items_to_remove = %w{Library .git .gitignore bin/brew README.md} 5 | if (system("brew --prefix")) 6 | puts "Uninstalling Brew" 7 | brew = `brew --prefix`.chomp 8 | cellar = File.join(brew,'Cellar') 9 | FileUtils.rm_r(cellar,:verbose => true) if (File.exists?(cellar)) 10 | `brew prune` 11 | items_to_remove.map{|item| File.join(brew,item)}.select{|item| File.exists?(item)}.each do|item| 12 | FileUtils.rm_r(item,:verbose => true) 13 | end 14 | else 15 | puts "Brew is not installed" 16 | end 17 | 18 | puts "Uninstalling RVM" unless(system("rvm implode")) 19 | -------------------------------------------------------------------------------- /automation/misc/yumlme: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | class File 4 | class << self 5 | def read_lines(file) 6 | contents = nil 7 | 8 | File.open(file, 'r') do |file| 9 | file.each do |line| 10 | yield line 11 | end 12 | end 13 | contents.to_a 14 | end 15 | end 16 | end 17 | 18 | def build_yuml_url(yuml_markup) 19 | "http://yuml.me/diagram/scruffy;dir:TB;/class/#{yuml_markup}.svg" 20 | end 21 | 22 | def draw(diagram) 23 | yuml_markup = read_yuml_file(diagram) 24 | url = build_yuml_url(yuml_markup) 25 | system("open '#{url}'") 26 | end 27 | 28 | def read_yuml_file(file_name) 29 | contents = [] 30 | File.read_lines(file_name) do |line| 31 | contents << line.chomp 32 | end 33 | contents = contents.join(',') 34 | contents 35 | end 36 | 37 | def pick_yuml_file 38 | diagrams = Dir.glob("**/*.yuml") 39 | 40 | exit if (diagrams.count == 0) 41 | 42 | return diagrams[0] if (diagrams.count == 1) 43 | 44 | diagrams.each_with_index do |diagram,index| 45 | puts "#{index+1} - #{File.basename(diagram)} - (#{diagram})" 46 | end 47 | puts "\r\nPick a diagram" 48 | 49 | index = readline.chomp.to_i 50 | diagram = diagrams[index - 1] 51 | end 52 | 53 | def yuml_file 54 | return ARGV[0] if ARGV.length > 0 55 | return pick_yuml_file 56 | end 57 | 58 | draw yuml_file 59 | -------------------------------------------------------------------------------- /automation/mysql/mysql_start.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | mysql.server start 4 | -------------------------------------------------------------------------------- /automation/mysql/setup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | UNSET TMPDIR 4 | mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp 5 | -------------------------------------------------------------------------------- /automation/notmuch/mutt_notmuch: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require 'digest/sha1' 4 | require 'optparse' 5 | require 'fileutils' 6 | 7 | class Hasher 8 | def initialize 9 | @hasher = Digest::SHA1.new 10 | end 11 | 12 | def get_email_hash(file_name) 13 | @hasher.hexdigest(IO.read(file_name)) 14 | end 15 | end 16 | 17 | def build_results_folder(results_path) 18 | FileUtils.rm_rf(results_path) 19 | FileUtils.mkdir_p(results_path) 20 | 21 | %w/cur new/.each do |folder| 22 | combined_path = File.join(results_path, folder) 23 | FileUtils.mkdir_p(combined_path) 24 | end 25 | end 26 | 27 | def read_line(message) 28 | print "Query:" 29 | STDIN.gets.chomp 30 | end 31 | 32 | def get_unique_files(files) 33 | hasher = Hasher.new 34 | messages = {} 35 | files.each do |file| 36 | hash = hasher.get_email_hash(file) 37 | messages[hash] = file 38 | end 39 | messages.values 40 | end 41 | 42 | def get_matching_files(query) 43 | files = `notmuch search --output=files #{query}` 44 | files.split("\n") 45 | end 46 | 47 | def sym_link(files, target_path) 48 | files.each do |file| 49 | system("ln -s '#{file}' #{target_path}") 50 | end 51 | end 52 | 53 | def run(results_path) 54 | build_results_folder(results_path) 55 | query = read_line("Search Phrase?") 56 | files = get_matching_files(query) 57 | unique_files = get_unique_files(files) 58 | sym_link(unique_files, "#{results_path}/cur/") 59 | end 60 | 61 | def parse_arguments 62 | OptionParser.new do|options| 63 | options.banner = "Usage is: mutt_not_much [RESULTS_PATH]" 64 | end.parse! 65 | 66 | path = ARGV.length == 0 ? "/tempfiles/notmuch_search_results" : ARGV[0] 67 | end 68 | 69 | 70 | 71 | run parse_arguments 72 | -------------------------------------------------------------------------------- /automation/osx/airport: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport $* 4 | -------------------------------------------------------------------------------- /automation/rvm/rvm_configure_vim_irb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | gems_to_install="interactive_editor awesome_print" 3 | rubies=($(rvm list strings| tr " " "\n")) 4 | 5 | for the_ruby in ${rubies[@]} 6 | do 7 | rvm $the_ruby@global gem install $gems_to_install 8 | done 9 | 10 | -------------------------------------------------------------------------------- /automation/rvm/rvm_gem_for_all_rubies: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | rubies=($(rvm list strings| tr " " "\n")) 4 | 5 | for the_ruby in ${rubies[@]} 6 | do 7 | rvm $the_ruby@global gem $1 $2 8 | done 9 | 10 | -------------------------------------------------------------------------------- /automation/rvm/rvm_install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | install_rvm() 4 | { 5 | if [ ! -x ~/.rvm ]; then 6 | mkdir -p ~/.rvm/gemsets 7 | bash -s stable --ruby < <(curl -L https://get.rvm.io) 8 | fi 9 | source $HOME/.rvm/scripts/rvm 10 | rvm reload 11 | rvm uninstall default 12 | cp -f ~/repositories/developwithpassion/devtools/shared/dotfiles/rvm/global.gems ~/.rvm/gemsets/ 13 | } 14 | 15 | install_rvm 16 | ./rvm_install_some_rubies 17 | -------------------------------------------------------------------------------- /automation/rvm/rvm_install_some_rubies: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | install_some_rubies() 4 | { 5 | source $HOME/.rvm/scripts/rvm 6 | rvm install ruby-1.9.3-p385 7 | rvm install ruby-2.0.0 8 | rvm --default ruby-2.0.0 9 | rvm system 10 | } 11 | 12 | install_some_rubies 13 | -------------------------------------------------------------------------------- /automation/rvm/rvm_uninstall_all_gemsets: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | expression = /.*(ruby.*\s)\[/ 4 | items = `rvm list gemsets`.chomp.split("\n") 5 | items = items.select{|item| expression =~ item} 6 | items = items.map{|item| expression.match(item)[1]} 7 | 8 | items.each do|item| 9 | system "rvm gemset delete #{item}" 10 | end 11 | 12 | 13 | -------------------------------------------------------------------------------- /automation/rvm/rvm_util.rb: -------------------------------------------------------------------------------- 1 | def gemset_name(gemset) 2 | gemset = gemset.gsub(/[\/\-\s]/,'_') 3 | gemset = gemset.gsub(/_{2,}/,'_') 4 | gemset = gemset.slice(1, gemset.length) 5 | gemset.downcase 6 | end 7 | -------------------------------------------------------------------------------- /automation/rvm/rvmgsc: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require_relative 'rvm_util.rb' 4 | 5 | def rubies 6 | ruby_pattern = /\s*(ruby-.*)\s\[/ 7 | 8 | rubies = `rvm list` 9 | rubies = rubies.split("\n") 10 | rubies = rubies.select{ |item| ruby_pattern =~ item } 11 | rubies = rubies.map{ |item| ruby_pattern.match(item)[1] } 12 | rubies.sort! { |left, right| right <=> left } 13 | 14 | rubies 15 | end 16 | 17 | def pick_ruby_version 18 | puts "Which Ruby Version?" 19 | versions = rubies 20 | versions.each_with_index do |version, index| 21 | puts "\t#{index + 1} - #{version}" 22 | end 23 | puts "Which?: " 24 | version = gets.chomp.to_i 25 | version = version - 1 26 | versions[version] 27 | end 28 | 29 | def ruby_version 30 | return pick_ruby_version if ARGV.length == 0 31 | 32 | version = ARGV[0] 33 | full_version = "ruby-#{version}" 34 | 35 | return full_version 36 | end 37 | 38 | gemset = gemset_name(Dir.pwd) 39 | 40 | `echo #{ruby_version} > .ruby-version` 41 | `echo #{gemset} > .ruby-gemset` 42 | -------------------------------------------------------------------------------- /automation/rvm/rvmgsd: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative 'rvm_util.rb' 3 | 4 | folder = File.join(Dir.pwd, ARGV[0]) 5 | gemset = gemset_name(folder) 6 | system("rvm gemset delete #{gemset}") 7 | -------------------------------------------------------------------------------- /automation/tasks/tasks: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require 'date' 4 | 5 | system("vim","/to_backup/tasks/#{Date.today.year}") 6 | 7 | -------------------------------------------------------------------------------- /automation/testing/rproofs: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if [ $# -gt 0 ]; then 6 | filename=$1 7 | else 8 | filename='proofs/suite.rb' 9 | fi 10 | 11 | command="ruby " 12 | 13 | RAILS_ENV=development $command $filename 14 | -------------------------------------------------------------------------------- /automation/testing/rspecs: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | need_rails=1 6 | 7 | if [ $# -gt 0 ]; then 8 | filename=$1 9 | 10 | grep_filename=`echo $1 | sed 's/:.*$//g'` 11 | 12 | (set +e; grep -r 'spec_helper' $grep_filename) > /dev/null 13 | if [ $? -eq 1 ]; then 14 | need_rails='' 15 | fi 16 | else 17 | filename='spec' 18 | fi 19 | 20 | command='rspec' 21 | 22 | if [ $need_rails ]; then 23 | command="ruby -S bundle exec $command" 24 | fi 25 | 26 | RAILS_ENV=development $command $filename 27 | -------------------------------------------------------------------------------- /automation/timers/.gitignore: -------------------------------------------------------------------------------- 1 | timer 2 | -------------------------------------------------------------------------------- /automation/timers/pomodoro: -------------------------------------------------------------------------------- 1 | timerm 20 2 | -------------------------------------------------------------------------------- /automation/timers/timer.erb: -------------------------------------------------------------------------------- 1 | <%= 2 | if configatron.core.is_mingw 3 | "start" 4 | else 5 | "open" 6 | end%> http://e.ggtimer.com/$* 7 | -------------------------------------------------------------------------------- /automation/timers/timerh: -------------------------------------------------------------------------------- 1 | timer $*hour 2 | -------------------------------------------------------------------------------- /automation/timers/timerm: -------------------------------------------------------------------------------- 1 | timer $*min 2 | -------------------------------------------------------------------------------- /automation/vim/.gitignore: -------------------------------------------------------------------------------- 1 | twitvim 2 | vim_plugin_update 3 | -------------------------------------------------------------------------------- /automation/vim/jp_cygwin_vim_build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | hg pull 3 | hg update 4 | hg merge 5 | hg commit 6 | 7 | make uninstall 8 | 9 | ./configure --enable-rubyinterp=dynamic --enable-cscope --with-features=huge --with-compiledby=JP --enable-fontset --enable-gui 10 | make && make install 11 | -------------------------------------------------------------------------------- /automation/vim/twitvim.mustache: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | twitter_user = ARGV[0] 4 | 5 | `cp {{{my.twitter_token_folder}}}/#{twitter_user}.twitvim.token {{{core.home}}}/.twitvim.token` 6 | -------------------------------------------------------------------------------- /automation/vim/update_vim_plugins: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | . ~/.bash_source_rvm 4 | 5 | devtools_sync 6 | rvm use system 7 | vim_plugin_update 8 | 9 | devtools_sync 10 | # . ~/.bash_source_rvm 11 | # rvm use default 12 | # cd ~/repositories/developwithpassion/devtools 13 | # rvm 1.9.3@devtools 14 | # dwp_expand 15 | -------------------------------------------------------------------------------- /automation/vim/vim_plugin_update.erb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'fileutils' 3 | require 'open-uri' 4 | 5 | 6 | @bundles = { 7 | :altercation => %w[vim-colors-solarized], 8 | :benmills => %w[vimux], 9 | :developwithpassion => %w[TwitVim], 10 | :ecomba => %w[vim-ruby-refactoring], 11 | :ervandew => %w[supertab], 12 | :garbas => %w[vim-snipmate], 13 | :honza => %w[vim-snippets], 14 | :kana => %w[vim-fakeclip], 15 | :kchmck => %w[vim-coffee-script], 16 | :kien => %w[ctrlp.vim], 17 | :MarcWeber => %w[vim-addon-mw-utils], 18 | :scrooloose => %w[syntastic nerdtree], 19 | :jistr => %w[vim-nerdtree-tabs], 20 | :sukima => %w[xmledit], 21 | :timcharper => %w[textile.vim], 22 | :tomtom => %w[tcomment_vim tlib_vim], 23 | :tpope => %w[vim-cucumber vim-fugitive vim-git vim-haml vim-markdown vim-rails vim-surround vim-vividchalk vim-endwise], 24 | "vim-ruby" => %w[vim-ruby] 25 | } 26 | 27 | @vim_org_scripts = [ 28 | ["IndexedSearch", "7062", "plugin"], 29 | ["jquery","12276", "syntax"], 30 | ["autotag","12473", "plugin"], 31 | ["DirDiff","13435","plugin"] 32 | ] 33 | 34 | <% if not configatron.core.is_cygwin %> 35 | # @bundles[:wincent] = %w[Command-T] 36 | <% end %> 37 | 38 | @git_bundles = [] 39 | 40 | @bundles.each do|git_user,repos| 41 | repos.each do|repo_name| 42 | @git_bundles << "http://github.com/#{git_user}/#{repo_name}.git" 43 | end 44 | end 45 | 46 | @zips = [ 47 | ["vimgrep", "3407"], 48 | ["bufexplorer", "12904"], 49 | ["dbext", "13339"] 50 | ] 51 | 52 | 53 | @bundles_to_ignore = %w[developwithpassion] 54 | 55 | 56 | bundles_dir = File.join(ENV["HOME"],%w[repositories developwithpassion devtools shared dotfiles vim .vim_runtime bundle]) 57 | 58 | def remove_all_bundles 59 | puts "Removing all bundles in #{Dir.pwd}" 60 | Dir["*"].each {|bundle_folder| FileUtils.rm_rf bundle_folder unless @bundles_to_ignore.include?(bundle_folder)} 61 | end 62 | 63 | def unpack_bundles 64 | @git_bundles.each do |url| 65 | dir = url.split('/').last.sub(/\.git$/, '') 66 | puts " Unpacking #{url} into #{dir}" 67 | `git clone #{url} #{dir}` 68 | `rm -rf #{File.join(dir, ".git")}` 69 | end 70 | end 71 | 72 | def build_vim_org_script_link(script_id) 73 | "http://www.vim.org/scripts/download_script.php?src_id=#{script_id}" 74 | end 75 | 76 | def download_scripts 77 | @vim_org_scripts.each do |name, script_id, script_type| 78 | puts " Downloading #{name}" 79 | local_file = File.join(name, script_type, "#{name}.vim") 80 | FileUtils.mkdir_p(File.dirname(local_file)) 81 | File.open(local_file, "w") do |file| 82 | file << open(build_vim_org_script_link(script_id)).read 83 | end 84 | end 85 | end 86 | 87 | def create_unzip_command_for(script_id) 88 | command = "curl #{build_vim_org_script_link(script_id)}" 89 | <% if configatron.core.is_windows %> 90 | command += " > blah.zip" 91 | <% else %> 92 | command+= " | tar xv" 93 | <% end %> 94 | end 95 | 96 | def download_and_unpack_zips 97 | @zips.each do|name,script_id| 98 | FileUtils.mkdir_p(name) 99 | Dir.chdir(name) do 100 | `#{create_unzip_command_for(script_id)}` 101 | <% if configatron.core.is_windows %> 102 | `unzip blah.zip` 103 | `rm blah.zip` 104 | <% end %> 105 | end 106 | end 107 | end 108 | 109 | def cleanup_doc_file_issues 110 | file = File.join(%w[dbext doc dbext.txt]) 111 | contents = "" 112 | File.open(file,'r') do |original_file| 113 | contents = original_file.readlines 114 | end 115 | FileUtils.rm_f file 116 | File.open(file,'w') do |updated_file| 117 | contents.each do|line| 118 | updated_file.puts line.gsub(/\*\/MyProjectDir\/\*/,'MyProjectDir') 119 | end 120 | end 121 | end 122 | 123 | Dir.chdir(bundles_dir) do 124 | remove_all_bundles 125 | unpack_bundles 126 | download_scripts 127 | download_and_unpack_zips 128 | cleanup_doc_file_issues 129 | end 130 | -------------------------------------------------------------------------------- /automation/visual_studio/.gitignore: -------------------------------------------------------------------------------- 1 | launch_vs_solution 2 | sln 3 | -------------------------------------------------------------------------------- /automation/visual_studio/2010.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Global 5 | GlobalSection(SolutionProperties) = preSolution 6 | HideSolutionNode = FALSE 7 | EndGlobalSection 8 | EndGlobal 9 | -------------------------------------------------------------------------------- /automation/visual_studio/launch_vs_solution.mustache: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | {{ my.windows.paths.unix_style.devenv }} $* 4 | -------------------------------------------------------------------------------- /automation/visual_studio/sln.mustache: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | def launch(solution) 4 | {{# core.is_cygwin}} 5 | system("launch_vs_solution #{solution}") 6 | {{/core.is_cygwin}} 7 | {{# core.is_mingw}} 8 | `start {{{my.windows.paths.win_style.devenv.escape}}} #{solution}` 9 | {{/core.is_mingw}} 10 | end 11 | 12 | solutions = Dir.glob("**/*.sln") 13 | 14 | if (solutions.count == 1) 15 | launch(solutions[0]) 16 | exit 17 | end 18 | 19 | solutions.each_with_index do |solution,index| 20 | puts "#{index+1} - #{File.basename(solution)} - (#{solution})" 21 | end 22 | puts "\r\nPick a solution" 23 | 24 | index = readline.chomp 25 | launch(solutions[index.to_i - 1]) if index 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /automation/visual_studio/vssol: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require 'fileutils' 4 | require File.join(File.dirname(__FILE__),'..','home.rb') 5 | 6 | FileUtils.cp(File.join(Home::AUTOMATION_FOLDER,'visual_studio','2010.sln'),"#{ARGV[0]}.sln") 7 | 8 | -------------------------------------------------------------------------------- /automation/vmware/startvm: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | vms = Dir.glob("/to_backup/virtual_machines/vms/*.vmwarevm").to_a 4 | 5 | puts "Choose a vm:" 6 | 7 | vms.each_with_index{|vm,index| puts "#{index + 1} - #{File.basename(vm,File.extname(vm))}"} 8 | vm = gets.chomp.strip 9 | exit if vm == '' 10 | vm = vm.to_i - 1 11 | 12 | `open #{File.expand_path(vms[vm])}` 13 | -------------------------------------------------------------------------------- /create_sym_links: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function steamLinks 4 | { 5 | ln -s /to_backup/steam ~/Library/Application\ Support/Steam 6 | } 7 | 8 | function rootLinks 9 | { 10 | sudo ln -s /Volumes/machd/tempfiles /tempfiles 11 | sudo ln -s /Volumes/machd/to_backup /to_backup 12 | } 13 | 14 | function userLinks 15 | { 16 | ln -s /Volumes/machd/to_backup/repositories ~/repositories 17 | ln -s /tempfiles/documents ~/Documents 18 | ln -s /tempfiles/downloads ~/Downloads 19 | ln -s ~/repositories/github/oh-my-zsh ~/.oh-my-zsh 20 | } 21 | 22 | steamLinks 23 | rootLinks 24 | userLinks 25 | -------------------------------------------------------------------------------- /dev_run: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require 'bundler' 4 | Bundler.setup 5 | 6 | require 'expansions' 7 | 8 | Expansions::CLIInterface.run([]) 9 | -------------------------------------------------------------------------------- /expansions/config_cygwin: -------------------------------------------------------------------------------- 1 | configatron.configure_from_hash :core =>{ 2 | :launcher => 'cygstart', 3 | :editor => 'vi', 4 | :is_windows => true, 5 | :is_linux => false, 6 | :is_cygwin => true, 7 | :is_mingw => false, 8 | :is_osx => false, 9 | :vi => '/usr/local/bin/vim.exe', 10 | :vim => 'vim', 11 | :term => 'linux' 12 | }, 13 | :git => { 14 | :autocrlf => 'input', 15 | :merge_tool => 'bc3', 16 | :diff_tool => 'bc3', 17 | :editor => 'vi', 18 | }, 19 | :vim => { 20 | :environment => 'windows' 21 | } 22 | -------------------------------------------------------------------------------- /expansions/config_linux: -------------------------------------------------------------------------------- 1 | configatron.configure_from_hash :core =>{ 2 | :launcher => 'start', 3 | :editor => 'vi', 4 | :is_windows => false, 5 | :is_cygwin => false, 6 | :is_linux => true, 7 | :is_mingw => false, 8 | :is_osx => false, 9 | :vi => 'vim', 10 | :vim => 'vim', 11 | :term => 'linux' 12 | }, 13 | :git => { 14 | :autocrlf => 'input', 15 | :merge_tool => 'vimdiff', 16 | :diff_tool => 'vimdiff', 17 | :editor => 'vi', 18 | }, 19 | :vim => { 20 | :environment => 'linux' 21 | } 22 | -------------------------------------------------------------------------------- /expansions/config_mingw: -------------------------------------------------------------------------------- 1 | configatron.configure_from_hash :core =>{ 2 | :launcher => '', 3 | :vim => "'start C:/utils/vim/vim73/gvim.exe'", 4 | :editor => 'vi', 5 | :is_windows => true, 6 | :is_linux => false, 7 | :is_cygwin => false, 8 | :is_mingw => true, 9 | :is_osx => false, 10 | :vi => "/c/utils/vim/vim73/vim.exe", 11 | :term => 'xterm-color' 12 | }, 13 | :git => { 14 | :autocrlf => 'true', 15 | :merge_tool => 'gvimdiff', #bc3 for beyond compare 16 | :diff_tool => 'gvimdiff', #bc3 for beyond compare 17 | :editor => 'C:/utils/vim/vim73/vim.exe', 18 | }, 19 | :vim => { 20 | :environment => 'windows' 21 | } 22 | -------------------------------------------------------------------------------- /expansions/config_osx: -------------------------------------------------------------------------------- 1 | configatron.configure_from_hash :core =>{ 2 | :launcher => '', 3 | :vim => 'mvim', 4 | :editor => 'mvim -v -f', 5 | :is_windows => false, 6 | :is_cygwin => false, 7 | :is_linux => false, 8 | :is_mingw => false, 9 | :is_osx => true, 10 | :vi => "'mvim -v'", 11 | :term => 'xterm-color' 12 | }, 13 | :git => { 14 | :autocrlf => 'input', 15 | :merge_tool => 'vimdiff', 16 | :diff_tool => 'vimdiff', 17 | :editor => 'vi' 18 | }, 19 | :vim => { 20 | :environment => 'mac' 21 | } 22 | -------------------------------------------------------------------------------- /expansions/cygwin.rb: -------------------------------------------------------------------------------- 1 | expand do 2 | before do 3 | load %w[automation autohotkey ahk_stop].as_glob_pattern 4 | end 5 | 6 | copy_to '/c/Windows/System32/drivers/etc' do 7 | contents %w[shared hosts].as_glob_pattern 8 | end 9 | 10 | shared_contents = %w[zsh rvm].map{|item| ['shared','dotfiles',item].as_glob_pattern} 11 | 12 | copy_to configatron.core.home do 13 | all_contents_in shared_contents 14 | end 15 | 16 | 17 | partials = glob(%w[windows autohotkey partial_*.ahk].as_glob_pattern) 18 | headers = glob(%w[windows autohotkey merge_header_*.ahk].as_glob_pattern) 19 | footers = glob(%w[windows autohotkey merge_footer_*.ahk].as_glob_pattern) 20 | 21 | log "There are #{partials.count} autohotkey scripts" 22 | 23 | partials.each do|partial| 24 | merge_to partial.gsub("partial_","") do 25 | dont_read_original_file_contents 26 | headers.each{|header| add_before_original_contents(header)} 27 | add_before_original_contents(partial) 28 | footers.each{|footer| add_after_original_contents(footer)} unless /caps_as_windows_key/ =~ partial 29 | end 30 | end 31 | 32 | cleanup do 33 | FileUtils.rm_rf [configatron.core.home, %w[.vim_runtime bundle developwithpassion snippets]].as_glob_pattern 34 | 35 | launch_file = %w[windows autohotkey launch_ahk].as_glob_pattern 36 | FileUtils.rm_rf launch_file 37 | 38 | File.open(launch_file,'w') do|file| 39 | file << "#!/bin/bash\n" 40 | glob(%w[windows autohotkey ahk*.ahk].as_glob_pattern) do|ahk_script| 41 | start_command = configatron.core.is_cygwin ? 'cygstart' : 'start' 42 | file << "#{start_command} #{File.expand_path(ahk_script)}\n" 43 | end 44 | end 45 | end 46 | end 47 | -------------------------------------------------------------------------------- /expansions/linux.rb: -------------------------------------------------------------------------------- 1 | expand do 2 | shared_contents = %w[zsh rvm].map{|item| ['shared','dotfiles',item].as_glob_pattern} 3 | 4 | copy_to configatron.core.home do 5 | all_contents_in shared_contents 6 | end 7 | 8 | end 9 | -------------------------------------------------------------------------------- /expansions/mingw.rb: -------------------------------------------------------------------------------- 1 | expand do 2 | load %w[expansions cygwin.rb].as_glob_pattern 3 | 4 | copy_to [configatron.my.windows.paths.unix_style.mingw,%w[msys 1.0]].as_glob_pattern do 5 | contents %w[windows mingw].as_glob_pattern 6 | end 7 | 8 | copy_to configatron.core.home do 9 | contents %w[windows viemu].as_glob_pattern 10 | end 11 | 12 | snippets_glob_pattern = %w/shared dotfiles vim .vim_runtime bundle vim-snippets snippets *.snippets/ 13 | snippets_glob_pattern = snippets_glob_pattern.as_glob_pattern 14 | snipmate_snippets = glob(snippets_glob_pattern) 15 | 16 | develop_with_passion_snippet_glob_pattern = %w/shared dotfiles vim .vim_runtime bundle developwithpassion snippets *.snippets/ 17 | develop_with_passion_snippet_glob_pattern = develop_with_passion_snippet_glob_pattern.as_glob_pattern 18 | develop_with_passion_snippets = glob(develop_with_passion_snippet_glob_pattern) 19 | 20 | snipmate_snippets.concat(develop_with_passion_snippets).each do|file| 21 | merge_to [configatron.core.home, %w[.vim_runtime bundle vim-snippets snippets],File.basename(file)].as_glob_pattern do 22 | dont_read_original_file_contents 23 | add_after_original_contents file 24 | end 25 | end 26 | 27 | fix_line_endings_for [configatron.core.home, %w[.bash*]].as_glob_pattern 28 | fix_line_endings_for %w[automation git *.sh].as_glob_pattern 29 | end 30 | -------------------------------------------------------------------------------- /expansions/osx.rb: -------------------------------------------------------------------------------- 1 | expand do 2 | shared_contents = %w[zsh rvm].map{|item| ['shared','dotfiles',item].as_glob_pattern} 3 | 4 | copy_to configatron.core.home do 5 | all_contents_in shared_contents 6 | end 7 | 8 | brew_exists = system("brew --prefix") 9 | if brew_exists 10 | copy_to [`brew --prefix`.chomp,'Library'].as_glob_pattern do 11 | contents ['mac','brew'].as_glob_pattern 12 | end 13 | end 14 | 15 | end 16 | -------------------------------------------------------------------------------- /expansions/task_purge_items.rb: -------------------------------------------------------------------------------- 1 | expand do 2 | register_folder_to_purge '.vim_runtime'.as_home_file 3 | end 4 | -------------------------------------------------------------------------------- /expansions/task_register_executable_paths.rb: -------------------------------------------------------------------------------- 1 | expand do 2 | register_executable %w[automation vim vim_plugin_update].as_glob_pattern 3 | register_executable %w[automation vim twitvim].as_glob_pattern 4 | register_executable %w[automation autohotkey ahk_start].as_glob_pattern 5 | register_executable %w[automation timers timer].as_glob_pattern 6 | register_executable %w[automation perl ack].as_glob_pattern 7 | register_executable %w[automation visual_studio sln].as_glob_pattern 8 | register_executable %w[automation visual_studio launch_vs_solution].as_glob_pattern 9 | 10 | globs_to_register = [ 11 | %w[automation divvy divvy].as_glob_pattern, 12 | %w[automation git *.sh].as_glob_pattern 13 | ] 14 | 15 | globs_to_register.each do|item| 16 | glob(item){|file| register_executable file} 17 | end 18 | 19 | end 20 | -------------------------------------------------------------------------------- /expansions/task_shared_copy.rb: -------------------------------------------------------------------------------- 1 | expand do 2 | common_folders = %w[bash goobook git ruby vim vimperator offlineimap tmux notmuch mutt msmtp urlview gnupg].map{|item| [%w[shared dotfiles],item].as_glob_pattern} 3 | 4 | copy_to configatron.core.home do 5 | all_contents_in common_folders 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /jp.settings: -------------------------------------------------------------------------------- 1 | class String 2 | def escape 3 | self.gsub(/\\/,'/') 4 | end 5 | end 6 | 7 | configs = { 8 | :my => 9 | { 10 | :unix_style_devtools_root => '~/repositories/developwithpassion/devtools', 11 | :twitter_token_folder => [configatron.core.home,%w[repositories developwithpassion twitter_tokens]].as_glob_pattern, 12 | :ssh_folder => [configatron.core.home, %w[repositories developwithpassion ssh]].as_glob_pattern, 13 | :main_ssh_key => 'developwithpassion', 14 | :windows => 15 | { 16 | :paths => 17 | { 18 | :win_style => 19 | { 20 | :devenv => 'C:\utils\vs2012\Common7\IDE\devenv.exe', 21 | :ahk_spy => 'C:\utils\autohotkey\AU3_Spy.exe', 22 | :process_explorer => 'C:\utils\sysinternals\procexp.exe', 23 | :divvy => 'C:\utils\divvy\Divvy.exe', 24 | :conemu => 'C:\utils\conemu\ConEmu.exe', 25 | :camrec => 'C:\utils\camtasia_studio\CamRecorder.exe', 26 | :msys => 'C:\utils\mingw\msys\1.0\msys.bat', 27 | :cygwin => 'C:\utils\cygwin\cygwin.bat', 28 | :ahk_scripts => 'C:\users\jp\repositories\developwithpassion\devtools\windows\autohotkey\ahk*.ahk', 29 | }, 30 | :unix_style => 31 | { 32 | :mingw => '/c/utils/mingw', 33 | :vim => '/c/utils/vim/vim73', 34 | :devenv => '/c/utils/vs2012/Common7/IDE/devenv.exe', 35 | :beyond_compare3 => '/C/utils/beyond_compare_3/BComp.exe', 36 | } 37 | } 38 | }, 39 | :github => 40 | { 41 | :email => 'jp@developwithpassion.com', 42 | :full_name => 'Jean-Paul S. Boodhoo', 43 | :user => 'developwithpassion' 44 | } 45 | } 46 | } 47 | 48 | configatron.configure_from_hash configs 49 | 50 | expand do 51 | copy_to [configatron.core.home,'.ssh'].as_glob_pattern do 52 | contents configatron.my.ssh_folder 53 | end 54 | end 55 | 56 | expand do 57 | specific_folders = [configatron.core.home,%w[repositories developwithpassion mac_library_preferences]].as_glob_pattern 58 | copy_to configatron.core.home do 59 | contents specific_folders 60 | end 61 | end if configatron.core.is_osx 62 | -------------------------------------------------------------------------------- /jp_cygwin.settings: -------------------------------------------------------------------------------- 1 | configs = { 2 | :my => 3 | { 4 | :unix_style_devtools_root => '~/repositories/developwithpassion/devtools', 5 | :twitter_token_folder => [configatron.core.home,%w[repositories developwithpassion twitter_tokens]].as_glob_pattern, 6 | :ssh_folder => [configatron.core.home, %w[repositories developwithpassion ssh]].as_glob_pattern, 7 | :main_ssh_key => 'developwithpassion', 8 | :windows => 9 | { 10 | :paths => 11 | { 12 | :win_style => 13 | { 14 | :devenv => 'C:\utils\vs2010\Common7\IDE\devenv.exe', 15 | :ahk_spy => 'C:\utils\autohotkey\AU3_Spy.exe', 16 | :process_explorer => 'C:\utils\sysinternals\procexp.exe', 17 | :divvy => 'C:\utils\divvy\Divvy.exe', 18 | :camrec => 'C:\utils\camtasia_studio\CamRecorder.exe', 19 | :msys => 'C:\utils\mingw\msys\1.0\msys.bat', 20 | :cygwin => 'C:\utils\cygwin\cygwin.bat', 21 | :ahk_scripts => 'C:\users\jp\repositories\developwithpassion\devtools\windows\autohotkey\ahk*.ahk', 22 | }, 23 | :unix_style => 24 | { 25 | :mingw => '/c/utils/mingw', 26 | :vim => '/c/utils/vim/vim73', 27 | :devenv => '/c/utils/vs2010/Common7/IDE/devenv.exe' 28 | } 29 | } 30 | }, 31 | :github => 32 | { 33 | :email => 'jp@developwithpassion.com', 34 | :full_name => 'Jean-Paul S. Boodhoo', 35 | :user => 'developwithpassion' 36 | } 37 | } 38 | } 39 | 40 | configatron.configure_from_hash configs 41 | 42 | expand do 43 | copy_to [configatron.core.home,'.ssh'].as_glob_pattern do 44 | contents configatron.my.ssh_folder 45 | end 46 | end 47 | 48 | expand do 49 | specific_folders = [configatron.core.home,%w[repositories developwithpassion mac_library_preferences]].as_glob_pattern 50 | copy_to configatron.core.home do 51 | contents specific_folders 52 | end 53 | end if configatron.core.is_osx 54 | -------------------------------------------------------------------------------- /mac/apps_to_install_on_new_image.markdown: -------------------------------------------------------------------------------- 1 | #Utilities 2 | 3 | * [PDFPen](http://smilesoftware.com/PDFpen/) - PDF Editing Software (great for digitally filling out documents) 4 | * [Growl](http://growl.cachefly.net/Growl-1.2.1.dmg) - Notifications 5 | * [DropBox](http://www.dropbox.com/) 6 | * epson printer software 7 | * [Kaleidoscope](http://www.kaleidoscopeapp.com/) - Great diff tool for OSX 8 | * [Quicksilver](http://github.com/downloads/tiennou/blacktree-alchemy/Quicksilver-b58-3841.tar.gz) - Keyboard junkie heaven!! 9 | * [Screenflow](http://www.telestream.net/screen-flow/overview.htm) - Screen recording software 10 | * [Divvy](http://mizage.com/) - Crazy simple window management tool 11 | * [MercuryMover](http://www.heliumfoot.com/mercurymover/) - Micro window level management tool 12 | * [TinkerTool](http://www.bresink.com/osx/TinkerTool.html) - Tweak your OS 13 | 14 | #Firefox 15 | * [DownThemAll](https://addons.mozilla.org/firefox/addon/201) - Download manager 16 | * [Firebug](http://www.getfirebug.com/) - Web Developer Debugging Tool 17 | * [LastPass](https://lastpass.com/) - Password manager 18 | * [Pentadactyl](http://dactyl.sourceforge.net/pentadactyl/) - Vim for firefox 19 | * [Xmarks](http://www.xmarks.com/) - Cross browser/machine bookmark syncing (plays really well with vimperator :bmarks & :bma commands) 20 | * [Web Developer](https://addons.mozilla.org/firefox/addon/60) - Great web development plugin 21 | 22 | -------------------------------------------------------------------------------- /mac/brew/Formula/macvim.rb: -------------------------------------------------------------------------------- 1 | require 'formula' 2 | 3 | class Macvim < Formula 4 | head 'git://repo.or.cz/MacVim.git' 5 | homepage 'http://code.google.com/p/macvim' 6 | 7 | def configure_environment_variables 8 | # MacVim's Xcode project gets confused by $CC, disable it until someone 9 | # figures out why it fails 10 | ENV['CC'] = nil 11 | ENV['CFLAGS'] = nil 12 | ENV['CXXCFLAGS'] = nil 13 | end 14 | 15 | def package_with_features 16 | system "./configure", 17 | "--with-features=huge", 18 | "--enable-cscope", 19 | "--enable-perlinterp", 20 | "--enable-pythoninterp", 21 | "--enable-rubyinterp", 22 | "--enable-tclinterp" 23 | system "make" 24 | end 25 | 26 | def configure_vim_diff 27 | %w[mvimdiff mview mvimex].each do|f| 28 | (bin + f).make_symlink("#{bin}/mvim") 29 | end 30 | end 31 | 32 | 33 | def install 34 | configure_environment_variables 35 | package_with_features 36 | 37 | libexec.install "src/MacVim/build/Release/MacVim.app" 38 | inreplace "src/MacVim/mvim", /^# VIM_APP_DIR=\/Applications$/, 39 | "VIM_APP_DIR=#{libexec}" 40 | bin.install "src/MacVim/mvim" 41 | 42 | configure_vim_diff 43 | 44 | end 45 | 46 | def caveats 47 | "MacVim.app installed to #{libexec}" 48 | end 49 | end 50 | 51 | -------------------------------------------------------------------------------- /mac/filezilla/filezilla_site_manager_entries.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | camspecialistsconnect.com 6 | 21 7 | 0 8 | 0 9 | camspeciali 10 | vegas 11 | 1 12 | 0 13 | MODE_DEFAULT 14 | 0 15 | Auto 16 | 0 17 | camspecialists.com 18 | 19 | 20 | 21 | 0camspecialists.com 22 | 23 | 24 | jpboodhoo.com 25 | 21 26 | 0 27 | 0 28 | jpboodhooco 29 | 2 30 | 0 31 | MODE_DEFAULT 32 | 0 33 | Auto 34 | 0 35 | jpboodhoo.com 36 | 37 | /Users/jp/repositories/developwithpassion/www.jpboodhoo.com/product/web.ui 38 | 1 0 8 httpdocs 39 | 1jpboodhoo.com 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /mac/spec_growl/green.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/mac/spec_growl/green.jpg -------------------------------------------------------------------------------- /mac/spec_growl/growl.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'autotest-fsevent' 3 | require 'autotest/growl' 4 | 5 | AUTOTEST_IMAGE_PATH = File.dirname(File.symlink?(__FILE__) ? File.readlink(__FILE__) : File.expand_path(__FILE__)) 6 | MATCH_PATTERN = /\d+\s.*examples?,\s\d+\s.*failures?(?:,\s\d+\s.*pending)?/ 7 | 8 | module Autotest::Growl 9 | def self.display(results,image) 10 | growl_it :image => image, :results => results, :message => "Spec Results" 11 | end 12 | 13 | def self.get_result_image(output) 14 | if output =~ /[1-9]\sfailures?/ || output =~ /errors/ 15 | item ="red" 16 | elsif output =~ /pending/ 17 | item = "pending" 18 | else 19 | item = "green" 20 | end 21 | File.join(AUTOTEST_IMAGE_PATH,"#{item}.jpg") 22 | end 23 | 24 | Autotest.add_hook :ran_command do |autotest| 25 | filtered = autotest.results.grep(/\d+\s.*examples?/) 26 | output = filtered.empty? ? "errors" : filtered.last.slice(MATCH_PATTERN) 27 | display(output,get_result_image(output)) 28 | end 29 | 30 | def self.growl_it (args) 31 | `growlnotify -n autotest --image #{args[:image]} -m #{args[:results].inspect} #{args[:message]}` 32 | end 33 | 34 | end 35 | 36 | Autotest.add_hook :initialize do |autotest| 37 | %w{.svn .hg .git vendor}.each {|exception| autotest.add_exception(exception)} 38 | end 39 | -------------------------------------------------------------------------------- /mac/spec_growl/pending.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/mac/spec_growl/pending.jpg -------------------------------------------------------------------------------- /mac/spec_growl/red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/mac/spec_growl/red.jpg -------------------------------------------------------------------------------- /mac/ssh.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Disabled 6 | 7 | Label 8 | com.openssh.sshd 9 | Program 10 | /usr/libexec/sshd-keygen-wrapper 11 | ProgramArguments 12 | 13 | /usr/sbin/sshd 14 | -i 15 | 16 | Sockets 17 | 18 | Listeners 19 | 20 | SockServiceName 21 | secret-ssh 22 | Bonjour 23 | 24 | secret-ssh 25 | sftp-ssh 26 | 27 | 28 | 29 | inetdCompatibility 30 | 31 | Wait 32 | 33 | 34 | StandardErrorPath 35 | /dev/null 36 | SHAuthorizationRight 37 | system.preferences 38 | 39 | 40 | -------------------------------------------------------------------------------- /mac/terminal/Basic.terminal: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BackgroundColor 6 | 7 | YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS 8 | AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB 9 | TxAtMC4wMDU0MzQ3ODI2MDkgMC4wMDU0MzQ3ODI2MDkgMC4wMDU0MzQ3ODI2MDkA0hAR 10 | EhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXll 11 | ZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhPXGJkZpabpq+3usPV2N0AAAAAAAAB 12 | AQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA3w== 13 | 14 | Font 15 | 16 | YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS 17 | AAGGoKQHCBESVSRudWxs1AkKCwwNDg8QViRjbGFzc1ZOU05hbWVWTlNTaXplWE5TZkZs 18 | YWdzgAOAAiNALAAAAAAAABAQXURyb2lkU2Fuc01vbm/SExQVFlokY2xhc3NuYW1lWCRj 19 | bGFzc2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEaG1Ryb290 20 | gAEIERojLTI3PEJLUllgaWttdniGi5afpqmyxMfMAAAAAAAAAQEAAAAAAAAAHAAAAAAA 21 | AAAAAAAAAAAAAM4= 22 | 23 | FontAntialias 24 | 25 | FontWidthSpacing 26 | 1.004032258064516 27 | ProfileCurrentVersion 28 | 2.0099999999999998 29 | TextBoldColor 30 | 31 | YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS 32 | AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB 33 | RjEgMSAxANIQERITWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVj 34 | dF8QD05TS2V5ZWRBcmNoaXZlctEXGFRyb290gAEIERojLTI3O0FIT1xiZGZtcn2GjpGa 35 | rK+0AAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAALY= 36 | 37 | TextColor 38 | 39 | YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS 40 | AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB 41 | RjEgMSAxANIQERITWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVj 42 | dF8QD05TS2V5ZWRBcmNoaXZlctEXGFRyb290gAEIERojLTI3O0FIT1xiZGZtcn2GjpGa 43 | rK+0AAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAALY= 44 | 45 | name 46 | Basic 47 | type 48 | Window Settings 49 | 50 | 51 | -------------------------------------------------------------------------------- /mac/terminal/developwithpassion.terminal: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BackgroundColor 6 | 7 | YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS 8 | AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB 9 | TxAtMC4wMDU0MzQ3ODI2MDkgMC4wMDU0MzQ3ODI2MDkgMC4wMDU0MzQ3ODI2MDkA0hAR 10 | EhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXll 11 | ZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhPXGJkZpabpq+3usPV2N0AAAAAAAAB 12 | AQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA3w== 13 | 14 | Font 15 | 16 | YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS 17 | AAGGoKQHCBESVSRudWxs1AkKCwwNDg8QViRjbGFzc1ZOU05hbWVWTlNTaXplWE5TZkZs 18 | YWdzgAOAAiNALAAAAAAAABAQXURyb2lkU2Fuc01vbm/SExQVFlokY2xhc3NuYW1lWCRj 19 | bGFzc2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEaG1Ryb290 20 | gAEIERojLTI3PEJLUllgaWttdniGi5afpqmyxMfMAAAAAAAAAQEAAAAAAAAAHAAAAAAA 21 | AAAAAAAAAAAAAM4= 22 | 23 | FontAntialias 24 | 25 | FontWidthSpacing 26 | 1.004032258064516 27 | ProfileCurrentVersion 28 | 2.0099999999999998 29 | TextBoldColor 30 | 31 | YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS 32 | AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB 33 | RjEgMSAxANIQERITWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVj 34 | dF8QD05TS2V5ZWRBcmNoaXZlctEXGFRyb290gAEIERojLTI3O0FIT1xiZGZtcn2GjpGa 35 | rK+0AAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAALY= 36 | 37 | TextColor 38 | 39 | YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS 40 | AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB 41 | RjEgMSAxANIQERITWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVj 42 | dF8QD05TS2V5ZWRBcmNoaXZlctEXGFRyb290gAEIERojLTI3O0FIT1xiZGZtcn2GjpGa 43 | rK+0AAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAALY= 44 | 45 | name 46 | developwithpassion 47 | type 48 | Window Settings 49 | 50 | 51 | -------------------------------------------------------------------------------- /msys_kick_off: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | settings=$(./settings_file) 4 | if [ -e $settings ] 5 | then 6 | rm Gemfile.lock 7 | gem install bundler 8 | bundle install 9 | expands 10 | else 11 | cp settings_template $settings 12 | echo "Please make any changes you need to the file $settings, and then re-run this script" 13 | fi 14 | 15 | 16 | -------------------------------------------------------------------------------- /osx_or_cygwin_finish: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | rm Gemfile.lock 4 | bundle install 5 | expands 6 | -------------------------------------------------------------------------------- /osx_or_cygwin_kick_off: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | install_rvm() 4 | { 5 | ./automation/rvm/rvm_install 6 | cp shared/dotfiles/rvm/global.gems ~/ 7 | ./automation/rvm/rvm_install_some_rubies 8 | } 9 | 10 | settings=$(./settings_file) 11 | if [ -e $settings ] 12 | then 13 | install_rvm 14 | else 15 | cp settings_template $settings 16 | echo "Please make any changes you need to the file $settings, and then re-run this script" 17 | fi 18 | 19 | 20 | -------------------------------------------------------------------------------- /remapping_advantage_pro: -------------------------------------------------------------------------------- 1 | #Remapping Advantage Pro From Scratch 2 | 3 | 1. Switch Keyboard Mode To Mac (hold down equals then press m) 4 | 5 | ##Remap the keys: (anytime you want to remap - hold Program then F12 - when finished remapping Program - F12 to finish) 6 | 7 | 1. Caps Locks To Command Key - [Right Control - CapsLock] 8 | 2. Control Key - [Right Windows Key - Right Control] 9 | 3. Alt - [LeftAlt - Delete] 10 | -------------------------------------------------------------------------------- /settings_file: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | settings=$(whoami).settings 4 | settings=$(echo $settings | sed "s:[ \-]::g") 5 | settings=$(echo $settings | sed "s:/::g") 6 | settings=$(echo $settings | sed "s:'::g") 7 | settings=$(echo $settings | tr '[:upper:]' '[:lower:]') 8 | echo $settings 9 | -------------------------------------------------------------------------------- /settings_template: -------------------------------------------------------------------------------- 1 | configatron.configure_from_hash :my => 2 | { 3 | :unix_style_devtools_root => '~/repositories/developwithpassion/devtools', 4 | :twitter_token_folder => [configatron.core.home,%w[repositories developwithpassion twitter_tokens]].as_glob_pattern, 5 | :ssh_folder => [configatron.core.home, %w[repositories developwithpassion ssh]].as_glob_pattern, 6 | :main_ssh_key => 'developwithpassion', 7 | :windows => 8 | { 9 | :paths => 10 | { 11 | :win_style => 12 | { 13 | :devenv => 'C:\utils\vs2010\Common7\IDE\devenv.exe', 14 | :ahk_spy => 'C:\utils\autohotkey\AU3_Spy.exe', 15 | :process_explorer => 'C:\utils\sysinternals\procexp.exe', 16 | :divvy => 'C:\utils\divvy\Divvy.exe', 17 | :camrec => 'C:\utils\camtasia_studio\CamRecorder.exe', 18 | :msys => 'C:\utils\mingw\msys\1.0\msys.bat', 19 | :cygwin => 'C:\utils\cygwin\cygwin.bat', 20 | :ahk_scripts => 'C:\users\jp\repositories\developwithpassion\devtools\windows\autohotkey\ahk*.ahk', 21 | }, 22 | :unix_style => 23 | { 24 | :mingw => '/c/utils/mingw', 25 | :vim => '/usr/local/bin/vim.exe', 26 | :devenv => '/c/utils/vs2010/Common7/IDE/devenv.exe' 27 | } 28 | } 29 | }, 30 | :github => 31 | { 32 | :email => 'your email address', 33 | :full_name => 'Name', 34 | :user => 'github user name' 35 | } 36 | } 37 | 38 | -------------------------------------------------------------------------------- /setup_osx.md: -------------------------------------------------------------------------------- 1 | #OSX Configuration 2 | 3 | * This document assumes you have cloned the devtools repository into the following folder on your machine: 4 | * ~/repositories/developwithpassion/devtools 5 | 6 | 1. Open a terminal shell and navigate to your devtools folder 7 | 2. Run the following command 8 | ``` 9 | ./osx_or_cygwin_kick_off 10 | ``` 11 | 2. Exit the terminal session 12 | 3. Start a new terminal session and navigate back to the devtools folder. 13 | 4. Run the following commands: 14 | ``` 15 | ./osx_or_cygwin_finish 16 | ``` 17 | 18 | ##Configuring Brew (Only if you don't already have it installed) 19 | 20 | ###Prerequisites 21 | 22 | * An Intel CPU 2 23 | * OS X 10.5 or higher 24 | * Command Line Tools for Xcode or Xcode 3with X11 4 25 | 26 | 1. Open a real prompt (ie. Terminal.app, not in e.g. an Emacs-shell) and navigate to your devtools folder 27 | 2. Run the following command 28 | ``` 29 | ./automation/brew/brew_install 30 | ``` 31 | 3. Close the prompt and reopen a new prompt and navigate back to the devtools folder 32 | 4. Run the following command 33 | ``` 34 | ./automation/brew/brew_configure_base_packages 35 | ``` 36 | At this point you will have a configured brew instance with the following packages installed: 37 | 38 | * coreutils 39 | * ctags 40 | * freetds 41 | * gdbm 42 | * git 43 | * ircii 44 | * libevent 45 | * links 46 | * lynx 47 | * macvim 48 | * neon 49 | * node 50 | * pkg-config 51 | * readline 52 | * reattach-to-user-namespace 53 | * sqlite 54 | * tmux 55 | * unixodbc 56 | * xz 57 | * zsh 58 | -------------------------------------------------------------------------------- /setup_windows_cygwin.md: -------------------------------------------------------------------------------- 1 | #Cygwin Configuration 2 | 3 | * This document makes the following 2 assumptions: 4 | * You have cloned the devtools repository into the following folder on your machine: 5 | * ~/repositories/developwithpassion/devtools 6 | * You have installed rvm into your cygwin instance using the instructions provided here: 7 | 8 | 1. Open a terminal shell and navigate to your devtools folder 9 | 2. Run the following command 10 | ``` 11 | ./osx_or_cygwin_kick_off 12 | ``` 13 | 2. Exit the terminal session 14 | 3. Start a new terminal session and navigate back to the devtools folder. 15 | 4. Run the following commands: 16 | ``` 17 | ./osx_or_cygwin_finish 18 | ``` 19 | -------------------------------------------------------------------------------- /setup_windows_msys.md: -------------------------------------------------------------------------------- 1 | ##Running On Windows 2 | 3 | * For the most optimal experience it is strongly recommended to configure your windows machine with the base set of tools outlined [here](http://blog.developwithpassion.com/2012/03/12/repaving-a-new-window-7-vm/) 4 | 5 | ###MSYS 6 | 7 | * Open up an msys session and navigate into the devtools folder you cloned above. 8 | * Type in the following command: 9 | ``` 10 | ./msys_kick_off 11 | ``` 12 | * Change the settings in the [your_login_user_name].settings file as needed 13 | * Type in the following command: 14 | ``` 15 | ./msys_kick_off 16 | ``` 17 | * Exit your shell session 18 | * Start a new msys session and type devtools (this is an alias that should now be active) 19 | * Run the script: 20 | ``` 21 | update_vim_plugins 22 | ``` 23 | At this point vim should be configured, and autohotkey should be running with the scripts loaded in. 24 | 25 | ##Gotchas 26 | 27 | 1. The autohotkey scripts are setup to assume that you are using your LWIN key to trigger the mnemonic entry modes (more on that later). When I am on a windows based contract, I will run a client specific windows VM under vmware fusion. I also have my keyboard shortcuts on osx setup so that my CapsLock key is the [Command key](https://skitch.com/jpboodhoo/8ccwh/system-preferences) 28 | 29 | 2. Even though I don't use it a lot, [executor](http://executor.dk/) is the launcher that I use on windows, and it is assumed to be setup to launch with the ALT-Q binding. 30 | 31 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/.gitignore: -------------------------------------------------------------------------------- 1 | .* 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_aliases.cygwin.dotfile.mustache: -------------------------------------------------------------------------------- 1 | alias cyg-wrapper={{{core.devtools_root}}}/automation/cygwin/cyg-wrapper.sh 2 | 3 | alias vsln='cyg-wrapper /c/utils/vs2010/Common7/IDE/devenv.exe *.sln --cyg-env-convert=APPDATA,LOCALAPPDATA,ProgramData,ALLUSERSPROFILE,WINDIR --fork=1' 4 | 5 | alias prompt='cyg-wrapper cmd.exe --cyg-env-convert=APPDATA,LOCALAPPDATA,ProgramData,ALLUSERSPROFILE,WINDIR --fork=2' 6 | 7 | alias psh='cyg-wrapper powershell --cyg-env-convert=APPDATA,LOCALAPPDATA,ProgramData,ALLUSERSPROFILE,WINDIR --fork=2' 8 | alias open='cygstart' 9 | 10 | function gvim() 11 | { 12 | cyg-wrapper {{{my.windows.paths.unix_style.vim}}}/gvim.exe --fork=1 $* 13 | } 14 | 15 | alias ~~='cd /c/users/jp' 16 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_aliases.dotfile.mustache: -------------------------------------------------------------------------------- 1 | . ~/.bash_aliases.shared 2 | 3 | {{# core.is_osx }} 4 | . ~/.bash_aliases.osx 5 | {{/core.is_osx}} 6 | 7 | {{# core.is_mingw }} 8 | . ~/.bash_aliases.mingw 9 | {{/core.is_mingw }} 10 | 11 | {{# core.is_cygwin }} 12 | . ~/.bash_aliases.cygwin 13 | {{/core.is_cygwin }} 14 | 15 | {{# core.is_windows }} 16 | . ~/.bash_aliases.windows 17 | {{/core.is_windows }} 18 | 19 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_aliases.mingw.dotfile.mustache: -------------------------------------------------------------------------------- 1 | alias shell='start {{{my.windows.paths.unix_style.mingw_path}}}/msys/1.0/msys.bat' 2 | alias psh='start powershell' 3 | alias open=start 4 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_aliases.osx.dotfile.mustache: -------------------------------------------------------------------------------- 1 | alias bctags=/usr/local/Cellar/ctags/5.8/bin/ctags 2 | alias rspecs='rspec spec/**/*.rb' 3 | # alias rk2='cd ~/repositories/github/keymando;killall Keymando;killall Terminal;rake build:compile_release;open build/Keymando/Build/Products/Release/Keymando.app/Contents/MacOS/Keymando' 4 | alias rk2='cd ~/repositories/github/keymando;killall Keymando;rake run' 5 | # alias rk2='killall Keymando;open /Applications/Keymando.app' 6 | alias dwp='cd ~/repositories/github/dwp' 7 | 8 | function attach() 9 | { 10 | hdiutil attach $1 -mountpoint /tempfiles/downloads/blah 11 | cd /tempfiles/downloads/blah 12 | } 13 | 14 | function detach() 15 | { 16 | hdiutil detach /tempfiles/downloads/blah 17 | } 18 | 19 | alias mutt_clear='find /tempfiles/mutt_scratch -type file -exec rm {} +' 20 | alias muttd='mutt_clear;mutt -F ~/.muttrc_jp_developwithpassion' 21 | alias smail="tmux new-window 'mutt -F ~/.muttrc_jp_developwithpassion'" 22 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_aliases.shared.dotfile.mustache: -------------------------------------------------------------------------------- 1 | #this is a comment 2 | #command aliases 3 | alias vi={{ core.vi }} 4 | {{^ core.is_cygwin }} 5 | alias vim={{ core.vim }} 6 | {{/core.is_cygwin}} 7 | 8 | alias ..='cd ..' 9 | alias rm='rm -fr $*' 10 | alias qtar='tar -xzvf $*' 11 | 12 | #editing command aliases 13 | alias change_hosts='devtools;vi shared/hosts/hosts.mustache' 14 | 15 | if [ -x /usr/bin/dircolors ]; then 16 | test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" 17 | 18 | {{^ core.is_osx }} 19 | alias ls='ls --color=auto' 20 | {{/core.is_osx }} 21 | {{# core.is_osx }} 22 | alias ls='gls --color=auto' 23 | {{/core.is_osx }} 24 | alias grep='grep --color=auto' 25 | alias fgrep='fgrep --color=auto' 26 | alias egrep='egrep --color=auto' 27 | fi 28 | 29 | 30 | alias ll='ls -alF' 31 | alias la='ls -A' 32 | alias l='ls -CF' 33 | 34 | # utility functions 35 | 36 | #function that will both create and switch to the directory specified 37 | function take() 38 | { 39 | mkdir $1 40 | cd $1 41 | } 42 | 43 | function dwp_git_clone() 44 | { 45 | git clone git@developwithpassion.repo:$1 $2 46 | } 47 | 48 | function github_git_clone() 49 | { 50 | git clone git@github.com:{{my.github.user}}/$1 $2 51 | } 52 | 53 | function bb_git_clone() 54 | { 55 | git clone git@bitbucket:{{my.github.user}}/$1 $2 56 | } 57 | 58 | function slice_git_clone() 59 | { 60 | git clone git@slicehost:$1 $2 61 | } 62 | 63 | #directory aliases 64 | alias developwithpassion='cd ~/repositories/developwithpassion' 65 | alias myssh='cd ~/repositories/developwithpassion/ssh' 66 | alias github='cd ~/repositories/github' 67 | alias devtools='cd {{{core.devtools_root}}}' 68 | alias blog='cd ~/repositories/developwithpassion/blog.developwithpassion.com' 69 | 70 | #file aliases 71 | alias licenses='vi ~/repositories/developwithpassion/developwithpassion.com/licenses/licenses.markdown' 72 | 73 | #git aliases 74 | alias ggm="gco master" 75 | alias gdaob="gitrb delete_all_other_branches" 76 | alias gcm="gitrb commit" 77 | alias gco="gitrb checkout $*" 78 | alias gmrg="gitrb merge $*" 79 | alias gs="gitrb switch $*" 80 | alias gp="gitrb push $*" 81 | alias gpo="gp origin" 82 | alias gpuo="gitrb pull origin $*" 83 | alias gbd="gitrb branch_delete $*" 84 | alias gb="git branch" 85 | alias gbr="git branch --remote" 86 | alias gd="git diff $1" 87 | alias gdt="git difftool $1" 88 | alias grh="gitrb reset" 89 | alias gf="git fetch $*" 90 | alias gfo="git fetch origin $*" 91 | alias gst="git status" 92 | 93 | alias dts='devtools_sync' 94 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_aliases.windows.osx.dotfile.mustache: -------------------------------------------------------------------------------- 1 | alias dwp="cd ~/repositories/github/dwp" 2 | alias prep="cd ~/repositories/github/dwp/prep" 3 | alias app="cd ~/repositories/github/dwp/app" 4 | alias setup="cd ~/repositories/github/dwp/setup" 5 | alias eahk="vim ~/repositories/developwithpassion/devtools/windows/autohotkey" 6 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_aliases_coreutils.dotfile.mustache: -------------------------------------------------------------------------------- 1 | brew_prefix=`brew --prefix` 2 | alias base64="$brew_prefix/bin/gbase64" 3 | alias basename="$brew_prefix/bin/gbasename" 4 | alias cat="$brew_prefix/bin/gcat" 5 | alias chcon="$brew_prefix/bin/gchcon" 6 | alias chgrp="$brew_prefix/bin/gchgrp" 7 | alias chmod="$brew_prefix/bin/gchmod" 8 | alias chown="$brew_prefix/bin/gchown" 9 | alias chroot="$brew_prefix/bin/gchroot" 10 | alias cksum="$brew_prefix/bin/gcksum" 11 | alias comm="$brew_prefix/bin/gcomm" 12 | alias cp="$brew_prefix/bin/gcp" 13 | alias csplit="$brew_prefix/bin/gcsplit" 14 | alias cut="$brew_prefix/bin/gcut" 15 | alias date="$brew_prefix/bin/gdate" 16 | alias dd="$brew_prefix/bin/gdd" 17 | alias df="$brew_prefix/bin/gdf" 18 | alias dir="$brew_prefix/bin/gdir" 19 | alias dircolors="$brew_prefix/bin/gdircolors" 20 | alias dirname="$brew_prefix/bin/gdirname" 21 | alias du="$brew_prefix/bin/gdu" 22 | alias echo="$brew_prefix/bin/gecho" 23 | alias env="$brew_prefix/bin/genv" 24 | alias expand="$brew_prefix/bin/gexpand" 25 | alias expr="$brew_prefix/bin/gexpr" 26 | alias factor="$brew_prefix/bin/gfactor" 27 | alias false="$brew_prefix/bin/gfalse" 28 | alias fmt="$brew_prefix/bin/gfmt" 29 | alias fold="$brew_prefix/bin/gfold" 30 | alias groups="$brew_prefix/bin/ggroups" 31 | alias head="$brew_prefix/bin/ghead" 32 | alias hostid="$brew_prefix/bin/ghostid" 33 | alias id="$brew_prefix/bin/gid" 34 | alias install="$brew_prefix/bin/ginstall" 35 | alias join="$brew_prefix/bin/gjoin" 36 | alias kill="$brew_prefix/bin/gkill" 37 | alias link="$brew_prefix/bin/glink" 38 | alias ln="$brew_prefix/bin/gln" 39 | alias logname="$brew_prefix/bin/glogname" 40 | alias ls="$brew_prefix/bin/gls" 41 | alias md5sum="$brew_prefix/bin/gmd5sum" 42 | alias mkdir="$brew_prefix/bin/gmkdir" 43 | alias mkfifo="$brew_prefix/bin/gmkfifo" 44 | alias mknod="$brew_prefix/bin/gmknod" 45 | alias mktemp="$brew_prefix/bin/gmktemp" 46 | alias mv="$brew_prefix/bin/gmv" 47 | alias nice="$brew_prefix/bin/gnice" 48 | alias nl="$brew_prefix/bin/gnl" 49 | alias nohup="$brew_prefix/bin/gnohup" 50 | alias od="$brew_prefix/bin/god" 51 | alias paste="$brew_prefix/bin/gpaste" 52 | alias pathchk="$brew_prefix/bin/gpathchk" 53 | alias pinky="$brew_prefix/bin/gpinky" 54 | alias pr="$brew_prefix/bin/gpr" 55 | alias printenv="$brew_prefix/bin/gprintenv" 56 | alias printf="$brew_prefix/bin/gprintf" 57 | alias ptx="$brew_prefix/bin/gptx" 58 | alias pwd="$brew_prefix/bin/gpwd" 59 | alias readlink="$brew_prefix/bin/greadlink" 60 | alias rm="$brew_prefix/bin/grm" 61 | alias rmdir="$brew_prefix/bin/grmdir" 62 | alias runcon="$brew_prefix/bin/gruncon" 63 | alias seq="$brew_prefix/bin/gseq" 64 | alias sha1sum="$brew_prefix/bin/gsha1sum" 65 | alias sha224sum="$brew_prefix/bin/gsha224sum" 66 | alias sha256sum="$brew_prefix/bin/gsha256sum" 67 | alias sha384sum="$brew_prefix/bin/gsha384sum" 68 | alias sha512sum="$brew_prefix/bin/gsha512sum" 69 | alias shred="$brew_prefix/bin/gshred" 70 | alias shuf="$brew_prefix/bin/gshuf" 71 | alias sleep="$brew_prefix/bin/gsleep" 72 | alias sort="$brew_prefix/bin/gsort" 73 | alias split="$brew_prefix/bin/gsplit" 74 | alias stat="$brew_prefix/bin/gstat" 75 | alias stty="$brew_prefix/bin/gstty" 76 | alias sum="$brew_prefix/bin/gsum" 77 | alias sync="$brew_prefix/bin/gsync" 78 | alias tac="$brew_prefix/bin/gtac" 79 | alias tail="$brew_prefix/bin/gtail" 80 | alias tee="$brew_prefix/bin/gtee" 81 | alias test="$brew_prefix/bin/gtest" 82 | alias touch="$brew_prefix/bin/gtouch" 83 | alias tr="$brew_prefix/bin/gtr" 84 | alias true="$brew_prefix/bin/gtrue" 85 | alias tsort="$brew_prefix/bin/gtsort" 86 | alias tty="$brew_prefix/bin/gtty" 87 | alias uname="$brew_prefix/bin/guname" 88 | alias unexpand="$brew_prefix/bin/gunexpand" 89 | alias uniq="$brew_prefix/bin/guniq" 90 | alias unlink="$brew_prefix/bin/gunlink" 91 | alias uptime="$brew_prefix/bin/guptime" 92 | alias users="$brew_prefix/bin/gusers" 93 | alias vdir="$brew_prefix/bin/gvdir" 94 | alias wc="$brew_prefix/bin/gwc" 95 | alias who="$brew_prefix/bin/gwho" 96 | alias whoami="$brew_prefix/bin/gwhoami" 97 | alias yes="$brew_prefix/bin/gyes" 98 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_colors.dotfile.mustache: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #color constants 4 | DULL=0 5 | BRIGHT=1 6 | 7 | FG_BLACK=30 8 | FG_RED=31 9 | FG_GREEN=32 10 | FG_YELLOW=33 11 | FG_BLUE=34 12 | FG_VIOLET=35 13 | FG_CYAN=36 14 | FG_WHITE=37 15 | 16 | FG_NULL=00 17 | 18 | BG_BLACK=40 19 | BG_RED=41 20 | BG_GREEN=42 21 | BG_YELLOW=43 22 | BG_BLUE=44 23 | BG_VIOLET=45 24 | BG_CYAN=46 25 | BG_WHITE=47 26 | 27 | BG_NULL=00 28 | 29 | ## 30 | # ANSI Escape Commands 31 | ## 32 | ESC="\033" 33 | NORMAL="\[$ESC[m\]" 34 | RESET="\[$ESC[${DULL};${FG_WHITE};${BG_NULL}m\]" 35 | 36 | BLACK="\[$ESC[${DULL};${FG_BLACK}m\]" 37 | RED="\[$ESC[${DULL};${FG_RED}m\]" 38 | GREEN="\[$ESC[${DULL};${FG_GREEN}m\]" 39 | YELLOW="\[$ESC[${DULL};${FG_YELLOW}m\]" 40 | BLUE="\[$ESC[${DULL};${FG_BLUE}m\]" 41 | VIOLET="\[$ESC[${DULL};${FG_VIOLET}m\]" 42 | CYAN="\[$ESC[${DULL};${FG_CYAN}m\]" 43 | WHITE="\[$ESC[${DULL};${FG_WHITE}m\]" 44 | 45 | # BRIGHT TEXT 46 | BRIGHT_BLACK="\[$ESC[${BRIGHT};${FG_BLACK}m\]" 47 | BRIGHT_RED="\[$ESC[${BRIGHT};${FG_RED}m\]" 48 | BRIGHT_GREEN="\[$ESC[${BRIGHT};${FG_GREEN}m\]" 49 | BRIGHT_YELLOW="\[$ESC[${BRIGHT};${FG_YELLOW}m\]" 50 | BRIGHT_BLUE="\[$ESC[${BRIGHT};${FG_BLUE}m\]" 51 | BRIGHT_VIOLET="\[$ESC[${BRIGHT};${FG_VIOLET}m\]" 52 | BRIGHT_CYAN="\[$ESC[${BRIGHT};${FG_CYAN}m\]" 53 | BRIGHT_WHITE="\[$ESC[${BRIGHT};${FG_WHITE}m\]" 54 | 55 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_config.dotfile.mustache: -------------------------------------------------------------------------------- 1 | #ignore case in file/folder names 2 | {{^ core.is_linux }} 3 | bind "set completion-ignore-case on" 4 | {{/core.is_linux }} 5 | #enable vim style command line behaviour 6 | set -o vi 7 | {{# core.is_mingw}} 8 | function vie() 9 | { 10 | bind '"\C-i":complete' 11 | bind '"\Tab":complete' 12 | } 13 | {{/core.is_mingw}} 14 | 15 | #don't duplicate history lines 16 | HISTCONTROL=ignoredups:ignorespace 17 | 18 | #append to history file instead of overwriting it 19 | {{^ core.is_linux}} 20 | shopt -s histappend 21 | {{/core.is_linux}} 22 | 23 | #set history length and file size 24 | HISTSIZE=1000 25 | HISTFILESIZE=2000 26 | 27 | {{^ core.is_linux}} 28 | shopt -s checkwinsize 29 | {{/core.is_linux}} 30 | 31 | if [ -f /etc/bash_completion ] && ~ shopt -oq posix; then 32 | . /etc/bash_completion 33 | fi 34 | 35 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_env.dotfile.mustache: -------------------------------------------------------------------------------- 1 | OLD_PATH=$PATH 2 | export PATH="/usr/local/bin:/bin:/usr/local/sbin" 3 | 4 | {{# core.is_mingw }} 5 | export PATH="$PATH:/c/utils/git/bin:/c/ruby/193/bin:/c/utils/mercurial:{{{my.windows.paths.unix_style.vim}}}" 6 | {{/core.is_mingw }} 7 | 8 | export PATH="$PATH:$OLD_PATH" 9 | export PATH="$PATH:$(find {{{my.unix_style_devtools_root}}}/automation -name '.*' -prune -o -type d | tr "\n" ":")" 10 | export EDITOR='{{{core.editor}}}' 11 | 12 | #used to show changes in the prompt for a git folder 13 | export GIT_PS1_SHOWDIRTYSTATE=1 14 | 15 | # Unbreak broken, non-colored terminal 16 | export TERM='{{{core.term}}}' 17 | export GREP_OPTIONS="--color" 18 | 19 | {{# core.is_cygwin }} 20 | export WINDIR='/cygdrive/c/windows' 21 | {{/core.is_cygwin }} 22 | 23 | {{^ core.is_windows }} 24 | if [ -f "${HOME}/.gpg-agent-info" ]; then 25 | . "${HOME}/.gpg-agent-info" 26 | export GPG_AGENT_INFO 27 | export SSH_AUTH_SOCK 28 | export SSH_AGENT_PID 29 | fi 30 | {{/core.is_windows }} 31 | 32 | 33 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_git.dotfile.mustache: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | {{^ core.is_cygwin}} 3 | current_git_branch() { 4 | git_directory="$(__gitdir)" 5 | if [ -n "$git_directory" ]; then 6 | echo `__git_ps1 "(%s)"` 7 | fi 8 | } 9 | {{/core.is_cygwin}} 10 | 11 | #show the current working directory - followed by the git branch in red (if in a git directory) 12 | 13 | {{# core.is_cygwin }} 14 | PS1="\n$BRIGHT_CYAN\w$BRIGHT_YELLOW\n$GREEN => $RESET" 15 | {{/core.is_cygwin }} 16 | 17 | {{# core.is_mingw }} 18 | PS1="\n$BRIGHT_YELLOW\w$BRIGHT_RED\$(current_git_branch)\n$GREEN => $RESET" 19 | {{/core.is_mingw }} 20 | 21 | {{# core.is_osx }} 22 | PS1="\n$BLUE\w$RED\$(current_git_branch)\n$GREEN ⇒ $RESET" 23 | {{/core.is_osx}} 24 | 25 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_profile.dotfile.mustache: -------------------------------------------------------------------------------- 1 | if [ -n "$BASH_VERSION" ]; then 2 | . ~/.bashrc 3 | fi 4 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_source_rvm.dotfile.mustache: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then source "$HOME/.rvm/scripts/rvm" ; fi 4 | [[ -r "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/completion" 5 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bash_ssh.dotfile.mustache: -------------------------------------------------------------------------------- 1 | #--- SSH Settings ------------------------------ 2 | SSH_ENV="$HOME/.ssh/environment" 3 | 4 | function start_agent { 5 | echo "Initializing new SSH agent..." 6 | ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}" 7 | echo succeeded 8 | chmod 600 "${SSH_ENV}" 9 | . "${SSH_ENV}" > /dev/null 10 | ssh-add "$HOME/.ssh/{{{my.main_ssh_key}}}"; 11 | } 12 | if [ -f "${SSH_ENV}" ]; then 13 | . "${SSH_ENV}" > /dev/null 14 | #ps ${SSH_AGENT_PID} doesn't work under cywgin 15 | ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { 16 | start_agent; 17 | } 18 | else 19 | start_agent; 20 | fi 21 | #--- END SSH Settings ------------------------------ 22 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/bashrc.dotfile.mustache: -------------------------------------------------------------------------------- 1 | # bounce out if not running in interactive mode 2 | [ -z "$PS1" ] && return 3 | 4 | #. ~/.bash_aliases_coreutils 5 | . ~/.bash_aliases 6 | 7 | {{# core.is_osx }} 8 | . ~/.bash_aliases.osx 9 | . ~/.bash_source_rvm 10 | {{/core.is_osx}} 11 | 12 | {{# core.is_mingw }} 13 | . ~/.bash_aliases.mingw 14 | {{/core.is_mingw }} 15 | 16 | {{# core.is_cygwin }} 17 | . ~/.bash_aliases.cygwin 18 | {{/core.is_cygwin }} 19 | 20 | {{# core.is_windows }} 21 | . ~/.bash_aliases.windows 22 | . ~/.bash_ssh 23 | {{/core.is_windows }} 24 | 25 | {{^ core.is_linux }} 26 | . ~/.bash_colors 27 | {{/core.is_linux }} 28 | 29 | . ~/.bash_config 30 | . ~/.bash_env 31 | . ~/.bash_git 32 | . ~/.bash_git_completion 33 | 34 | -------------------------------------------------------------------------------- /shared/dotfiles/bash/inputrc.dotfile.mustache: -------------------------------------------------------------------------------- 1 | {{^core.is_mingw }} 2 | set editing-mode vi 3 | {{/core.is_mingw }} 4 | -------------------------------------------------------------------------------- /shared/dotfiles/git/.gitignore: -------------------------------------------------------------------------------- 1 | .gitconfig 2 | -------------------------------------------------------------------------------- /shared/dotfiles/git/gitconfig.dotfile.mustache: -------------------------------------------------------------------------------- 1 | [core] 2 | autocrlf = {{ git.autocrlf }} 3 | {{# core.is_windows }} 4 | editor = {{git.editor}} 5 | {{/core.is_windows}} 6 | 7 | [user] 8 | email = {{{my.github.email}}} 9 | name = {{{my.github.full_name}}} 10 | 11 | [alias] 12 | st = status -s 13 | ci = commit 14 | co = checkout 15 | df = diff 16 | dft = difftool 17 | mgt = mergetool 18 | lg = log -p 19 | lol = log --graph --decorate --oneline 20 | lola = log --graph --decorate --oneline --all 21 | 22 | [merge] 23 | tool = {{ git.merge_tool }} 24 | 25 | [diff] 26 | tool = {{ git.diff_tool }} 27 | 28 | [push] 29 | default = current 30 | 31 | [color] 32 | ui = auto 33 | 34 | [difftool "kaleidoscope"] 35 | cmd = ksdiff-wrapper git \"$LOCAL\" \"$REMOTE\" 36 | 37 | [difftool "bc3"] 38 | cmd = beyondcompare-diff.sh \"$LOCAL\" \"$REMOTE\" 39 | 40 | [difftool] 41 | prompt = false 42 | 43 | [mergetool] 44 | keepBackup = false 45 | 46 | 47 | [mergetool "bc3"] 48 | cmd = beyondcompare-merge.sh \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\" 49 | trustExitCode = true 50 | keepBackup = false 51 | 52 | [branch] 53 | autosetuprebase = always 54 | -------------------------------------------------------------------------------- /shared/dotfiles/gnupg/.gnupg/gpg-agent.conf: -------------------------------------------------------------------------------- 1 | use-standard-socket 2 | write-env-file /Users/jp/.gpg-agent-info 3 | -------------------------------------------------------------------------------- /shared/dotfiles/goobook/.gitignore: -------------------------------------------------------------------------------- 1 | .goobookrc 2 | -------------------------------------------------------------------------------- /shared/dotfiles/goobook/goobookrc.dotfile.mustache: -------------------------------------------------------------------------------- 1 | # "#" or ";" at the start of a line makes it a comment. 2 | [DEFAULT] 3 | # If not given here, email and password is taken from .netrc using 4 | # machine google.com 5 | email: jp@developwithpassion.com 6 | passwordeval: ~/repositories/developwithpassion/devtools/automation/keychain/get_keychain_password --account:jp@developwithpassion.com 7 | # The following are optional, defaults are shown 8 | ;cache_filename: ~/.goobook_cache 9 | ;cache_expiry_hours: 24 10 | ;filter_groupless_contacts: yes 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /shared/dotfiles/msmtp/.gitignore: -------------------------------------------------------------------------------- 1 | .msmtprc 2 | -------------------------------------------------------------------------------- /shared/dotfiles/msmtp/msmtprc.dotfile.mustache: -------------------------------------------------------------------------------- 1 | account jp 2 | host smtp.gmail.com 3 | port 587 4 | protocol smtp 5 | auth on 6 | from jp@developwithpassion.com 7 | user jp@developwithpassion.com 8 | tls on 9 | tls_trust_file ~/.mutt/equifax_gmail.cert 10 | 11 | account default : jp 12 | -------------------------------------------------------------------------------- /shared/dotfiles/mutt/.gitignore: -------------------------------------------------------------------------------- 1 | .muttrc* 2 | -------------------------------------------------------------------------------- /shared/dotfiles/mutt/.mutt/alias: -------------------------------------------------------------------------------- 1 | alias soulmate imgreat_ohyeah@msn.com (Soulmate) 2 | alias investments jp@developwithpassion.com (JP Boodhoo) , ronandsueathome@shaw.ca (Ron Robinson) 3 | alias jaboodhoo jaboodhoo@hotmail.com (Jean Boodhoo) 4 | 5 | # Accounting 6 | alias yvonne_graham ymgraham@shaw.ca (Yvonne Graham) 7 | alias matthey_may Matthew.May@mnp.ca (Matthew May) 8 | 9 | alias adam_aldrich aaldrich@daxko.com (Adam Aldrich) 10 | 11 | 12 | 13 | source ~/.mutt/aliases_aptus 14 | source ~/.mutt/aliases_courses 15 | -------------------------------------------------------------------------------- /shared/dotfiles/mutt/.mutt/aliases_courses: -------------------------------------------------------------------------------- 1 | # Towers Watson - June 2013 2 | alias dwp_2013_june Prasad.Kallianpur@towerswatson.com (Prasad Kallianpur), Weid.zhu@towerswatson.com (Weid Zhu), Steve.soegyono@towerswatson.com(Steve Soegyono), Henri.raath@towerswatson.com ( Henri Raath), Christian.maslen@towerswatson.com (Christian Maslen) 3 | 4 | 5 | -------------------------------------------------------------------------------- /shared/dotfiles/mutt/.mutt/equifax_gmail.cert: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDgDCCAumgAwIBAgIKO3T/ewAAAABoqDANBgkqhkiG9w0BAQUFADBGMQswCQYD 3 | VQQGEwJVUzETMBEGA1UEChMKR29vZ2xlIEluYzEiMCAGA1UEAxMZR29vZ2xlIElu 4 | dGVybmV0IEF1dGhvcml0eTAeFw0xMjA5MTIxMTU3NTBaFw0xMzA2MDcxOTQzMjda 5 | MGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1N 6 | b3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRcwFQYDVQQDEw5zbXRw 7 | LmdtYWlsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAv0UvQmjW1y96 8 | cOK6AdQVEYPRd3ZQ9UhxkKfuVaYS9riOESFkWxkz+b3Ts/EOA5SY8axkaJS7Qa/v 9 | N7laztYY8tTkx9Ml+eCY4xh0fFq9z4/WWADGqTY5I0wvqjZr+jBuYGulK1fU4ZUS 10 | QpuZMMO9x7Bmr5LVP9C5r2qnoqtMtJUCAwEAAaOCAVEwggFNMB0GA1UdJQQWMBQG 11 | CCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQUaCtARMZ9urIDfdpR6v1AkQsr 12 | 44owHwYDVR0jBBgwFoAUv8Aw6/VDET5nup6R+/xq2uNrEiQwWwYDVR0fBFQwUjBQ 13 | oE6gTIZKaHR0cDovL3d3dy5nc3RhdGljLmNvbS9Hb29nbGVJbnRlcm5ldEF1dGhv 14 | cml0eS9Hb29nbGVJbnRlcm5ldEF1dGhvcml0eS5jcmwwZgYIKwYBBQUHAQEEWjBY 15 | MFYGCCsGAQUFBzAChkpodHRwOi8vd3d3LmdzdGF0aWMuY29tL0dvb2dsZUludGVy 16 | bmV0QXV0aG9yaXR5L0dvb2dsZUludGVybmV0QXV0aG9yaXR5LmNydDAMBgNVHRMB 17 | Af8EAjAAMBkGA1UdEQQSMBCCDnNtdHAuZ21haWwuY29tMA0GCSqGSIb3DQEBBQUA 18 | A4GBADSkwmtEUhy/AhX2sIULT0Q5S9OlfKxbyE8hEc8nxls3jbk5yKZYd35Bzyy8 19 | raoUPFuD3IH+zP/FGj5LPQirjnJLUvuFDsiM4eowPUthQad9SGWWdz6hCx8HpEUZ 20 | 1ssGnwb3HX34e9RH57v9LdtVUPdFYQsBJ36miGPylWk6r0xx 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /shared/dotfiles/mutt/.mutt/gpg.rc: -------------------------------------------------------------------------------- 1 | # -*-muttrc-*- 2 | # 3 | # Command formats for gpg. 4 | # 5 | # This version uses gpg-2comp from 6 | # http://70t.de/download/gpg-2comp.tar.gz 7 | # 8 | # $Id$ 9 | # 10 | # %p The empty string when no passphrase is needed, 11 | # the string "PGPPASSFD=0" if one is needed. 12 | # 13 | # This is mostly used in conditional % sequences. 14 | # 15 | # %f Most PGP commands operate on a single file or a file 16 | # containing a message. %f expands to this file's name. 17 | # 18 | # %s When verifying signatures, there is another temporary file 19 | # containing the detached signature. %s expands to this 20 | # file's name. 21 | # 22 | # %a In "signing" contexts, this expands to the value of the 23 | # configuration variable $pgp_sign_as. You probably need to 24 | # use this within a conditional % sequence. 25 | # 26 | # %r In many contexts, mutt passes key IDs to pgp. %r expands to 27 | # a list of key IDs. 28 | 29 | set pgp_decode_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f" 30 | set pgp_verify_command="gpg --status-fd=2 --no-verbose --quiet --batch --output - --verify %s %f" 31 | set pgp_decrypt_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f" 32 | set pgp_sign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f" 33 | set pgp_clearsign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f" 34 | set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" 35 | set pgp_encrypt_sign_command="pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" 36 | 37 | set pgp_import_command="gpg --no-verbose --import %f" 38 | set pgp_export_command="gpg --no-verbose --export --armor %r" 39 | set pgp_verify_key_command="gpg --verbose --batch --fingerprint --check-sigs %r" 40 | set pgp_list_pubring_command="gpg --no-verbose --batch --quiet --with-colons --list-keys %r" 41 | set pgp_list_secring_command="gpg --no-verbose --batch --quiet --with-colons --list-secret-keys %r" 42 | 43 | # fetch keys 44 | # set pgp_getkeys_command="pkspxycwrap %r" 45 | 46 | # pattern for good signature - may need to be adapted to locale! 47 | 48 | # set pgp_good_sign="^gpgv?: Good signature from " 49 | 50 | # OK, here's a version which uses gnupg's message catalog: 51 | # set pgp_good_sign="`gettext -d gnupg -s 'Good signature from "' | tr -d '"'`" 52 | 53 | # This version uses --status-fd messages 54 | set pgp_good_sign="^\\[GNUPG:\\] GOODSIG" 55 | 56 | set pgp_timeout=9000 57 | 58 | -------------------------------------------------------------------------------- /shared/dotfiles/mutt/.mutt/mailcap: -------------------------------------------------------------------------------- 1 | # MS Office files 2 | application/msword; ~/.mutt/view_mail_attachment.rb --file:%s --type:"-" --open_with:'/Applications/OpenOffice.org.app' 3 | application/vnd.ms-excel; ~/.mutt/view_mail_attachment.rb --file:%s --type:"-" 4 | application/vnd.openxmlformats-officedocument.presentationml.presentation; ~/.mutt/view_mail_attachment.rb --file:%s --type:"-" --open_with:'/Applications/OpenOffice.org.app' 5 | application/vnd.oasis.opendocument.text; ~/.mutt/view_mail_attachment.rb --file:%s --type:"-" --open_with:'/Applications/OpenOffice.org.app' 6 | 7 | # Images 8 | image/jpg; ~/.mutt/view_mail_attachment.rb --file:%s --type:jpg 9 | image/jpeg; ~/.mutt/view_mail_attachment.rb --file:%s --type:jpg 10 | image/pjpeg; ~/.mutt/view_mail_attachment.rb --file:%s --type:jpg 11 | image/png; ~/.mutt/view_mail_attachment.rb --file:%s --type:png 12 | image/gif; ~/.mutt/view_mail_attachment.rb --file:%s --type:gif 13 | 14 | # PDFs 15 | application/pdf; ~/.mutt/view_mail_attachment.rb --file:%s --type:pdf 16 | 17 | # HTML 18 | text/html; ~/.mutt/view_mail_attachment.rb --file:%s --type:html 19 | 20 | # Unidentified files 21 | application/octet-stream; ~/.mutt/view_mail_attachment.rb --file:%s --type:"-" 22 | -------------------------------------------------------------------------------- /shared/dotfiles/mutt/.mutt/view_mail_attachment.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require 'fileutils' 4 | 5 | class Arguments 6 | attr_accessor :file 7 | attr_accessor :type 8 | attr_accessor :open_with 9 | attr_accessor :temp_dir 10 | 11 | def temp_dir 12 | @temp_dir ||= "/tempfiles/mutt_attachments" 13 | end 14 | 15 | def base_file_name 16 | @base_file_name ||= File.basename(file) 17 | end 18 | 19 | def base_file_name_without_extension 20 | File.basename(base_file_name, File.extname(base_file_name)) 21 | end 22 | end 23 | 24 | def build_arguments(arguments) 25 | result = Arguments.new 26 | 27 | arguments.each do|argument| 28 | pair = argument.split(":") 29 | name = pair[0].gsub(/-/,"") 30 | value = pair[1] 31 | result.send "#{name}=", value 32 | end 33 | result 34 | end 35 | 36 | arguments = build_arguments(ARGV) 37 | 38 | system("mkdir -p #{arguments.temp_dir}") 39 | system("rm -rf #{arguments.temp_dir}/*") 40 | 41 | 42 | new_file_name = "" 43 | if (arguments.type == "-") 44 | new_file_name = File.basename(arguments.file) 45 | else 46 | new_file_name = "#{arguments.base_file_name_without_extension}.#{arguments.type}" 47 | end 48 | 49 | new_file_name = File.join(arguments.temp_dir, new_file_name) 50 | FileUtils.cp arguments.file, new_file_name 51 | 52 | if (arguments.open_with) 53 | system("open -a #{arguments.open_with} #{new_file_name}") 54 | else 55 | system("open #{new_file_name}") 56 | end 57 | -------------------------------------------------------------------------------- /shared/dotfiles/mutt/muttrc_jp_developwithpassion.dotfile.settings: -------------------------------------------------------------------------------- 1 | configatron.mutt.folder = "/to_backup/imap_mail/jp_developwithpassion" 2 | configatron.msmtp.account = "jp" 3 | configatron.mutt.offline_imap_account = "jp_developwithpassion_gmail" 4 | -------------------------------------------------------------------------------- /shared/dotfiles/notmuch/.gitignore: -------------------------------------------------------------------------------- 1 | .notmuch-config 2 | -------------------------------------------------------------------------------- /shared/dotfiles/notmuch/notmuch-config.dotfile.mustache: -------------------------------------------------------------------------------- 1 | # .notmuch-config - Configuration file for the notmuch mail system 2 | # 3 | # For more information about notmuch, see http://notmuchmail.org 4 | 5 | # Database configuration 6 | # 7 | # The only value supported here is 'path' which should be the top-level 8 | # directory where your mail currently exists and to where mail will be 9 | # delivered in the future. Files should be individual email messages. 10 | # Notmuch will store its database within a sub-directory of the path 11 | # configured here named ".notmuch". 12 | # 13 | 14 | [database] 15 | path=/to_backup/imap_mail 16 | 17 | # User configuration 18 | # 19 | # Here is where you can let notmuch know how you would like to be 20 | # addressed. Valid settings are 21 | # 22 | # name Your full name. 23 | # primary_email Your primary email address. 24 | # other_email A list (separated by ';') of other email addresses 25 | # at which you receive email. 26 | # 27 | # Notmuch will use the various email addresses configured here when 28 | # formatting replies. It will avoid including your own addresses in the 29 | # recipient list of replies, and will set the From address based on the 30 | # address to which the original email was addressed. 31 | # 32 | 33 | [user] 34 | name=Jean-Paul S. Boodhoo 35 | primary_email=jp@developwithpassion.com 36 | 37 | # Configuration for "notmuch new" 38 | # 39 | # The following options are supported here: 40 | # 41 | # tags A list (separated by ';') of the tags that will be 42 | # added to all messages incorporated by "notmuch new". 43 | # 44 | # ignore A list (separated by ';') of file and directory names 45 | # that will not be searched for messages by "notmuch new". 46 | # 47 | # NOTE: *Every* file/directory that goes by one of those names will 48 | # be ignored, independent of its depth/location in the mail store. 49 | # 50 | 51 | [new] 52 | tags=unread;inbox; 53 | ignore= 54 | 55 | # Search configuration 56 | # 57 | # The following option is supported here: 58 | # 59 | # exclude_tags 60 | # A ;-separated list of tags that will be excluded from 61 | # search results by default. Using an excluded tag in a 62 | # query will override that exclusion. 63 | # 64 | 65 | [search] 66 | exclude_tags=deleted;spam; 67 | 68 | # Maildir compatibility configuration 69 | # 70 | # The following option is supported here: 71 | # 72 | # synchronize_flags Valid values are true and false. 73 | # 74 | # If true, then the following maildir flags (in message filenames) 75 | # will be synchronized with the corresponding notmuch tags: 76 | # 77 | # Flag Tag 78 | # ---- ------- 79 | # D draft 80 | # F flagged 81 | # P passed 82 | # R replied 83 | # S unread (added when 'S' flag is not present) 84 | # 85 | # The "notmuch new" command will notice flag changes in filenames 86 | # and update tags, while the "notmuch tag" and "notmuch restore" 87 | # commands will notice tag changes and update flags in filenames 88 | # 89 | 90 | [maildir] 91 | synchronize_flags=true 92 | -------------------------------------------------------------------------------- /shared/dotfiles/offlineimap/.gitignore: -------------------------------------------------------------------------------- 1 | .offlineimaprc 2 | offlineimap.pyc 3 | -------------------------------------------------------------------------------- /shared/dotfiles/offlineimap/offlineimap.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import subprocess 3 | import re 4 | 5 | class NameMapping: 6 | def __init__(self, local_name, remote_name): 7 | self.local_name = local_name 8 | self.remote_name = remote_name 9 | 10 | class LocalName: 11 | def __init__(self, folder): 12 | self.folder = folder 13 | 14 | def matches(self, mapping): 15 | return mapping.remote_name == self.folder 16 | 17 | def mapped_folder_name(self, mapping): 18 | return mapping.local_name 19 | 20 | class RemoteName: 21 | def __init__(self, folder): 22 | self.folder = folder 23 | 24 | def matches(self, mapping): 25 | return mapping.local_name == self.folder 26 | 27 | def mapped_folder_name(self, mapping): 28 | return mapping.remote_name 29 | 30 | 31 | 32 | def get_password(account): 33 | program ='/Users/jp/repositories/developwithpassion/devtools/automation/keychain/get_keychain_password' 34 | 35 | command = "{0} --account:{1} --command:find-internet-password".format(program, account) 36 | 37 | output = subprocess.check_output(command, shell=True) 38 | 39 | return output.rstrip() 40 | 41 | 42 | def is_included(folder): 43 | result = True 44 | 45 | for pattern in exclusion_patterns: 46 | result = result and (re.search(pattern, folder) == None) 47 | 48 | return result 49 | 50 | exclusion_patterns = [ 51 | "efax", 52 | "earth_class_mail", 53 | "eventbrite", 54 | "gotomeeting", 55 | "moshi_monsters", 56 | "peepcode", 57 | "raini_fowl", 58 | "stuart_know", 59 | "training.*2008", 60 | "training.*2009", 61 | "training.*2010", 62 | "training.*2011", 63 | "training.*2012", 64 | "training.*nbdn", 65 | "training.*nothin_but_bdd", 66 | "unblock_us", 67 | "web_hosting", 68 | "webinars", 69 | "Gmail.*Important" 70 | ] 71 | 72 | name_mappings = [ 73 | NameMapping('sent', '[Gmail]/Sent Mail'), 74 | NameMapping('spam', '[Gmail]/Spam'), 75 | NameMapping('flagged', '[Gmail]/Starred'), 76 | NameMapping('trash', '[Gmail]/Trash'), 77 | NameMapping('archive', '[Gmail]/All Mail'), 78 | NameMapping('drafts', '[Gmail]/Drafts') 79 | ] 80 | 81 | 82 | 83 | def find_name_mapping(name): 84 | default_mapping = NameMapping(name.folder, name.folder) 85 | 86 | for mapping in name_mappings: 87 | if (name.matches(mapping)): 88 | return mapping 89 | 90 | return default_mapping 91 | 92 | def get_name_mapping(name): 93 | mapping = find_name_mapping(name) 94 | return name.mapped_folder_name(mapping) 95 | 96 | def get_remote_name(local_folder_name): 97 | name = RemoteName(local_folder_name) 98 | return get_name_mapping(name) 99 | 100 | def get_local_name(remote_folder_name): 101 | name = LocalName(remote_folder_name) 102 | return get_name_mapping(name) 103 | -------------------------------------------------------------------------------- /shared/dotfiles/offlineimap/offlineimaprc.dotfile.mustache: -------------------------------------------------------------------------------- 1 | [general] 2 | ui = TTYUI 3 | accounts = jp_developwithpassion_gmail 4 | pythonfile = ~/repositories/developwithpassion/devtools/shared/dotfiles/offlineimap/offlineimap.py 5 | fsync = False 6 | 7 | 8 | [Account jp_developwithpassion_gmail] 9 | localrepository = jp_developwithpassion_gmail_local 10 | remoterepository = jp_developwithpassion_gmail_remote 11 | status_backend = sqlite 12 | postsynchook = notmuch new 13 | 14 | 15 | #developwithpassion 16 | [Repository jp_developwithpassion_gmail_local] 17 | type = Maildir 18 | localfolders = /to_backup/imap_mail/jp_developwithpassion 19 | nametrans = get_remote_name 20 | 21 | 22 | [Repository jp_developwithpassion_gmail_remote] 23 | maxconnections = 1 24 | type = Gmail 25 | cert_fingerprint =b0ba392bba326e6feb1add4d04fa0fb86cd173fa 26 | remoteuser = jp@developwithpassion.com 27 | remotepasseval = get_password("jp@developwithpassion.com") 28 | realdelete = no 29 | nametrans = get_local_name 30 | folderfilter = is_included 31 | -------------------------------------------------------------------------------- /shared/dotfiles/ruby/.irbrc: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'interactive_editor' 3 | 4 | 5 | # Color Coding 6 | # http://www.alloycode.com/2010/6/26/automatic-color-coding-for-script-console-and-irb 7 | begin 8 | require "ap" 9 | IRB::Irb.class_eval do 10 | def output_value 11 | ap @context.last_value 12 | end 13 | end 14 | rescue LoadError => e 15 | puts "ap gem not found. Try typing 'gem install awesome_print' to get super-fancy output." 16 | end 17 | 18 | -------------------------------------------------------------------------------- /shared/dotfiles/rvm/.gitignore: -------------------------------------------------------------------------------- 1 | .rvmrc 2 | -------------------------------------------------------------------------------- /shared/dotfiles/rvm/global.gems: -------------------------------------------------------------------------------- 1 | awesome_print 2 | bundler 3 | configatron 4 | interactive_editor 5 | path_gem 6 | rake 7 | rubygems-bundler 8 | rvm 9 | -------------------------------------------------------------------------------- /shared/dotfiles/rvm/rvmrc.dotfile.mustache: -------------------------------------------------------------------------------- 1 | rvm_project_rvmrc_default=1 2 | -------------------------------------------------------------------------------- /shared/dotfiles/tmux/.gitignore: -------------------------------------------------------------------------------- 1 | .tmux.conf 2 | -------------------------------------------------------------------------------- /shared/dotfiles/tmux/tmux.conf.dotfile.mustache: -------------------------------------------------------------------------------- 1 | set-option -g prefix C-b 2 | bind-key C-b last-window 3 | 4 | set-option -g default-command "reattach-to-user-namespace -l zsh" 5 | set-option -g default-shell /bin/zsh 6 | 7 | 8 | # DVTM style pane selection 9 | bind 1 select-pane -t 1 10 | bind 2 select-pane -t 2 11 | bind 3 select-pane -t 3 12 | bind 4 select-pane -t 4 13 | bind 5 select-pane -t 5 14 | bind 6 select-pane -t 6 15 | bind 7 select-pane -t 7 16 | bind 8 select-pane -t 8 17 | bind 9 select-pane -t 9 18 | 19 | # Pane resizing 20 | bind -r C-h resize-pane -L 5 21 | bind -r C-j resize-pane -D 5 22 | bind -r C-k resize-pane -U 5 23 | bind -r C-l resize-pane -R 5 24 | 25 | set -g default-terminal "screen-256color" 26 | 27 | # Status bar 28 | set -g status-fg white 29 | set -g status-bg colour234 30 | set -g window-status-activity-attr bold 31 | set -g pane-border-fg colour245 32 | set -g pane-active-border-fg colour39 33 | set -g message-fg colour16 34 | set -g message-bg colour221 35 | set -g message-attr bold 36 | 37 | # Activity 38 | setw -g monitor-activity on 39 | set -g visual-activity on 40 | 41 | 42 | # Autorename sanely. 43 | setw -g automatic-rename on 44 | 45 | # Better name management 46 | bind c new-window \; command-prompt "rename-window '%%'" 47 | bind C new-window 48 | bind , command-prompt "rename-window '%%'" 49 | 50 | # Copy mode 51 | setw -g mode-keys vi 52 | bind ` copy-mode 53 | unbind [ 54 | unbind p 55 | bind p paste-buffer 56 | bind-key -t vi-copy v begin-selection 57 | bind-key -t vi-copy y copy-selection 58 | bind-key -t vi-copy Escape cancel 59 | 60 | #Pane movement 61 | bind h select-pane -L 62 | bind j select-pane -D 63 | bind k select-pane -U 64 | bind l select-pane -R 65 | 66 | #Pasteboard management 67 | bind-key Y run "tmux save-buffer - | reattach-to-user-namespace pbcopy" 68 | bind-key V run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer" 69 | 70 | #Highlight the active window 71 | set-window-option -g window-status-current-bg yellow 72 | set-window-option -g window-status-current-fg blue 73 | 74 | #Start window indexing at 1 75 | set -g base-index 1 76 | 77 | setw -g aggressive-resize on 78 | 79 | #Better splitting options 80 | bind-key d split-window -v 81 | bind-key f split-window -h 82 | bind-key '"' detach-client 83 | -------------------------------------------------------------------------------- /shared/dotfiles/urlview/.gitignore: -------------------------------------------------------------------------------- 1 | .urlview 2 | -------------------------------------------------------------------------------- /shared/dotfiles/urlview/urlview.dotfile.mustache: -------------------------------------------------------------------------------- 1 | COMMAND open %s 2 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.gitignore: -------------------------------------------------------------------------------- 1 | .vimrc 2 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/.VimballRecord: -------------------------------------------------------------------------------- 1 | command-t-0.6.vba: call delete('/Users/jp/.vim_runtime/ruby/command-t/controller.rb')|call delete('/Users/jp/.vim_runtime/ruby/command-t/extconf.rb')|call delete('/Users/jp/.vim_runtime/ruby/command-t/finder.rb')|call delete('/Users/jp/.vim_runtime/ruby/command-t/match_window.rb')|call delete('/Users/jp/.vim_runtime/ruby/command-t/prompt.rb')|call delete('/Users/jp/.vim_runtime/ruby/command-t/scanner.rb')|call delete('/Users/jp/.vim_runtime/ruby/command-t/settings.rb')|call delete('/Users/jp/.vim_runtime/ruby/command-t/stub.rb')|call delete('/Users/jp/.vim_runtime/ruby/vim/screen.rb')|call delete('/Users/jp/.vim_runtime/ruby/vim/window.rb')|call delete('/Users/jp/.vim_runtime/ruby/vim.rb')|call delete('/Users/jp/.vim_runtime/ruby/command-t/ext.c')|call delete('/Users/jp/.vim_runtime/ruby/command-t/match.c')|call delete('/Users/jp/.vim_runtime/ruby/command-t/matcher.c')|call delete('/Users/jp/.vim_runtime/ruby/command-t/ext.h')|call delete('/Users/jp/.vim_runtime/ruby/command-t/match.h')|call delete('/Users/jp/.vim_runtime/ruby/command-t/matcher.h')|call delete('/Users/jp/.vim_runtime/ruby/command-t/ruby_compat.h')|call delete('/Users/jp/.vim_runtime/ruby/command-t/depend')|call delete('/Users/jp/.vim_runtime/doc/command-t.txt')|call delete('/Users/jp/.vim_runtime/plugin/command-t.vim') 2 | gitdiff.vba: call delete('/Users/jp/.vim_runtime/plugin/gitdiff.vim') 3 | twitvim-0.5.0.vba: call delete('/Users/jp/.vim_runtime/plugin/twitvim.vim')|call delete('/Users/jp/.vim_runtime/doc/twitvim.txt') 4 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/.gitignore: -------------------------------------------------------------------------------- 1 | vimrc 2 | wordlist.vim 3 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/.netrwhist: -------------------------------------------------------------------------------- 1 | let g:netrw_dirhistmax =10 2 | let g:netrw_dirhist_cnt =1 3 | let g:netrw_dirhist_1='/Users/jp/repositories/developwithpassion/devtools/mac/profile' 4 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/autoload/pathogen.vim: -------------------------------------------------------------------------------- 1 | " pathogen.vim - path option manipulation 2 | " Maintainer: Tim Pope 3 | " Version: 1.2 4 | 5 | " Install in ~/.vim/autoload (or ~\vimfiles\autoload). 6 | " 7 | " API is documented below. 8 | 9 | if exists("g:loaded_pathogen") || &cp 10 | finish 11 | endif 12 | let g:loaded_pathogen = 1 13 | 14 | " Split a path into a list. 15 | function! pathogen#split(path) abort " {{{1 16 | if type(a:path) == type([]) | return a:path | endif 17 | let split = split(a:path,'\\\@ 0 6 | let idx -= 1 7 | let c = line[idx] 8 | " break on header and previous email 9 | if c == ':' || c == '>' 10 | return idx + 2 11 | else 12 | continue 13 | endif 14 | endwhile 15 | return idx 16 | else 17 | let trim="sed '/^$/d' | cut -f1,2" 18 | let fmt='awk ''BEGIN{FS=OFS="\t"}{printf "%s <%s>\n", $2, $1}''' 19 | if exists("g:goobookrc") 20 | let goobook="goobook -c " . g:goobookrc 21 | else 22 | let goobook="goobook" 23 | endif 24 | return split(system(goobook . ' query ' . a:base . '|' . trim . '|' . fmt ), '\n') 25 | endif 26 | endfunc 27 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/bundle/developwithpassion/ftplugin/mail.vim: -------------------------------------------------------------------------------- 1 | set omnifunc=mailcomplete#Complete 2 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/bundle/developwithpassion/plugin/csutils.vim: -------------------------------------------------------------------------------- 1 | function s:Dotnet_compile() 2 | set makeprg=build.bat 3 | set errorformat=\ %#%f(%l\\\,%c):\ error\ CS%n:\ %m 4 | endfunction 5 | 6 | command DotNetCompile :call Dotnet_compile() 7 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/bundle/developwithpassion/snippets/cs.snippets: -------------------------------------------------------------------------------- 1 | # #!/usr/bin/env ruby 2 | 3 | snippet class 4 | ${1} class ${2} 5 | { 6 | 7 | ${3} 8 | 9 | } 10 | 11 | snippet method 12 | public ${1} ${2}(${3}) 13 | { 14 | ${4} 15 | } 16 | 17 | snippet if 18 | if (${1}) 19 | { 20 | ${2} 21 | } 22 | 23 | snippet foreach 24 | foreach(var ${1} in ${2}) 25 | { 26 | ${3} 27 | } 28 | 29 | snippet sif 30 | if (${1}) 31 | 32 | snippet nowc 33 | public class ${1}Specs 34 | { 35 | public class concern:Observes<${2},${1}> 36 | { 37 | 38 | } 39 | 40 | public class ${3} : concern 41 | { 42 | 43 | It should_${4} = () => 44 | ${5} 45 | 46 | } 47 | } 48 | 49 | snippet owc 50 | public class ${1} : concern 51 | { 52 | 53 | It should_${2} = () => 54 | ${3} 55 | 56 | } 57 | 58 | snippet noc 59 | public class ${1}Specs 60 | { 61 | public class concern:Observes<${1}> 62 | { 63 | 64 | } 65 | 66 | public class ${2} : concern 67 | { 68 | 69 | It should_${3} = () => 70 | ${4} 71 | 72 | } 73 | } 74 | 75 | snippet oc 76 | public class ${1} : concern 77 | { 78 | 79 | It should_${2} = () => 80 | ${3} 81 | 82 | } 83 | 84 | snippet nso 85 | public class ${1}Specs 86 | { 87 | public class concern:Observes 88 | { 89 | 90 | } 91 | 92 | public class ${2} : concern 93 | { 94 | 95 | It should_${3} = () => 96 | ${4} 97 | 98 | } 99 | } 100 | 101 | snippet so 102 | public class ${1} : concern 103 | { 104 | 105 | It should_${2} = () => 106 | ${3} 107 | 108 | } 109 | 110 | snippet bddb 111 | Because b = () => 112 | ${1} 113 | 114 | 115 | snippet bddc 116 | Establish c = () => 117 | { 118 | ${1} 119 | }; 120 | 121 | snippet it 122 | It should_${1} = () => 123 | ${2}; 124 | 125 | snippet el 126 | () => ${1} 127 | 128 | snippet deps 129 | depends.on<${1}>(); 130 | 131 | snippet fake 132 | fake.an<${1}>(); 133 | 134 | snippet ge 135 | >= ${1} 136 | 137 | snippet le 138 | <= ${1} 139 | 140 | snippet ne 141 | != ${1} 142 | 143 | snippet try 144 | try 145 | { 146 | 147 | } 148 | catch (${1} ${2}) 149 | { 150 | 151 | } 152 | 153 | snippet se 154 | ShouldEqual(${1}) 155 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/bundle/developwithpassion/snippets/markdown.snippets: -------------------------------------------------------------------------------- 1 | snippet code 2 | {% codeblock ${1} %} 3 | ${2} 4 | {% endcodeblock %} 5 | 6 | snippet post 7 | --- 8 | title: "${1}" 9 | tags: [${2}] 10 | --- 11 | 12 | snippet dwp 13 | [Develop With Passion®](http://www.developwithpassion.com) 14 | 15 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/bundle/developwithpassion/snippets/ruby.snippets: -------------------------------------------------------------------------------- 1 | # #!/usr/bin/env ruby 2 | snippet tok 3 | #{${1}} 4 | 5 | #rspec fixture 6 | snippet desc 7 | describe ${1},'${2}' do 8 | context '${3}' do 9 | it '${4}' do 10 | ${5} 11 | end 12 | end 13 | end 14 | 15 | snippet context 16 | context '${1}' do 17 | it '${2}' do 18 | ${3} 19 | end 20 | end 21 | 22 | #rspec observation 23 | snippet it 24 | it '${1}' do 25 | ${2} 26 | end 27 | 28 | #rspec setup 29 | snippet bddc 30 | before (:each) do 31 | ${1} 32 | end 33 | 34 | 35 | #rdoc nodoc 36 | snippet rdnd 37 | # :nodoc: all 38 | 39 | #proof heading 40 | snippet head 41 | heading '${1}' do 42 | proof '${2}' do 43 | ${3} 44 | end 45 | end 46 | 47 | snippet proof 48 | proof '${1}' do 49 | ${2} 50 | end 51 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/dictionary.vim: -------------------------------------------------------------------------------- 1 | inability 2 | surviving 3 | 4 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/install.sh: -------------------------------------------------------------------------------- 1 | if [ "$1" == "" ]; then 2 | echo "Usage: sh .vim_runtime/install " 3 | echo " can be 'mac', 'linux' or 'windows'" 4 | exit 1 5 | fi 6 | echo ' 7 | fun! MySys() 8 | return "$1" 9 | endfun 10 | set runtimepath=~/.vim_runtime,~/.vim_runtime/after,\$VIMRUNTIME 11 | source ~/.vim_runtime/vimrc 12 | helptags ~/.vim_runtime/doc' > ~/.vimrc 13 | echo "Installed amix's vim configuration successfully! Enjoy :)" 14 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/remaps.vim: -------------------------------------------------------------------------------- 1 | " change the map leader to be the , as its easier to access" 2 | let mapleader = "," 3 | let g:mapleader = "," 4 | 5 | " remap for saves 6 | nmap w :w! 7 | 8 | " editing vim config files 9 | map e :e! ~/.vim_runtime/vimrc 10 | :nmap wl :e ~/.vim_runtime/wordlist.vim 11 | 12 | " turn off highlighting when the escape key is pressed 13 | :nnoremap :noh 14 | 15 | :nmap sm :simalt ~ 16 | 17 | " open a buffer for creating an email message with spell checking set 18 | :nmap mail n,wlj\s 19 | 20 | " setting different shift widths 21 | map t2 :setlocal shiftwidth=2 22 | map t4 :setlocal shiftwidth=4 23 | map t8 :setlocal shiftwidth=4 24 | 25 | """""""""""""""""""""""""""""" 26 | " => Visual mode related 27 | """""""""""""""""""""""""""""" 28 | " Really useful! 29 | " In visual mode when you press * or # to search for the current selection 30 | vnoremap * :call VisualSearch('f') 31 | vnoremap # :call VisualSearch('b') 32 | 33 | " When you press gv you vimgrep after the selected text 34 | vnoremap gv :call VisualSearch('gv') 35 | map g :vimgrep // **/*. 36 | 37 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 38 | " => Moving around, tabs and buffers 39 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 40 | " Map space to / (search) and c-space to ? (backgwards search) 41 | map :noh 42 | 43 | " Smart way to move btw. windows 44 | map j 45 | map k 46 | map h 47 | map l 48 | 49 | " Close the current buffer 50 | map bd :bdel 51 | 52 | " Close all the buffers 53 | map ba :bufdo bd! 54 | 55 | " Use the arrows to something usefull 56 | map :bn 57 | map :bp 58 | 59 | " Tab configuration 60 | map tn :tabnew % 61 | map te :tabedit 62 | map tc :tabclose 63 | map tm :tabmove 64 | 65 | " When pressing cd switch to the directory of the open buffer 66 | map cd :cd %:p:h 67 | 68 | " autocomplete common programming elements 69 | inoremap (( ()i 70 | inoremap [[ []i 71 | inoremap {{ {}i 72 | inoremap '' ''i 73 | inoremap "" ""i 74 | inoremap uu _ 75 | 76 | " remap for ruby blocks 77 | inoremap \|\| \|\|i 78 | 79 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 80 | " => Cope 81 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 82 | " Do :help cope if you are unsure what cope is. It's super useful! 83 | map cc :botright cope 84 | map n :cn 85 | map p :cp 86 | 87 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 88 | " => Spell checking 89 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 90 | "Pressing ,ss will toggle and untoggle spell checking 91 | map ss :setlocal spell! 92 | 93 | "Shortcuts using 94 | map sn ]s 95 | map sp [s 96 | map s? z= 97 | 98 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 99 | " => NERDTree 100 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 101 | let NERDTreeChDirMode=2 102 | nnoremap n :NERDTree . 103 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 104 | 105 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 106 | " => Vimux 107 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 108 | map rb :call RunVimTmuxCommand("clear; rspec " . bufname("%")) 109 | 110 | " Prompt for a command to run 111 | map rp :PromptVimTmuxCommand 112 | 113 | " Run last command executed by RunVimTmuxCommand 114 | map rl :RunLastVimTmuxCommand 115 | 116 | " Inspect runner pane 117 | map ri :InspectVimTmuxRunner 118 | 119 | " Close all other tmux panes in current window 120 | map rx :CloseVimTmuxPanes 121 | 122 | " Interrupt any command running in the runner pane 123 | map rs :InterruptVimTmuxRunner 124 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 125 | 126 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 127 | " => MISC 128 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 129 | " Remove the Windows ^M - when the encodings gets messed up 130 | noremap m mmHmt:%s///ge'tzt'm 131 | 132 | "Quickly open a buffer for scripbble 133 | map q :e ~/buffer 134 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/.vim_runtime/wordlist.vim.erb: -------------------------------------------------------------------------------- 1 | <% 2 | words = { 3 | :about => %w[abiyt], 4 | :contact => %w[contect cntct], 5 | :continue => %w[contine], 6 | :great => %w[gret], 7 | :hesitate => %w[hesi hies], 8 | :information => %w[ionformation], 9 | :interesting => %w[intersting], 10 | :make => %w[mak], 11 | :negotiations => %w[engotations], 12 | :please => %w[pleaes], 13 | :progress => %w[pgorgress], 14 | :specifications => %w[sepcficiations], 15 | :teaching => %w[teahing], 16 | :the => %w[teh th eht], 17 | :where => %w[wehere], 18 | :you => %w[yuo], 19 | :yourself => %w[youerself], 20 | :somethign => %w[somethign], 21 | :opportunity => %w[opprotunity] 22 | 23 | } 24 | %> 25 | :iabbrev xdate =strftime("%d/%m/%y %H:%M:%S") 26 | :iabbrev gbu God Bless You 27 | :iabbrev jpb Jean-Paul S. Boodhoo 28 | 29 | <% words.each do|word,mispellings| 30 | mispellings.each do|mispelling| %> 31 | :iabbrev <%="#{mispelling} #{word}"%> 32 | <% if ! @is_cygwin %> 33 | :iabbrev <%="#{mispelling.capitalize} #{word.capitalize}"%> 34 | <% end %> 35 | <% end %> 36 | <%end %> 37 | -------------------------------------------------------------------------------- /shared/dotfiles/vim/vimrc.dotfile.mustache: -------------------------------------------------------------------------------- 1 | fun! MySys() 2 | return "{{ vim.environment }}" 3 | endfun 4 | 5 | set runtimepath=~/.vim_runtime,~/.vim_runtime/after,$VIMRUNTIME 6 | 7 | "trigger pathogen to load all plugins 8 | call pathogen#runtime_append_all_bundles() 9 | call pathogen#helptags() 10 | 11 | source ~/.vim_runtime/vimrc 12 | source ~/.vim_runtime/wordlist.vim 13 | 14 | -------------------------------------------------------------------------------- /shared/dotfiles/vimperator/.gitignore: -------------------------------------------------------------------------------- 1 | .vimperatorrc 2 | -------------------------------------------------------------------------------- /shared/dotfiles/vimperator/vimperatorrc.dotfile.mustache: -------------------------------------------------------------------------------- 1 | "2.3.1 (created: 2010/04/07 18:25:13) 2 | 3 | set editor='bash -lc "mvim -g -f \$*" mvim ' 4 | set runtimepath=$HOME/.vimperator 5 | source! /Users/jp/.vimperatorrc.local 6 | 7 | " change the map leader to be the , as its easier to access" 8 | set mapleader=, 9 | 10 | " vim: set ft=vimperator: 11 | 12 | " egg timer shortcuts 13 | :com -nargs=1 timer :t http://e.ggtimer.com/ 14 | :com -nargs=1 timerm :t http://e.ggtimer.com/min 15 | :com -nargs=1 timerh :t http://e.ggtimer.com/hour 16 | 17 | " administration pages 18 | :com gbmo -description "bmo_mastercard" :t https://www1.bmo.com/MasterCard/MCmain?product=15 19 | :com gcibc -description cibc :t https://www.cibc.com/ca/personal.html?cid=SignOn_hp_27055_D_E 20 | :com gdropbox -description dropbox :t http://www.dropbox.com/login 21 | :com gearthclassmail -description earth_class_mail :t https://secure.earthclassmail.com/Login.aspx 22 | :com geventbrite -description eventbrite :t eventbrite.com/login 23 | :com gfreshbooks -description freshbooks :t https://developwithpassion.freshbooks.com 24 | :com ggithub :t https://github.com/login 25 | :com ggotomeeting :t https://www2.gotomeeting.com/island/login.tmpl?Portal=www.gotomeeting.com 26 | :com glastpass :t https://lastpass.com/index.php?ac=1 27 | :com glinkedin :t https://www.linkedin.com/secure/login?goback=&trk=hb_signin 28 | :com glumosity :t http://www.lumosity.com/login 29 | :com gmail :t mail.developwithpassion.com 30 | :com gmailkeymando :t https://www.google.com/a/keymando.com/ServiceLogin?service=mail&passive=true&rm=false&continue=http://mail.google.com/a/keymando.com/<mpl=default<mplcache=2 31 | :com gmailfilter :t https://login.postini.com/a/developwithpassion.com 32 | :com grbc :t https://www1.royalbank.com/cgi-bin/rbaccess/rbunxcgi?F6=1&F7=IB&F21=IB&F22=IB&REQUEST=ClientSignin&LANGUAGE=ENGLISH 33 | :com gtdbank :t https://easywebcpo.td.com/waw/idp/login.htm?execution=e1s1 34 | :com gtmobile -description "tmobile" :t https://my.t-mobile.com/Login/?rc=&dest=https%3a%2f%2fmy.t-mobile.com%3a443%2fDefault.aspx%3frp.Logon%3dtrue 35 | :com gorange :t https://services.orange.co.uk/sam/templates/web/sign_in_paygtopup.htm 36 | 37 | "client sections 38 | "daxko 39 | :com gdaxkojira -description daxkojira :t http://jira.dcc001.dccllc.com:8090/secure/Dashboard.jspa 40 | :com gdaxkoweb -description daxkoweb :t https://mydaxko.com 41 | :com gdaxkomail -description daxkomail :t http://mail.daxko.com 42 | 43 | "webmeetings 44 | :com gadobeconnect -description adobeconnect :t https://na8cps.adobeconnect.com/system/login?domain=meet32105458.adobeconnect.com&next=%2Fadmin%3Fdomain%3Dmeet32105458.adobeconnect.com&set-lang=en 45 | 46 | "close the current window 47 | :nmap c :q! 48 | -------------------------------------------------------------------------------- /shared/dotfiles/zsh/.gitignore: -------------------------------------------------------------------------------- 1 | .zshrc 2 | .zshenv 3 | -------------------------------------------------------------------------------- /shared/dotfiles/zsh/zshenv.dotfile.mustache: -------------------------------------------------------------------------------- 1 | fpath=($fpath $HOME/.zsh/func) 2 | typeset -U fpath 3 | -------------------------------------------------------------------------------- /shared/dotfiles/zsh/zshrc.dotfile.mustache: -------------------------------------------------------------------------------- 1 | # Path to your oh-my-zsh configuration. 2 | ZSH=$HOME/.oh-my-zsh 3 | 4 | # Set name of the theme to load. 5 | # Look in ~/.oh-my-zsh/themes/ 6 | # Optionally, if you set this to "random", it'll load a random theme each 7 | # time that oh-my-zsh is loaded. 8 | ZSH_THEME="frosted" 9 | 10 | # Example aliases 11 | # alias zshconfig="mate ~/.zshrc" 12 | # alias ohmyzsh="mate ~/.oh-my-zsh" 13 | 14 | # Set to this to use case-sensitive completion 15 | # CASE_SENSITIVE="true" 16 | 17 | # Comment this out to disable bi-weekly auto-update checks 18 | # DISABLE_AUTO_UPDATE="true" 19 | 20 | # Uncomment to change how often before auto-updates occur? (in days) 21 | # export UPDATE_ZSH_DAYS=13 22 | 23 | # Uncomment following line if you want to disable colors in ls 24 | # DISABLE_LS_COLORS="true" 25 | 26 | # Uncomment following line if you want to disable autosetting terminal title. 27 | # DISABLE_AUTO_TITLE="true" 28 | 29 | # Uncomment following line if you want to disable command autocorrection 30 | # DISABLE_CORRECTION="true" 31 | 32 | # Uncomment following line if you want red dots to be displayed while waiting for completion 33 | # COMPLETION_WAITING_DOTS="true" 34 | 35 | # Uncomment following line if you want to disable marking untracked files under 36 | # VCS as dirty. This makes repository status check for large repositories much, 37 | # much faster. 38 | # DISABLE_UNTRACKED_FILES_DIRTY="true" 39 | 40 | # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) 41 | # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ 42 | # Example format: plugins=(rails git textmate ruby lighthouse) 43 | plugins=(git) 44 | 45 | source $ZSH/oh-my-zsh.sh 46 | 47 | function zsh_source_scripts() 48 | { 49 | . ~/.bash_env 50 | . ~/.bash_aliases 51 | . ~/.bash_source_rvm 52 | } 53 | 54 | function zsh_set_options() 55 | { 56 | setopt autocd 57 | setopt autopushd 58 | setopt histsavenodups 59 | setopt histexpiredupsfirst 60 | setopt histfindnodups 61 | setopt histignorealldups 62 | setopt histignoredups 63 | setopt histreduceblanks 64 | setopt nullglob 65 | setopt pushdignoredups 66 | setopt pushdtohome 67 | setopt promptcr 68 | setopt promptsubst 69 | setopt zle 70 | 71 | autoload -U promptinit 72 | autoload -U compinit 73 | compinit -C 74 | promptinit 75 | # prompt wunjo 76 | 77 | bindkey -v 78 | bindkey '^R' history-incremental-search-backward 79 | 80 | autoload edit-command-line 81 | zle -N edit-command-line 82 | bindkey -M vicmd v edit-command-line 83 | 84 | ## case-insensitive (all),partial-word and then substring completion 85 | zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' 86 | } 87 | 88 | zsh_source_scripts 89 | zsh_set_options 90 | 91 | {{# core.is_cygwin}} 92 | cd ~/ 93 | source ~/.rvm/scripts/rvm 94 | {{/core.is_cygwin}} 95 | -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/Ahem.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/droid_fonts/Ahem.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/Android.mk: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2008 The Android Open Source Project 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | LOCAL_PATH:= $(call my-dir) 16 | include $(CLEAR_VARS) 17 | 18 | copy_from := \ 19 | DroidSans.ttf \ 20 | DroidSans-Bold.ttf \ 21 | DroidSerif-Regular.ttf \ 22 | DroidSerif-Bold.ttf \ 23 | DroidSerif-Italic.ttf \ 24 | DroidSerif-BoldItalic.ttf \ 25 | DroidSansMono.ttf 26 | 27 | ifneq ($(NO_FALLBACK_FONT),true) 28 | copy_from += DroidSansFallback.ttf 29 | endif 30 | 31 | copy_to := $(addprefix $(TARGET_OUT)/fonts/,$(copy_from)) 32 | 33 | $(copy_to) : PRIVATE_MODULE := fonts 34 | $(copy_to) : $(TARGET_OUT)/fonts/% : $(LOCAL_PATH)/% | $(ACP) 35 | $(transform-prebuilt-to-target) 36 | 37 | ALL_PREBUILT += $(copy_to) 38 | 39 | -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/DroidSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/droid_fonts/DroidSans-Bold.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/DroidSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/droid_fonts/DroidSans.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/DroidSansFallback.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/droid_fonts/DroidSansFallback.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/DroidSansJapanese.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/droid_fonts/DroidSansJapanese.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/DroidSansMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/droid_fonts/DroidSansMono.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/DroidSerif-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/droid_fonts/DroidSerif-Bold.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/DroidSerif-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/droid_fonts/DroidSerif-BoldItalic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/DroidSerif-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/droid_fonts/DroidSerif-Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/DroidSerif-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/droid_fonts/DroidSerif-Regular.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/MODULE_LICENSE_APACHE2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/droid_fonts/MODULE_LICENSE_APACHE2 -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/README.txt: -------------------------------------------------------------------------------- 1 | Copyright (C) 2008 The Android Open Source Project 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | 15 | ########## 16 | 17 | This directory contains the fonts for the platform. They are licensed 18 | under the Apache 2 license. 19 | -------------------------------------------------------------------------------- /shared/extra_fonts/droid_fonts/fonts.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | sans-serif 19 | arial 20 | helvetica 21 | tahoma 22 | verdana 23 | 24 | 25 | serif 26 | times 27 | times new roman 28 | palatino 29 | georgia 30 | baskerville 31 | goudy 32 | fantasy 33 | cursive 34 | ITC Stone Serif 35 | 36 | 37 | monospace 38 | courier 39 | courier new 40 | monaco 41 | 42 | 43 | -------------------------------------------------------------------------------- /shared/extra_fonts/envy/Envy Code R Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/envy/Envy Code R Bold.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/envy/Envy Code R Command Prompt.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/envy/Envy Code R Command Prompt.reg -------------------------------------------------------------------------------- /shared/extra_fonts/envy/Envy Code R Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/envy/Envy Code R Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/envy/Envy Code R VS Italic-as-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/envy/Envy Code R VS Italic-as-bold.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/envy/Envy Code R VS.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/envy/Envy Code R VS.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/envy/Envy Code R.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/envy/Envy Code R.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Calibri Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Calibri Bold Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Calibri Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Calibri Bold.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Calibri Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Calibri Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Calibri.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Calibri.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Cambria Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Cambria Bold Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Cambria Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Cambria Bold.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Cambria Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Cambria Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Cambria.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Cambria.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Candara Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Candara Bold Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Candara Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Candara Bold.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Candara Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Candara Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Candara.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Candara.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Consolas Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Consolas Bold Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Consolas Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Consolas Bold.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Consolas Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Consolas Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Consolas.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Consolas.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Constantia Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Constantia Bold Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Constantia Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Constantia Bold.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Constantia Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Constantia Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Constantia.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Constantia.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Corbel Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Corbel Bold Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Corbel Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Corbel Bold.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Corbel Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Corbel Italic.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/ms_fonts/Corbel.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/ms_fonts/Corbel.ttf -------------------------------------------------------------------------------- /shared/extra_fonts/palmos_windows_font/PalmOS-CP1252.FON: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/shared/extra_fonts/palmos_windows_font/PalmOS-CP1252.FON -------------------------------------------------------------------------------- /shared/hosts/.gitignore: -------------------------------------------------------------------------------- 1 | hosts 2 | -------------------------------------------------------------------------------- /shared/hosts/hosts.mustache: -------------------------------------------------------------------------------- 1 | {{# core.is_windows }} 2 | #localhost 3 | 127.0.0.1 .psf 4 | #github.com 5 | 207.97.227.239 github.com 6 | {{/core.is_windows }} 7 | {{^core.is_windows }} 8 | 127.0.0.1 localhost 9 | 255.255.255.255 broadcasthost 10 | ::1 localhost 11 | fe80::1%lo0 localhost 12 | {{/core.is_windows }} 13 | 14 | #vm's 15 | # 172.16.223.130 developwithpassion.ubuntu #nat 16 | 10.0.1.14 developwithpassion.ubuntu #bridged_macpro 17 | # 10.43.1.55 developwithpassion.ubuntu #bridged_macbook_pro 18 | 19 | #home computers 20 | 10.0.1.32 hotmama #hotmamas imac 21 | 10.0.1.13 developwithpassion.macbook_pro 22 | 10.0.1.8 developwithpassion_mac_pro 23 | 24 | #daxko computers 25 | 10.4.0.10 qa 26 | 10.3.0.23 devdb 27 | 28 | 29 | #itunes workaround 30 | # 74.208.105.171 gs.apple.com 31 | 32 | -------------------------------------------------------------------------------- /windows/autohotkey/.gitignore: -------------------------------------------------------------------------------- 1 | ahk*.ahk 2 | merge_header_002_shared_variables.ahk 3 | launch_ahk 4 | -------------------------------------------------------------------------------- /windows/autohotkey/merge_footer_001_shared_utility_functions.ahk: -------------------------------------------------------------------------------- 1 | ;================================================================ 2 | ;utilities 3 | ;================================================================ 4 | disable_timer(timer_name) 5 | { 6 | SetTimer, %timer_name%, off 7 | } 8 | 9 | wait_for_window(window_name) 10 | { 11 | WinWaitActive, %window_name%,,0.8 12 | return ErrorLevel 13 | } 14 | 15 | move_mouse(x,y) 16 | { 17 | MouseMove,x,y 18 | } 19 | 20 | move_mouse_to_middle_of_active_screen() 21 | { 22 | WinGetPos,X,Y,Width,Height,A 23 | move_mouse(Width/2,Height/2) 24 | } 25 | 26 | click_mouse_in_middle_of_screen() 27 | { 28 | SysGet, screen_width, 59 29 | SysGet, screen_height, 60 30 | click_mouse_on_screen(screen_width/2,screen_height/2) 31 | } 32 | 33 | screen_drag(x1,y1,x2,y2) 34 | { 35 | CoordMode,Mouse,Screen 36 | MouseClickDrag,Left,x1,y1,x2,y2 37 | CoordMode,Mouse,Relative 38 | } 39 | 40 | click_mouse_in_active_window(x,y) 41 | { 42 | click_mouse_in_active_window_multiple_times(x,y,1) 43 | } 44 | 45 | click_mouse_on_screen(x,y) 46 | { 47 | CoordMode,Mouse,Screen 48 | click_mouse_in_active_window(x,y) 49 | CoordMode,Mouse,Relative 50 | } 51 | 52 | click_mouse_in_active_window_multiple_times(x,y,times) 53 | { 54 | MouseClick,Left,x,y,times 55 | } 56 | 57 | 58 | send_with_sleep(keystrokes,duration) 59 | { 60 | send, %keystrokes% 61 | sleep,duration 62 | } 63 | 64 | send_keystrokes(keystrokes) 65 | { 66 | send_with_sleep(keystrokes,0) 67 | } 68 | 69 | send_keystrokes_to_program(keystrokes,program) 70 | { 71 | IfWinActive, %program% 72 | { 73 | send_keystrokes(keystrokes) 74 | } 75 | } 76 | 77 | run_start_menu_program(program) 78 | { 79 | send_with_sleep("{LWIN}",100) 80 | send_with_sleep(program,100) 81 | send_with_sleep("{enter}",1000) 82 | } 83 | 84 | 85 | run_regular_program(program) 86 | { 87 | Run, %program% 88 | } 89 | 90 | position_window_and_size(x1,y1,width,height) 91 | { 92 | WinGetActiveTitle, current_active_window 93 | WinMove,%current_active_window%,,x1,y1,width,height 94 | } 95 | 96 | 97 | maximize_active_program() 98 | { 99 | WinGetActiveTitle,current_active_window 100 | WinMaximize, %current_active_window% 101 | } 102 | -------------------------------------------------------------------------------- /windows/autohotkey/merge_header_001_header.ahk: -------------------------------------------------------------------------------- 1 | ;========================== 2 | ;Initialize 3 | ;========================== 4 | #NoEnv 5 | SendMode Input 6 | SetWorkingDir %A_ScriptDir% 7 | SetTitleMatchMode 2 8 | -------------------------------------------------------------------------------- /windows/autohotkey/merge_header_002_shared_variables.ahk.mustache: -------------------------------------------------------------------------------- 1 | ;========================================= 2 | ;Shared variables 3 | ;========================================= 4 | devenv = Visual Studio 5 | autohotkey_spy = {{{my.windows.paths.win_style.ahk_spy}}} 6 | process_explorer = {{{my.windows.paths.win_style.process_explorer}}} 7 | divvy = {{{my.windows.paths.win_style.divvy}}} 8 | camrec_exe = {{{my.windows.paths.win_style.camrec}}} 9 | mingw = {{{my.windows.paths.win_style.msys}}} 10 | cygwin = {{{my.windows.paths.win_style.cygwin}}} 11 | conemu = {{{my.windows.paths.win_style.conemu}}} 12 | camrec = Recording 13 | camrec_preview = Preview 14 | autohotkey_scripts = {{{my.windows.paths.win_style.ahk_scripts}}} 15 | 16 | SysGet, screen_width, 59 17 | SysGet, screen_height, 60 18 | screen_center_x := screen_width/2 19 | screen_center_y := screen_height/2 20 | left := screen_width/2 21 | right := screen_width 22 | middle_of_screen := screen_height/2 23 | -------------------------------------------------------------------------------- /windows/autohotkey/partial_ahk_caps_as_windows_key.ahk: -------------------------------------------------------------------------------- 1 | ;============================= 2 | ;STANDARD KEY MAPPINGS 3 | ;============================= 4 | ;Map altGr to alt 5 | ;RAlt::Alt 6 | ;RShift::Shift 7 | ;RCtrl::Ctrl 8 | 9 | 10 | LWIN & ,:: 11 | send, {shift}+{tab} 12 | return 13 | 14 | LWIN & m:: 15 | Send, {Tab} 16 | return 17 | 18 | ;Map to delete 19 | LWIN & x:: 20 | send, {delete} 21 | return 22 | 23 | ;Map alt & up 24 | $!K:: 25 | Send, !{Up} 26 | return 27 | 28 | 29 | ;send right mouse button or ctrl shift r 30 | LWIN & r:: 31 | GetKeyState, state, rshift, P 32 | if state = D 33 | send, ^+r 34 | else 35 | send, {shift}+{F10} 36 | return 37 | 38 | ;Map to left arrow or ctrl left arrow 39 | LWIN & h:: 40 | GetKeyState, state, shift, P 41 | if state = D 42 | send, ^{left} 43 | else 44 | send, {left} 45 | return 46 | 47 | 48 | ;Map to right arrow or ctrl right arrow 49 | LWIN & l:: 50 | GetKeyState, state, shift, P 51 | if state = D 52 | send, ^{right} 53 | else 54 | send, {right} 55 | return 56 | 57 | ;Map to up arrow 58 | LWIN & k:: 59 | GetKeyState, state, shift, P 60 | if state = D 61 | send, {shift}+{up} 62 | else 63 | send, {up} 64 | return 65 | 66 | ;Map to down arrow 67 | LWIN & j:: 68 | GetKeyState, state, shift, P 69 | if state = D 70 | send, {shift}+{down} 71 | else 72 | send, {down} 73 | return 74 | 75 | ;Map to Alt + Shift + Tab 76 | LWIN & d:: ShiftAltTab 77 | 78 | ;Map to Alt + Tab 79 | LWIN & f:: AltTab 80 | 81 | ;Map c to close window 82 | LWIN & c:: 83 | GetKeyState, state, shift, P 84 | if state = D 85 | send !{F4} 86 | else 87 | send, ^{F4} 88 | return 89 | 90 | ;Stop win & key from toggling capslock. 91 | LWIN:: 92 | ;*LWIN:: 93 | +LWIN:: 94 | LWIN & down:: 95 | LWIN & up:: 96 | LWIN & right:: 97 | LWIN & left:: 98 | LWIN & shift:: 99 | LWIN & appskey:: 100 | LWIN & tab:: 101 | LWIN & `:: 102 | LWIN & 3:: 103 | LWIN & 5:: 104 | LWIN & 7:: 105 | LWIN & 8:: 106 | LWIN & 9:: 107 | LWIN & 0:: 108 | LWIN & -:: 109 | LWIN & =:: 110 | LWIN & a:: 111 | LWIN & s:: 112 | LWIN & p:: 113 | LWIN & `;:: 114 | LWIN & \:: 115 | LWIN & z:: 116 | LWIN & v:: 117 | LWIN & w:: 118 | LWIN & [:: 119 | LWIN & ]:: 120 | LWIN & #:: 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /windows/autohotkey/partial_ahk_general.ahk: -------------------------------------------------------------------------------- 1 | ;=========================== 2 | actions="div,cm,con,as,e,kk,lm,clm,mmsc,mmc,mmn,wtr,wtl,wbl,wbr,wc,wf,rwind,ww,rr,sm,sr,se,sd,x,savr,cyg,ming,proc,lw,ulw" 3 | LWIN & y:: 4 | Input,command_input,T1/5,{enter}{esc}{tab},%actions% 5 | if (ErrorLevel = Max | ErrorLevel = Timeout ) 6 | { 7 | return 8 | } 9 | if (command_input <> "") 10 | { 11 | SetTimer, %command_input%, -1 12 | } 13 | return 14 | 15 | MsgBox Hello 16 | 17 | ;=================================================== 18 | ;Basic Actions 19 | ;=================================================== 20 | 21 | ;exit the current app 22 | x: 23 | send, !{F4} 24 | return 25 | 26 | 27 | ;launch executor 28 | e: 29 | send, !q 30 | return 31 | 32 | ;activate the menu in a shell window 33 | cm: 34 | click_mouse_in_active_window(14,16) 35 | return 36 | 37 | ;launch the cygwin shell 38 | cyg: 39 | run_start_menu_program(cygwin) 40 | return 41 | 42 | ;launch the mingw shell 43 | ming: 44 | run_start_menu_program(mingw) 45 | return 46 | 47 | ;launch the conemu terminal 48 | con: 49 | run_start_menu_program(conemu) 50 | return 51 | 52 | lm: 53 | Click 54 | return 55 | 56 | lw: 57 | RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Policies\System, DisableLockWorkstation, 0 58 | return 59 | 60 | ulw: 61 | RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Policies\System, DisableLockWorkstation, 1 62 | return 63 | 64 | clm: 65 | ControlClick 66 | return 67 | 68 | ;launch divvy 69 | div: 70 | run_regular_program(divvy) 71 | return 72 | 73 | 74 | ;Move the mouse center 75 | mmc: 76 | move_mouse_to_middle_of_active_screen() 77 | return 78 | 79 | 80 | ;Move the mouse center 81 | mmsc: 82 | click_mouse_in_middle_of_screen() 83 | return 84 | 85 | ;Move the window to the next monitor 86 | mmn: 87 | send, +{Right} 88 | return 89 | 90 | 91 | ;Run autohotkey spy 92 | as: 93 | run_regular_program(autohotkey_spy) 94 | return 95 | 96 | kk: 97 | send, {Home} 98 | return 99 | 100 | wtl: 101 | position_window_and_size(0,0,screen_center_x,screen_center_y) 102 | return 103 | 104 | wtr: 105 | position_window_and_size(screen_center_x,0,screen_center_x,screen_center_y) 106 | return 107 | 108 | wbl: 109 | position_window_and_size(0,screen_height-screen_center_y,screen_center_x,screen_center_y) 110 | return 111 | 112 | wbr: 113 | position_window_and_size(screen_width - screen_center_x,screen_center_y,screen_center_x,screen_center_y) 114 | return 115 | 116 | wc: 117 | WinGetActiveTitle, current_active_window 118 | position_window_and_size(screen_center_x - screen_center_x/2,screen_center_y - screen_center_y/2,screen_width/2,screen_height/2) 119 | return 120 | 121 | wf: 122 | position_window_and_size(0,0,screen_width,screen_height) 123 | return 124 | 125 | rwind: 126 | run_regular_program(process_explorer) 127 | SetTimer,CloseProcExplorer,500 128 | return 129 | 130 | ;run process explorer 131 | proc: 132 | run_regular_program(process_explorer) 133 | return 134 | 135 | ;close the current file window 136 | ww: 137 | send_keystrokes("!fc") 138 | return 139 | 140 | ;Reload autohotkey scripts 141 | rr: 142 | Loop,%autohotkey_scripts% 143 | { 144 | Run,%A_LoopFileFullPath% 145 | } 146 | return 147 | 148 | ;launch the start menu 149 | sm: 150 | send, {LWIN} 151 | return 152 | 153 | 154 | 155 | ;======================================== 156 | ;Camtasia 157 | ;======================================== 158 | ;start new recording 159 | sr: 160 | IfWinNotExist, %camrec% 161 | { 162 | run_regular_program(camrec_exe) 163 | wait_for_window(camrec) 164 | } 165 | send, {F9} 166 | return 167 | 168 | 169 | ;stop recording 170 | se: 171 | send, {F10} 172 | return 173 | 174 | ;save recording as 175 | savr: 176 | click_mouse_in_active_window(1223,866) 177 | return 178 | 179 | ;delete current recording 180 | dr: 181 | click_mouse_in_active_window(1378,812) 182 | return 183 | ;================================================ 184 | 185 | ;shut down the machine 186 | sd: 187 | send_with_sleep("{LWin}",500) 188 | send, {Right}{Enter} 189 | return 190 | 191 | 192 | CloseProcExplorer: 193 | IfWinNotExist, Process Explorer 194 | { 195 | process_explorer_close_attempts+=1 196 | if (process_explorer_close_attempts > 4) 197 | { 198 | process_explorer_close_attempts = 0 199 | disable_timer("CloseProcExplorer") 200 | } 201 | } 202 | else 203 | { 204 | WinClose, Process Explorer 205 | disable_timer("CloseProcExplorer") 206 | } 207 | return 208 | -------------------------------------------------------------------------------- /windows/autohotkey/partial_ahk_spaces_as_underscores.ahk: -------------------------------------------------------------------------------- 1 | ;======================================================================================= 2 | ;BDD Test Naming Mode AHK Script 3 | ; 4 | ;Description: 5 | ; Replaces spaces with underscores while typing, to help with writing BDD test names. 6 | ; Toggle on and off with Ctrl + Shift + U. 7 | ;======================================================================================= 8 | enabledIcon := "testnamingmode_16.ico" 9 | disabledIcon := "testnamingmode_disabled_16.ico" 10 | IsInTestNamingMode := false 11 | SetTestNamingMode(false) 12 | 13 | ;========================== 14 | ;Functions 15 | ;========================== 16 | SetTestNamingMode(toActive) { 17 | local iconFile := toActive ? enabledIcon : disabledIcon 18 | local state := toActive ? "ON" : "OFF" 19 | 20 | IsInTestNamingMode := toActive 21 | Menu, Tray, Icon, %iconFile%, 22 | Menu, Tray, Tip, Test naming mode is %state% 23 | 24 | } 25 | 26 | ;========================== 27 | ;Test Mode toggle 28 | ;========================== 29 | LWin & t:: 30 | SetTestNamingMode(true) 31 | return 32 | 33 | ;========================== 34 | ;Handle Enter press 35 | ;========================== 36 | $Enter:: 37 | if (IsInTestNamingMode){ 38 | SetTestNamingMode(false) 39 | } 40 | else{ 41 | Send, {Enter} 42 | } 43 | return 44 | 45 | ;========================== 46 | ;Handle Escape press 47 | ;========================== 48 | ;Map to escape or shift + escape 49 | LWIN & e:: 50 | GetKeyState, state, shift, P 51 | if state = D 52 | send, {shift}+{escape} 53 | else 54 | send, {escape} 55 | SetTestNamingMode(false) 56 | return 57 | 58 | $Escape:: 59 | SetTestNamingMode(false) 60 | Send, {Escape} 61 | return 62 | 63 | ;========================== 64 | ;Handle SPACE press 65 | ;========================== 66 | $Space:: 67 | if (IsInTestNamingMode) { 68 | Send, _ 69 | } else { 70 | Send, {Space} 71 | } 72 | return 73 | -------------------------------------------------------------------------------- /windows/autohotkey/partial_ahk_visual_studio.ahk: -------------------------------------------------------------------------------- 1 | reload_window_title = Project file modification detected 2 | 3 | ;=========================== 4 | ;bring up the VS# context actions 5 | actions="aep,el,ani,drun,rwd,fac,fl,h,imp,key,l,anp,nu,par,rr,ru,s,o,vi,w,pairv,pairr,rel,rb,vv,vh" 6 | LWIN & o:: 7 | Input,command_input,T1/1,{enter}{esc}{tab},%actions% 8 | if (ErrorLevel = Max | ErrorLevel = Timeout) 9 | { 10 | return 11 | } 12 | if (command_input <> "") 13 | { 14 | SetTimer, %command_input%, -1 15 | } 16 | return 17 | 18 | ;================================================================ 19 | ; Visual studio actions 20 | 21 | ;Error List 22 | el: 23 | send_keystrokes_to_program("^\e",devenv) 24 | return 25 | 26 | ;Project add reference 27 | par: 28 | send_keystrokes_to_program("!PR",devenv) 29 | return 30 | 31 | ;Tools-options-fonts 32 | fac: 33 | send_keystrokes_to_program("!TO",devenv) 34 | send_with_sleep("+{tab}{PageUp}ff",200) 35 | return 36 | 37 | ;Tools-options-keyboard 38 | key: 39 | send_keystrokes_to_program("!TO",devenv) 40 | send_with_sleep("+{tab}{PageUp}k",200) 41 | return 42 | 43 | ;Import settings 44 | imp: 45 | send_keystrokes_to_program("!TI",devenv) 46 | send_with_sleep("!i!n!o!n!b",100) 47 | send_with_sleep("C:{enter}",100) 48 | send_keystrokes("C:\users\jp\repositories\developwithpassion\devtools\windows\visual_studio{enter}+{tab}+{tab}") 49 | return 50 | 51 | ;Add New Project 52 | anp: 53 | send_keystrokes_to_program("!FDN",devenv) 54 | return 55 | 56 | ;Add New Item 57 | ani: 58 | send_keystrokes_to_program("^+A",devenv) 59 | return 60 | 61 | ;Add Existing Project 62 | aep: 63 | send_keystrokes_to_program("!FDE",devenv) 64 | return 65 | 66 | ;build all 67 | o: 68 | send, ^+b 69 | return 70 | 71 | ;rebuild solution 72 | rb: 73 | send, !br 74 | return 75 | 76 | ;split view vertically 77 | vv: 78 | send_keystrokes_to_program("!wv",devenv) 79 | return 80 | 81 | ;split view horizontally 82 | vh: 83 | send_keystrokes_to_program("!wz",devenv) 84 | return 85 | 86 | ;save all 87 | s: 88 | send, ^+s 89 | return 90 | 91 | 92 | ;close all active windows 93 | w: 94 | send_keystrokes_to_program("!wl",devenv) 95 | return 96 | 97 | ;hide 98 | h: 99 | send_keystrokes_to_program("!wh",devenv) 100 | return 101 | 102 | ;run tests 103 | ru: 104 | send, ^!+t 105 | return 106 | 107 | ;run with debugging 108 | drun: 109 | send, {F5} 110 | return 111 | 112 | ;run withouth debugging 113 | rwd: 114 | send, ^{F5} 115 | return 116 | 117 | ;rerun tests 118 | rr: 119 | send, ^!+r 120 | return 121 | 122 | ;nuget console 123 | nu: 124 | send,!tno 125 | return 126 | 127 | ;reload all projects in the solution 128 | rel: 129 | WinWaitActive, %reload_window_title% 130 | click_mouse_in_active_window(459,232) 131 | return 132 | 133 | ;solution explorer 134 | l: 135 | send,+!l 136 | return 137 | 138 | ;open current file with vim 139 | vi: 140 | send,!tv 141 | return 142 | 143 | ;enable pair settings for vs r# 144 | pairv: 145 | send,!ro 146 | WinWaitActive, ReSharper - Options,,2 147 | click_mouse_in_active_window(54,76) 148 | click_mouse_in_active_window(266,194) 149 | click_mouse_in_active_window(288,433) 150 | send_with_sleep("{Escape}",500) 151 | Send, {Escape} 152 | return 153 | 154 | ;enable pair settings for intellij r# 155 | pairr: 156 | send,!ro 157 | WinWaitActive, ReSharper - Options,,2 158 | click_mouse_in_active_window(54,76) 159 | click_mouse_in_active_window(268,279) 160 | click_mouse_in_active_window(288,433) 161 | Send, {Escape} 162 | return 163 | 164 | ;float the current document to the next monitor 165 | fl: 166 | send,!W{Down}{Down}{Enter} 167 | send, ^m 168 | send, !q 169 | WinWaitActive, Executor 170 | send,Divvy.exe{Enter} 171 | sleep, 200 172 | send,{ALT}+{TAB} 173 | sleep, 200 174 | send,9 175 | sleep,200 176 | send,{Escape} 177 | return 178 | 179 | ;================================================================ 180 | -------------------------------------------------------------------------------- /windows/autohotkey/testnamingmode_16.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/windows/autohotkey/testnamingmode_16.ico -------------------------------------------------------------------------------- /windows/autohotkey/testnamingmode_disabled_16.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/windows/autohotkey/testnamingmode_disabled_16.ico -------------------------------------------------------------------------------- /windows/cygwin/cygwin.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | C: 4 | chdir C:\utils\cygwin\bin 5 | C:\utils\cygwin\bin\screen-4.1.0.exe -s /usr/local/bin/zsh 6 | -------------------------------------------------------------------------------- /windows/cygwin/cygwin_bash.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | C: 4 | chdir C:\utils\cygwin\bin 5 | sh.exe --login -i 6 | -------------------------------------------------------------------------------- /windows/divvy/shortcuts.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/windows/divvy/shortcuts.db -------------------------------------------------------------------------------- /windows/mingw/etc/fstab: -------------------------------------------------------------------------------- 1 | C:/utils/mingw/ /mingw 2 | C:/tempfiles /c/tempfiles 3 | Z:/to_backup /z/to_backup 4 | Z:/tempfiles /z/tempfiles 5 | -------------------------------------------------------------------------------- /windows/mingw/etc/profile: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2001, 2002 Earnie Boyd 2 | # This file is part of the Minimal SYStem. 3 | # http://www.mingw.org/msys.shtml 4 | # 5 | # File: profile 6 | # Description: Shell environment initialization script 7 | # Last Revised: 2002.05.04 8 | 9 | if [ -z "$MSYSTEM" ]; then 10 | MSYSTEM=MINGW32 11 | fi 12 | 13 | # My decision to add a . to the PATH and as the first item in the path list 14 | # is to mimick the Win32 method of finding executables. 15 | # 16 | # I filter the PATH value setting in order to get ready for self hosting the 17 | # MSYS runtime and wanting different paths searched first for files. 18 | if [ $MSYSTEM == MINGW32 ]; then 19 | export PATH=".:/usr/local/bin:/mingw/bin:/bin:/c/ruby/192/bin:/c/utils/git/bin:$PATH" 20 | else 21 | export PATH=".:/usr/local/bin:/bin:/mingw/bin:/c/ruby/192/bin:/c/utils/git/bin:$PATH" 22 | fi 23 | 24 | if [ -z "$USERNAME" ]; then 25 | LOGNAME="`id -un`" 26 | else 27 | LOGNAME="$USERNAME" 28 | fi 29 | 30 | HOME="/c/users/$LOGNAME" 31 | 32 | if [ "x$HISTFILE" == "x/.bash_history" ]; then 33 | HISTFILE=$HOME/.bash_history 34 | fi 35 | 36 | export HOME LOGNAME MSYSTEM HISTFILE 37 | 38 | for i in /etc/profile.d/*.sh ; do 39 | if [ -f $i ]; then 40 | . $i 41 | fi 42 | done 43 | 44 | export MAKE_MODE=unix 45 | export PS1='\[\033]0;$MSYSTEM:\w\007 46 | \033[32m\]\u@\h \[\033[33m\w\033[0m\] 47 | $ ' 48 | 49 | alias clear=clsb 50 | 51 | cd "$HOME" 52 | source .bash_profile 53 | -------------------------------------------------------------------------------- /windows/mingw/msys_jp.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | set WD=%~dp0 4 | set WD=%WD%bin 5 | 6 | set MSYSCON=sh.exe 7 | set MSYSTEM=MINGW32 8 | set DISPLAY= 9 | 10 | %WD%\sh --login -i 11 | -------------------------------------------------------------------------------- /windows/powershell/kill_subversion_files.ps1: -------------------------------------------------------------------------------- 1 | function kill_subversion_files($folder) 2 | { 3 | if (($folder -eq $null) -or ([System.IO.Directory]::Exists($folder) -eq $false)) 4 | { 5 | "usage: kill_subversion_files.ps1 [path_to_folder_to_purge_subversion_files_from]" 6 | } 7 | else 8 | { 9 | "Deleting all subversion files from $folder" 10 | get-childitem $folder -recurse -force -include *svn | remove-item -recurse -force 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /windows/powershell/powershell_utils.ps1: -------------------------------------------------------------------------------- 1 | $help_file_prefix = "developwithpassion_powershell_help_on_" 2 | 3 | function purge_temp_help_files() 4 | { 5 | ls $env:temp -force -filter "$help_file_prefix*" | del -force 6 | } 7 | 8 | function get_help($command_name) 9 | { 10 | $temp_file_name = "$env:temp\$help_file_prefix$command_name.txt" 11 | del $temp_file_name -force -ErrorAction SilentlyContinue 12 | $help_topic = get-help $command_name -full 13 | $help_topic > $temp_file_name 14 | gvim.exe $temp_file_name 15 | } 16 | 17 | function kill_process($program_name) 18 | { 19 | get-process -name "$program_name" | stop-process -force 20 | } 21 | 22 | -------------------------------------------------------------------------------- /windows/powershell/profile.ps1: -------------------------------------------------------------------------------- 1 | $env:TERM = 'cygwin' 2 | $env:LESS = 'FRSX' 3 | $profile_folder = $env:userprofile 4 | $powershell_profile_folder = "$profile_folder\Documents\WindowsPowershell" 5 | $prep_scripts_location = "$HOME\repositories\developwithpassion\devtools\windows\scripts" 6 | 7 | $current_location = pwd 8 | cd $powershell_profile_folder 9 | ls *.ps1 -exclude "profile.ps1" | foreach-object{. .\"$($_.name)"} 10 | cd $current_location 11 | 12 | function Prompt { 13 | "$(get-location) 14 | =>" 15 | } 16 | 17 | function prep_machine 18 | { 19 | cd $prep_scripts_location 20 | & "$prep_scripts_location\prep_machine.ps1" 21 | cd $current_location 22 | } 23 | 24 | 25 | -------------------------------------------------------------------------------- /windows/registry_entries/disable_lock_workstation.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/developwithpassion/devtools/c8a3df15d19c35b222b576c200870db18ae451b8/windows/registry_entries/disable_lock_workstation.reg -------------------------------------------------------------------------------- /windows/resharper/templates/file_templates_developwithpassion_specifications_moq.xml: -------------------------------------------------------------------------------- 1 | 2 | 21 | 39 | 57 | -------------------------------------------------------------------------------- /windows/resharper/templates/file_templates_developwithpassion_specifications_rhino_mocks.xml: -------------------------------------------------------------------------------- 1 | 2 | 21 | 39 | 57 | -------------------------------------------------------------------------------- /windows/resharper/templates/file_templates_general.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 34 | -------------------------------------------------------------------------------- /windows/resharper/templates/file_templates_machine_specifications.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /windows/resharper/templates/live_templates_developwithpassion_specifications.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 22 | 34 | -------------------------------------------------------------------------------- /windows/resharper/templates/live_templates_general.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 22 | 30 | 41 | 49 | 57 | 65 | 73 | 82 | -------------------------------------------------------------------------------- /windows/resharper/templates/live_templates_machine_specifications.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 18 | 28 | 38 | 46 | -------------------------------------------------------------------------------- /windows/resharper/templates/live_templates_xunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /windows/resharper/templates/surround_templates_general.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 20 | -------------------------------------------------------------------------------- /windows/scripts/prep_machine.ps1: -------------------------------------------------------------------------------- 1 | $profile_folder = $env:userprofile 2 | $remote_profile_folder = "$profile_folder\AppData\Roaming" 3 | $startup_folder = "$remote_profile_folder\Microsoft\Windows\Start Menu\Programs\Startup" 4 | $powershell_profile_folder = "$profile_folder\Documents\WindowsPowershell" 5 | $jetbrains_profile_folder = "$remote_profile_folder\JetBrains\ReSharper\v6.0" 6 | $jetbrains_targets = ("vs10.0") 7 | 8 | $workstation_lock_path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\System" 9 | 10 | $registry_entries = @{"HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\System" = "disable_lock_workstation.reg"} 11 | 12 | function configure_registry_entries() 13 | { 14 | $registry_entries.keys | foreach-object{ 15 | $exists = test-path $_ 16 | if ($exists -eq $false){ 17 | . "..\registry_entries\$($registry_entries[$_])" 18 | } 19 | } 20 | } 21 | 22 | function configure_path() 23 | { 24 | $new_path = [Environment]::GetEnvironmentVariable("PATH","Machine") 25 | $changed = $false; 26 | 27 | $original_elements = $new_path.split(";") 28 | $path_elements | foreach-object { 29 | if ($original_elements -contains $_ -eq $false) 30 | { 31 | $new_path = $new_path + ";$_" 32 | $changed = $true; 33 | } 34 | } 35 | if ($changed) { 36 | [Environment]::SetEnvironmentVariable("PATH",$new_path,"MACHINE") 37 | } 38 | } 39 | 40 | function init_temp_folders() 41 | { 42 | mkdir C:\tempfiles -ErrorAction SilentlyContinue 43 | mkdir C:\tempfiles\vimtemp -ErrorAction SilentlyContinue 44 | mkdir C:\tempfiles\vimtemp\other -ErrorAction SilentlyContinue 45 | } 46 | 47 | function copy_powershell_scripts() 48 | { 49 | del $powershell_profile_folder -force -recurse -ErrorAction SilentlyContinue 50 | new-item $powershell_profile_folder -force -type Directory 51 | ls ..\powershell\*.ps1 | cp -destination "$powershell_profile_folder" 52 | ls ..\powershell\*.psm1 | cp -destination "$powershell_profile_folder" 53 | } 54 | 55 | function copy_profile_settings() 56 | { 57 | cp ..\viemu\_viemurc $profile_folder 58 | } 59 | 60 | function copy_auto_hotkey_scripts() 61 | { 62 | remove-item "$startup_folder\*.*" -force -recurse 63 | get-item ..\autohotkey\*.lnk | foreach-object { copy-item $_ $startup_folder } 64 | } 65 | 66 | function copy_executor_ini_file() 67 | { 68 | cp ..\executor\executor.ini "$remote_profile_folder\Executor" 69 | } 70 | 71 | function copy_resharper_settings() 72 | { 73 | $jetbrains_targets | foreach-object { cp ..\resharper\*.* -destination "$jetbrains_profile_folder\$_" -ErrorAction SilentlyContinue } 74 | } 75 | 76 | function copy_console_scripts() 77 | { 78 | cp ..\console\*.* -destination C:\utils\console -force -ErrorAction SilentlyContinue 79 | } 80 | 81 | copy_profile_settings 82 | copy_auto_hotkey_scripts 83 | copy_powershell_scripts 84 | copy_resharper_settings 85 | copy_auto_hotkey_scripts 86 | configure_path 87 | configure_registry_entries 88 | -------------------------------------------------------------------------------- /windows/utils_contents: -------------------------------------------------------------------------------- 1 | autohotkey 2 | beyond_compare_3 3 | camtasia_studio 4 | console 5 | ctags 6 | cygwin 7 | divvy 8 | dotpeek 9 | executor 10 | fiddler2 11 | firefox 12 | git 13 | growl 14 | growl_for_windows 15 | linqpad 16 | lockhunter 17 | mingw 18 | myuninstaller 19 | ndepend 20 | red_gate 21 | sysinternals 22 | vim 23 | vista_switcher 24 | vs2010 25 | -------------------------------------------------------------------------------- /windows/viemu/_viemurc: -------------------------------------------------------------------------------- 1 | set nocompatible 2 | set backupdir=C:\tempfiles\vimtemp 3 | set directory=C:\tempfiles\vimtemp\other 4 | 5 | source $VIM\_projectvimrc 6 | source $VIM\wordlist.vim 7 | 8 | " Remove ALL autocommands for the current group. 9 | :autocmd! 10 | " Powershell 11 | au BufNewFile,BufRead *.ps1 setf ps1 12 | 13 | syntax on 14 | filetype on 15 | filetype indent on 16 | filetype plugin on 17 | 18 | " allow backspacing over everything in insert mode 19 | set backspace=indent,eol,start 20 | 21 | " General options 22 | set incsearch 23 | set ignorecase smartcase 24 | set number 25 | 26 | " height and width 27 | set lines=35 28 | set columns=150 29 | 30 | " Use two space tabs 31 | set tabstop=2 32 | set shiftwidth=2 33 | set expandtab 34 | 35 | " No menus and no toolbar 36 | set guioptions-=T 37 | set guioptions+=m 38 | " Consolas 15 point, ansi character set 39 | set guifont=Consolas:h13:cANSI 40 | 41 | "dictionary 42 | set dictionary+=$VIM\dictionary.vim 43 | 44 | " ruby color scheme 45 | highlight Normal guifg=White guibg=Black 46 | highlight Cursor guifg=Black guibg=Yellow 47 | highlight Keyword guifg=#FF6600 48 | highlight Define guifg=#FF6600 49 | highlight Comment guifg=#9933CC 50 | "highlight Type guifg=White gui=NONE 51 | "highlight rubySymbol guifg=#339999 gui=NONE 52 | "highlight Identifier guifg=White gui=NONE 53 | "highlight rubyStringDelimiter guifg=#66FF00 54 | "highlight rubyInterpolation guifg=White 55 | "highlight rubyPseudoVariable guifg=#339999 56 | "highlight Constant guifg=#FFEE98 57 | "highlight Function guifg=#FFCC00 gui=NONE 58 | "highlight Include guifg=#FFCC00 gui=NONE 59 | "highlight Statement guifg=#FF6600 gui=NONE 60 | "highlight String guifg=#66FF00 61 | "highlight Search guibg=White 62 | 63 | "vim settings 64 | :map s :set spell 65 | :map ns :set nospell 66 | :map mail n,wlj\s 67 | :nmap ,v :e $VIM\_vimrc 68 | :nmap ,wl :e $VIM\wordlist.vim 69 | :nmap ,dict :e $VIM\dictionary.vim 70 | :nmap ,p :e $VIM\_projectvimrc 71 | :nmap ,V :so $VIM\_vimrc 72 | :nmap ,fv :e C:\documents and settings\administrator\_vimperatorrc 73 | :nmap ,sm :simalt ~ 74 | :nnoremap :noh 75 | 76 | "presentation settings 77 | :nmap ,pf :setguifont=Consolas:h18:cANSI 78 | :nmap ,rf :setguifont=Consolas:h13:cANSI 79 | 80 | 81 | set diffexpr=MyDiff() 82 | function! MyDiff() 83 | let opt = '-a --binary ' 84 | if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif 85 | if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif 86 | let arg1 = v:fname_in 87 | if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif 88 | let arg2 = v:fname_new 89 | if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif 90 | let arg3 = v:fname_out 91 | if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif 92 | let eq = '' 93 | if $VIMRUNTIME =~ ' ' 94 | if &sh =~ '\ ' . arg3 . eq 104 | endfunction 105 | 106 | " Convenient command to see the difference between the current buffer and the 107 | " file it was loaded from, thus the changes you made. 108 | command! DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis 109 | \ | wincmd p | diffthis 110 | 111 | 112 | -------------------------------------------------------------------------------- /windows/visual_studio/developwithpassion_presentation_vs2010.vssettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 2 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | --------------------------------------------------------------------------------