mirror of
https://github.com/genebean/dots.git
synced 2026-03-27 01:17:42 -04:00
Cleaning out the cobwebs
This commit is contained in:
parent
5d5985bb27
commit
54f7f9a6f2
67 changed files with 1 additions and 3038 deletions
|
|
@ -112,7 +112,7 @@ $ tree . -I legacy* -I link* --gitignore --dirsfirst
|
||||||
|
|
||||||
## Historical bits
|
## Historical bits
|
||||||
|
|
||||||
This repo historically contained my dot files. Historically symlinked files are still in `link/`. Most all the other old stuff is now tucked away under `legacy/` to get it out of the way until I decide what is and isn't needed.
|
This repo historically contained my dot files. Historically symlinked files on Windows are still in `windows/`. Everything else is just in git history now.
|
||||||
|
|
||||||
## Adding a new macOS host
|
## Adding a new macOS host
|
||||||
|
|
||||||
|
|
|
||||||
5
Vagrantfile
vendored
5
Vagrantfile
vendored
|
|
@ -1,5 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
Vagrant.configure('2') do |config|
|
|
||||||
config.vm.box = 'genebean/centos-7-nocm'
|
|
||||||
end
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
# Ansible Bootstrapping
|
|
||||||
|
|
||||||
Temporary docs for Ansible as I work things out.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
|
||||||
python3 -m pip install --user ansible ansible-lint
|
|
||||||
ansible-galaxy collection install jonellis.sudoers
|
|
||||||
ansible-galaxy install gantsign.oh-my-zsh
|
|
||||||
ansible-galaxy install jack1142.apt_signing_key
|
|
||||||
ansible-playbook -i ansible/ansible_hosts.yaml --ask-become-pass ansible/carbonbean.yaml --verbose
|
|
||||||
```
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
---
|
|
||||||
all:
|
|
||||||
hosts:
|
|
||||||
bigboy-wsl:
|
|
||||||
ansible_connection: local
|
|
||||||
blue-rock:
|
|
||||||
ansible_connection: local
|
|
||||||
children:
|
|
||||||
servers:
|
|
||||||
vars:
|
|
||||||
ansible_connection: ssh
|
|
||||||
hosts:
|
|
||||||
cloud2.technicalissues.us:
|
|
||||||
ansible_user: gene
|
|
||||||
mail.alt.technicalissues.us:
|
|
||||||
ansible_user: gliverma
|
|
||||||
mini-watcher.local:
|
|
||||||
ansible_user: gene
|
|
||||||
tart.local:
|
|
||||||
ansible_user: pi
|
|
||||||
|
|
@ -1,142 +0,0 @@
|
||||||
---
|
|
||||||
- name: Install packages
|
|
||||||
hosts: bigboy-wsl
|
|
||||||
vars:
|
|
||||||
ansible_python_interpreter: '/usr/bin/python3'
|
|
||||||
tasks:
|
|
||||||
|
|
||||||
- name: Install Microsoft keys and repo
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
force: true
|
|
||||||
deb: https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb
|
|
||||||
|
|
||||||
- name: Base packages from apt
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
update_cache: true
|
|
||||||
state: latest
|
|
||||||
pkg:
|
|
||||||
- bat
|
|
||||||
- bundler
|
|
||||||
- cmake
|
|
||||||
- dconf-editor
|
|
||||||
- dos2unix
|
|
||||||
- exa
|
|
||||||
- gh
|
|
||||||
- git
|
|
||||||
- git-lfs
|
|
||||||
- gnupg
|
|
||||||
- htop
|
|
||||||
- httpie
|
|
||||||
- hub
|
|
||||||
- hugo
|
|
||||||
- iftop
|
|
||||||
- jq
|
|
||||||
- libssl-dev
|
|
||||||
- neofetch
|
|
||||||
- pass
|
|
||||||
- pcsc-tools
|
|
||||||
- pcscd
|
|
||||||
- powershell
|
|
||||||
- rake
|
|
||||||
- ruby
|
|
||||||
- ruby-dev
|
|
||||||
- scdaemon
|
|
||||||
- snapd
|
|
||||||
- tilix
|
|
||||||
- traceroute
|
|
||||||
- tree
|
|
||||||
- vim
|
|
||||||
- xclip
|
|
||||||
- zsh
|
|
||||||
|
|
||||||
- name: Install git-credential-manager deb package
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
deb: https://github.com/GitCredentialManager/git-credential-manager/releases/download/v2.0.696/gcmcore-linux_amd64.2.0.696.deb
|
|
||||||
|
|
||||||
- name: Install delta via deb package on GitHub
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
deb: https://github.com/dandavison/delta/releases/download/0.13.0/git-delta_0.13.0_amd64.deb
|
|
||||||
|
|
||||||
- name: Base packages from Snapcraft
|
|
||||||
become: true
|
|
||||||
community.general.snap:
|
|
||||||
name:
|
|
||||||
- cctv-viewer # only available here
|
|
||||||
|
|
||||||
- name: hiera-eyaml gem
|
|
||||||
community.general.gem:
|
|
||||||
name: hiera-eyaml
|
|
||||||
state: latest
|
|
||||||
|
|
||||||
- name: vmfloaty gem
|
|
||||||
community.general.gem:
|
|
||||||
name: vmfloaty
|
|
||||||
state: latest
|
|
||||||
|
|
||||||
- name: Python packages via pip
|
|
||||||
ansible.builtin.pip:
|
|
||||||
state: latest
|
|
||||||
name:
|
|
||||||
- ansible
|
|
||||||
- ansible-lint
|
|
||||||
- flake8
|
|
||||||
- pywinrm
|
|
||||||
|
|
||||||
- name: ensure fonts directory
|
|
||||||
file:
|
|
||||||
path: "{{ lookup('env', 'HOME') }}/.fonts"
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- name: Hack exists
|
|
||||||
shell: "ls {{ lookup('env', 'HOME') }}/.fonts/Hack*Nerd*Font*Complete*"
|
|
||||||
register: hack_exists
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
- name: Download Hack
|
|
||||||
when: hack_exists is failed
|
|
||||||
ansible.builtin.unarchive:
|
|
||||||
src: https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Hack.zip
|
|
||||||
dest: "{{ lookup('env', 'HOME') }}/.fonts/"
|
|
||||||
remote_src: true
|
|
||||||
|
|
||||||
- name: Setup Oh My ZSH
|
|
||||||
include_role:
|
|
||||||
name: gantsign.oh-my-zsh
|
|
||||||
vars:
|
|
||||||
oh_my_zsh_theme: steeef
|
|
||||||
oh_my_zsh_plugins:
|
|
||||||
- git
|
|
||||||
users:
|
|
||||||
- username: "{{ lookup('env', 'USER') }}"
|
|
||||||
|
|
||||||
# - name: Symlink .zshrc
|
|
||||||
# ansible.builtin.file:
|
|
||||||
# src: "{{ lookup('env', 'HOME') }}/repos/dots/link/nix/zshrc"
|
|
||||||
# dest: "{{ lookup('env', 'HOME') }}/.zshrc"
|
|
||||||
# state: link
|
|
||||||
|
|
||||||
# - name: Set shell to zsh and add to groups
|
|
||||||
# become: true
|
|
||||||
# ansible.builtin.user:
|
|
||||||
# name: "{{ lookup('env', 'USER') }}"
|
|
||||||
# shell: /usr/bin/zsh
|
|
||||||
# append: true
|
|
||||||
# groups:
|
|
||||||
# - dialout
|
|
||||||
|
|
||||||
- name: Add passwordless sudo entries
|
|
||||||
become: true
|
|
||||||
community.general.sudoers:
|
|
||||||
name: "{{ lookup('env', 'USER') }}-no-password"
|
|
||||||
user: "{{ lookup('env', 'USER') }}"
|
|
||||||
nopassword: true
|
|
||||||
commands:
|
|
||||||
- /usr/bin/systemctl restart pcscd
|
|
||||||
- /usr/bin/pkill -9 gpg-agent
|
|
||||||
|
|
@ -1,127 +0,0 @@
|
||||||
---
|
|
||||||
- name: Install packages
|
|
||||||
hosts: blue-rock
|
|
||||||
vars:
|
|
||||||
ansible_python_interpreter: '/usr/local/bin/python3'
|
|
||||||
tasks:
|
|
||||||
- name: Install packages from Homebrew
|
|
||||||
community.general.homebrew:
|
|
||||||
state: latest
|
|
||||||
name:
|
|
||||||
- adr-tools
|
|
||||||
# - cdktf
|
|
||||||
- chart-testing
|
|
||||||
- coreutils
|
|
||||||
- dog
|
|
||||||
- dust
|
|
||||||
- gh
|
|
||||||
- gotop
|
|
||||||
- helm
|
|
||||||
- hub
|
|
||||||
- jq
|
|
||||||
- k9s
|
|
||||||
- kubectl
|
|
||||||
- kubectx
|
|
||||||
- mas
|
|
||||||
- neovim
|
|
||||||
- npm
|
|
||||||
- python
|
|
||||||
- subversion
|
|
||||||
- tree
|
|
||||||
- wget
|
|
||||||
- yq
|
|
||||||
|
|
||||||
# - name: Install casks from Homebrew
|
|
||||||
# community.general.homebrew:
|
|
||||||
# state: present
|
|
||||||
# name:
|
|
||||||
# - homebrew/cask/1password
|
|
||||||
# - homebrew/cask/cakebrew
|
|
||||||
# - homebrew/cask/elgato-stream-deck
|
|
||||||
# - homebrew/cask/firefox
|
|
||||||
# - homebrew/cask/google-drive
|
|
||||||
# - homebrew/cask/iterm2
|
|
||||||
# - homebrew/cask/keepingyouawake
|
|
||||||
# - homebrew/cask/logseq
|
|
||||||
# - homebrew/cask/meld
|
|
||||||
# - homebrew/cask/obs
|
|
||||||
# - homebrew/cask/signal
|
|
||||||
# - homebrew/cask/slack
|
|
||||||
# - homebrew/cask/thunderbird
|
|
||||||
# - homebrew/cask/visual-studio-code
|
|
||||||
# - homebrew/cask/vivaldi
|
|
||||||
# - homebrew/cask/whatsapp
|
|
||||||
# - homebrew/cask/zoom
|
|
||||||
# - homebrew/cask-fonts/font-hack-nerd-font
|
|
||||||
# - homebrew/cask-fonts/font-inconsolata-g-for-powerline
|
|
||||||
# - homebrew/cask-fonts/font-source-code-pro-for-powerline
|
|
||||||
# - puppetlabs/puppet/pdk
|
|
||||||
|
|
||||||
# - name: Install apps from App Store
|
|
||||||
# community.general.mas:
|
|
||||||
# state: present
|
|
||||||
# id:
|
|
||||||
# - 1569813296 # 1Password for Safari
|
|
||||||
# - 417375580 # BetterSnapTool
|
|
||||||
# - 1532419400 # MeetingBar for Meet, Zoom & Co
|
|
||||||
# - 1451685025 # WireGuard
|
|
||||||
|
|
||||||
- name: Install packages with pip
|
|
||||||
ansible.builtin.pip:
|
|
||||||
name:
|
|
||||||
- ansible
|
|
||||||
- ansible-lint
|
|
||||||
# - powerline-status # repalced with airline
|
|
||||||
# - psutil
|
|
||||||
|
|
||||||
- name: Download Hack Nerd Font
|
|
||||||
ansible.builtin.unarchive:
|
|
||||||
src: https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Hack.zip
|
|
||||||
dest: "{{ lookup('env', 'HOME') }}/Library/Fonts/"
|
|
||||||
remote_src: true
|
|
||||||
|
|
||||||
# Vim setup
|
|
||||||
- name: Symlink .vimrc
|
|
||||||
ansible.builtin.file:
|
|
||||||
src: "{{ lookup('env', 'HOME') }}/repos/dots/link/nix/vimrc"
|
|
||||||
dest: "{{ lookup('env', 'HOME') }}/.vimrc"
|
|
||||||
state: link
|
|
||||||
force: true
|
|
||||||
|
|
||||||
# - name: Symlink .vimrc_os_specific
|
|
||||||
# ansible.builtin.file:
|
|
||||||
# src: "{{ lookup('env', 'HOME') }}/repos/dots/link/mac/vimrc_os_specific"
|
|
||||||
# dest: "{{ lookup('env', 'HOME') }}/.vimrc_os_specific"
|
|
||||||
# state: link
|
|
||||||
# force: true
|
|
||||||
|
|
||||||
- name: Install Vundle
|
|
||||||
ansible.builtin.git:
|
|
||||||
repo: 'https://github.com/VundleVim/Vundle.vim'
|
|
||||||
dest: "{{ lookup('env', 'HOME') }}/.vim/bundle/Vundle.vim"
|
|
||||||
|
|
||||||
- name: Install Vundle Plugins
|
|
||||||
shell: "echo -ne '\n' | vim +PluginInstall! +qall"
|
|
||||||
|
|
||||||
# ZSH setup
|
|
||||||
- name: Clone my oh-my-zsh plugins
|
|
||||||
ansible.builtin.git:
|
|
||||||
repo: 'https://github.com/genebean/my-oh-zsh-plugins'
|
|
||||||
dest: "{{ lookup('env', 'HOME') }}/repos/customized-oh-my-zsh/plugins"
|
|
||||||
|
|
||||||
- name: Clone zsh-autosuggestions
|
|
||||||
ansible.builtin.git:
|
|
||||||
repo: 'https://github.com/zsh-users/zsh-autosuggestions'
|
|
||||||
dest: "{{ lookup('env', 'HOME') }}/repos/customized-oh-my-zsh/plugins/zsh-autosuggestions"
|
|
||||||
|
|
||||||
- name: Clone my oh-my-zsh themes
|
|
||||||
ansible.builtin.git:
|
|
||||||
repo: 'https://github.com/genebean/my-oh-zsh-themes'
|
|
||||||
dest: "{{ lookup('env', 'HOME') }}/repos/customized-oh-my-zsh/themes"
|
|
||||||
|
|
||||||
- name: Symlink .zshrc
|
|
||||||
ansible.builtin.file:
|
|
||||||
src: "{{ lookup('env', 'HOME') }}/repos/dots/link/nix/zshrc"
|
|
||||||
dest: "{{ lookup('env', 'HOME') }}/.zshrc"
|
|
||||||
state: link
|
|
||||||
force: true
|
|
||||||
|
|
@ -1,362 +0,0 @@
|
||||||
---
|
|
||||||
- name: Install packages
|
|
||||||
hosts: carbonbean
|
|
||||||
vars:
|
|
||||||
ansible_python_interpreter: '/usr/bin/python3'
|
|
||||||
tasks:
|
|
||||||
|
|
||||||
- name: Add 1Password apt signing key
|
|
||||||
ansible.builtin.include_role:
|
|
||||||
name: jack1142.apt_signing_key
|
|
||||||
vars:
|
|
||||||
url: https://downloads.1password.com/linux/keys/1password.asc
|
|
||||||
key_name: 1password
|
|
||||||
dearmor: true
|
|
||||||
|
|
||||||
- name: Add 1Password repository
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt_repository:
|
|
||||||
repo: deb [arch=amd64 signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] https://downloads.1password.com/linux/debian/amd64 stable main
|
|
||||||
state: present
|
|
||||||
filename: 1password
|
|
||||||
update_cache: false
|
|
||||||
|
|
||||||
- name: Add Google Cloud apt key
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt_key:
|
|
||||||
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
|
|
||||||
keyring: /usr/share/keyrings/cloud.google.gpg
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: Add Google apt repo
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt_repository:
|
|
||||||
repo: deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main
|
|
||||||
state: present
|
|
||||||
filename: google-cloud-sdk
|
|
||||||
update_cache: false
|
|
||||||
|
|
||||||
- name: Add Okta ASA client apt signing key
|
|
||||||
ansible.builtin.include_role:
|
|
||||||
name: jack1142.apt_signing_key
|
|
||||||
vars:
|
|
||||||
url: https://dist.scaleft.com/pki/scaleft_deb_key.asc
|
|
||||||
key_name: scaleft
|
|
||||||
dearmor: true
|
|
||||||
|
|
||||||
- name: Add scaleft / Okta ASA repository
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt_repository:
|
|
||||||
repo: deb [arch=amd64 signed-by=/usr/share/keyrings/scaleft-archive-keyring.gpg] http://pkg.scaleft.com/deb linux main
|
|
||||||
state: present
|
|
||||||
filename: scaleft
|
|
||||||
update_cache: false
|
|
||||||
|
|
||||||
- name: Add HashiCorp apt key
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt_key:
|
|
||||||
url: https://apt.releases.hashicorp.com/gpg
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: Add HashiCorp Jammy repository
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt_repository:
|
|
||||||
repo: deb [arch=amd64] https://apt.releases.hashicorp.com jammy main
|
|
||||||
state: present
|
|
||||||
filename: hashicorp
|
|
||||||
update_cache: false
|
|
||||||
|
|
||||||
- name: Add Tailscale apt signing key
|
|
||||||
ansible.builtin.include_role:
|
|
||||||
name: jack1142.apt_signing_key
|
|
||||||
vars:
|
|
||||||
url: https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg
|
|
||||||
key_name: tailscale
|
|
||||||
|
|
||||||
- name: Add Tailscale Jammy repository
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt_repository:
|
|
||||||
repo: deb [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg] https://pkgs.tailscale.com/stable/ubuntu jammy main
|
|
||||||
state: present
|
|
||||||
filename: tailscale
|
|
||||||
update_cache: false
|
|
||||||
|
|
||||||
- name: Add VirtualBox oracle_vbox apt key
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt_key:
|
|
||||||
url: https://www.virtualbox.org/download/oracle_vbox.asc
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: Add VirtualBox oracle_vbox_2016 apt key
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt_key:
|
|
||||||
url: https://www.virtualbox.org/download/oracle_vbox_2016.asc
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: Add VirtualBox Jammy repository
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt_repository:
|
|
||||||
repo: deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian jammy contrib
|
|
||||||
state: present
|
|
||||||
filename: virtualbox
|
|
||||||
update_cache: false
|
|
||||||
|
|
||||||
- name: Install Microsoft keys and repo
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
force: true
|
|
||||||
deb: https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb
|
|
||||||
|
|
||||||
- name: Install puppet-tools repo via Focal (20.04) deb package
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
deb: http://apt.puppet.com/puppet-tools-release-focal.deb
|
|
||||||
|
|
||||||
- name: Base packages from apt
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
update_cache: true
|
|
||||||
state: latest
|
|
||||||
pkg:
|
|
||||||
- 1password
|
|
||||||
- bat
|
|
||||||
- boinc-manager
|
|
||||||
- boinctui
|
|
||||||
- bundler
|
|
||||||
- cmake
|
|
||||||
- code # provided by Pop OS repos
|
|
||||||
- dconf-editor
|
|
||||||
- dos2unix
|
|
||||||
- exa
|
|
||||||
- gh
|
|
||||||
- git
|
|
||||||
- git-lfs
|
|
||||||
- gnupg
|
|
||||||
- google-cloud-cli
|
|
||||||
- google-cloud-cli-gke-gcloud-auth-plugin
|
|
||||||
- gthumb
|
|
||||||
- htop
|
|
||||||
- httpie
|
|
||||||
- hub
|
|
||||||
- hugo
|
|
||||||
- iftop
|
|
||||||
- jq
|
|
||||||
- libssl-dev
|
|
||||||
- neofetch
|
|
||||||
- packer
|
|
||||||
- pass
|
|
||||||
- pcsc-tools
|
|
||||||
- pcscd
|
|
||||||
- pdk
|
|
||||||
- powershell
|
|
||||||
- puppet-bolt
|
|
||||||
- rake
|
|
||||||
- ruby
|
|
||||||
- ruby-dev
|
|
||||||
- scdaemon
|
|
||||||
- scaleft-client-tools
|
|
||||||
- scaleft-url-handler
|
|
||||||
- slack-desktop # provided by Pop OS repos
|
|
||||||
- snapd
|
|
||||||
- tailscale
|
|
||||||
- terraform
|
|
||||||
- tilix
|
|
||||||
- traceroute
|
|
||||||
- tree
|
|
||||||
- vagrant
|
|
||||||
- vim
|
|
||||||
- virtualbox-6.1
|
|
||||||
- vivaldi-stable
|
|
||||||
- xclip
|
|
||||||
- yubikey-manager
|
|
||||||
- zsh
|
|
||||||
|
|
||||||
- name: Install git-credential-manager deb package
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
deb: https://github.com/GitCredentialManager/git-credential-manager/releases/download/v2.0.696/gcmcore-linux_amd64.2.0.696.deb
|
|
||||||
|
|
||||||
- name: Install Profile Switcher for Firefox deb package
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
deb: https://github.com/null-dev/firefox-profile-switcher-connector/releases/latest/download/linux-x64.deb
|
|
||||||
|
|
||||||
- name: Install pe-client-tools via Focal (20.04) deb package
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
deb: https://pm.puppetlabs.com/pe-client-tools/2021.6.0/21.6.0/repos/deb/focal/PC1/pe-client-tools_21.6.0-1focal_amd64.deb
|
|
||||||
|
|
||||||
- name: Install TeamViewer via deb
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
deb: https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
|
|
||||||
|
|
||||||
- name: Install Webex via deb package
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
deb: https://binaries.webex.com/WebexDesktop-Ubuntu-Official-Package/Webex.deb
|
|
||||||
|
|
||||||
- name: Install Zoom via deb package
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
deb: https://zoom.us/client/latest/zoom_amd64.deb
|
|
||||||
|
|
||||||
- name: Install delta via deb package on GitHub
|
|
||||||
become: true
|
|
||||||
ansible.builtin.apt:
|
|
||||||
state: present
|
|
||||||
deb: https://github.com/dandavison/delta/releases/download/0.13.0/git-delta_0.13.0_amd64.deb
|
|
||||||
|
|
||||||
- name: Base packages from Flathub
|
|
||||||
community.general.flatpak:
|
|
||||||
method: user
|
|
||||||
name:
|
|
||||||
- app.resp.RESP
|
|
||||||
- com.belmoussaoui.Obfuscate
|
|
||||||
- com.borgbase.Vorta
|
|
||||||
- com.discordapp.Discord
|
|
||||||
- com.emqx.MQTTX
|
|
||||||
- com.feaneron.Boatswain
|
|
||||||
- flathub org.ferdium.Ferdium
|
|
||||||
- com.github.bleakgrey.tootle
|
|
||||||
- com.github.gijsgoudzwaard.image-optimizer
|
|
||||||
- com.github.joseexposito.touche
|
|
||||||
- com.github.tchx84.Flatseal
|
|
||||||
- com.mattjakeman.ExtensionManager
|
|
||||||
- com.nextcloud.desktopclient.nextcloud
|
|
||||||
- com.obsproject.Studio
|
|
||||||
- com.obsproject.Studio.Plugin.Gstreamer
|
|
||||||
- com.rafaelmardojai.SharePreview
|
|
||||||
- im.riot.Riot
|
|
||||||
- info.mumble.Mumble
|
|
||||||
- io.github.janbar.noson
|
|
||||||
- io.github.mimbrero.WhatsAppDesktop
|
|
||||||
- net.cozic.joplin_desktop
|
|
||||||
- org.ferdium.Ferdium
|
|
||||||
- org.fritzing.Fritzing
|
|
||||||
- org.gnome.meld
|
|
||||||
- org.mozilla.Thunderbird
|
|
||||||
- org.onlyoffice.desktopeditors
|
|
||||||
- org.remmina.Remmina
|
|
||||||
- org.signal.Signal
|
|
||||||
|
|
||||||
- name: Base packages from Snapcraft
|
|
||||||
become: true
|
|
||||||
community.general.snap:
|
|
||||||
name:
|
|
||||||
- cctv-viewer # only available here
|
|
||||||
|
|
||||||
- name: Snaps requiring classic mode
|
|
||||||
become: true
|
|
||||||
community.general.snap:
|
|
||||||
classic: true
|
|
||||||
name:
|
|
||||||
- gitkraken # official version
|
|
||||||
|
|
||||||
- name: Cider from Snapcraft
|
|
||||||
become: true
|
|
||||||
community.general.snap:
|
|
||||||
name: cider # official
|
|
||||||
channel: latest/edge
|
|
||||||
|
|
||||||
- name: hiera-eyaml gem
|
|
||||||
community.general.gem:
|
|
||||||
name: hiera-eyaml
|
|
||||||
state: latest
|
|
||||||
|
|
||||||
- name: vmfloaty gem
|
|
||||||
community.general.gem:
|
|
||||||
name: vmfloaty
|
|
||||||
state: latest
|
|
||||||
|
|
||||||
- name: Python packages via pip
|
|
||||||
ansible.builtin.pip:
|
|
||||||
state: latest
|
|
||||||
name:
|
|
||||||
- ansible
|
|
||||||
- ansible-lint
|
|
||||||
- flake8
|
|
||||||
|
|
||||||
- name: Install packages from Homebrew
|
|
||||||
community.general.homebrew:
|
|
||||||
state: latest
|
|
||||||
name:
|
|
||||||
- adr-tools
|
|
||||||
- cdktf
|
|
||||||
- chart-testing
|
|
||||||
- dog
|
|
||||||
- dust
|
|
||||||
- glow
|
|
||||||
- gotop
|
|
||||||
- helm
|
|
||||||
- k9s
|
|
||||||
- kubectx
|
|
||||||
- stern
|
|
||||||
- yq
|
|
||||||
- name: ensure fonts directory
|
|
||||||
file:
|
|
||||||
path: "{{ lookup('env', 'HOME') }}/.fonts"
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- name: Hack exists
|
|
||||||
shell: "ls {{ lookup('env', 'HOME') }}/.fonts/Hack*Nerd*Font*Complete*"
|
|
||||||
register: hack_exists
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
- name: Download Hack
|
|
||||||
when: hack_exists is failed
|
|
||||||
ansible.builtin.unarchive:
|
|
||||||
src: https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Hack.zip
|
|
||||||
dest: "{{ lookup('env', 'HOME') }}/.fonts/"
|
|
||||||
remote_src: true
|
|
||||||
|
|
||||||
- name: Symlink .zshrc
|
|
||||||
ansible.builtin.file:
|
|
||||||
src: "{{ lookup('env', 'HOME') }}/repos/dots/link/nix/zshrc"
|
|
||||||
dest: "{{ lookup('env', 'HOME') }}/.zshrc"
|
|
||||||
state: link
|
|
||||||
|
|
||||||
- name: Set shell to zsh and add to groups
|
|
||||||
become: true
|
|
||||||
ansible.builtin.user:
|
|
||||||
name: "{{ lookup('env', 'USER') }}"
|
|
||||||
shell: /usr/bin/zsh
|
|
||||||
append: true
|
|
||||||
groups:
|
|
||||||
- dialout
|
|
||||||
|
|
||||||
- name: Add passwordless sudo entries
|
|
||||||
become: true
|
|
||||||
community.general.sudoers:
|
|
||||||
name: "{{ lookup('env', 'USER') }}-no-password"
|
|
||||||
user: "{{ lookup('env', 'USER') }}"
|
|
||||||
nopassword: true
|
|
||||||
commands:
|
|
||||||
- /usr/bin/systemctl restart pcscd
|
|
||||||
- /usr/bin/pkill -9 gpg-agent
|
|
||||||
|
|
||||||
- name: Disable britty so ESPHome flashing works
|
|
||||||
become: true
|
|
||||||
ansible.builtin.shell:
|
|
||||||
cmd: |
|
|
||||||
for f in /usr/lib/udev/rules.d/*brltty*.rules; do
|
|
||||||
if [ ! -L "/etc/udev/rules.d/$(basename "$f")" ]; then
|
|
||||||
ln -s /dev/null "/etc/udev/rules.d/$(basename "$f")"
|
|
||||||
udevadm control --reload-rules
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Disable brltty service
|
|
||||||
become: true
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: brltty.service
|
|
||||||
enabled: false
|
|
||||||
state: stopped
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
---
|
|
||||||
- name: Install and configure zsh
|
|
||||||
hosts: servers
|
|
||||||
vars:
|
|
||||||
ansible_python_interpreter: '/usr/bin/python3'
|
|
||||||
tasks:
|
|
||||||
|
|
||||||
- name: Install zsh using default package manager
|
|
||||||
become: true
|
|
||||||
ansible.builtin.package:
|
|
||||||
state: present
|
|
||||||
name:
|
|
||||||
- git
|
|
||||||
- zsh
|
|
||||||
|
|
||||||
- name: Setup Oh My ZSH
|
|
||||||
include_role:
|
|
||||||
name: gantsign.oh-my-zsh
|
|
||||||
vars:
|
|
||||||
oh_my_zsh_theme: steeef
|
|
||||||
oh_my_zsh_plugins:
|
|
||||||
- git
|
|
||||||
users:
|
|
||||||
- username: "{{ ansible_user }}"
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
---
|
|
||||||
BUNDLE_DISABLE_SHARED_GEMS: "true"
|
|
||||||
BUNDLE_JOBS: "3"
|
|
||||||
BUNDLE_PATH: "vendor/bundle"
|
|
||||||
BUNDLE_RETRY: "3"
|
|
||||||
8
legacy/.github/dependabot.yml
vendored
8
legacy/.github/dependabot.yml
vendored
|
|
@ -1,8 +0,0 @@
|
||||||
version: 2
|
|
||||||
updates:
|
|
||||||
- package-ecosystem: bundler
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: daily
|
|
||||||
time: "10:00"
|
|
||||||
open-pull-requests-limit: 10
|
|
||||||
15
legacy/.github/workflows/ansible-lint.yml
vendored
15
legacy/.github/workflows/ansible-lint.yml
vendored
|
|
@ -1,15 +0,0 @@
|
||||||
name: Ansible Lint
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
ansbile_linting:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Run ansible-lint
|
|
||||||
uses: ansible-community/ansible-lint-action@main
|
|
||||||
with:
|
|
||||||
path: 'ansible/'
|
|
||||||
20
legacy/.github/workflows/ruby.yml
vendored
20
legacy/.github/workflows/ruby.yml
vendored
|
|
@ -1,20 +0,0 @@
|
||||||
name: Ruby
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
ruby_testing:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: [ubuntu-latest, macos-latest]
|
|
||||||
# Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
|
|
||||||
ruby: ['2.6', '2.7', '3.0', '3.1']
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: ruby/setup-ruby@v1
|
|
||||||
with:
|
|
||||||
ruby-version: ${{ matrix.ruby }}
|
|
||||||
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
||||||
- run: bundle exec rake tests
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
--no-class_inherits_from_params_class-check
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
--format documentation
|
|
||||||
--color
|
|
||||||
--tty
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
AllCops:
|
|
||||||
Exclude:
|
|
||||||
- 'vendor/**/*'
|
|
||||||
- 'spec/fixtures/**/*'
|
|
||||||
TargetRubyVersion: 2.5
|
|
||||||
NewCops: enable
|
|
||||||
Style/CommentedKeyword:
|
|
||||||
Enabled: false
|
|
||||||
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
# dots
|
|
||||||
|
|
||||||
My dot files and a tool to deploy them to various OS's
|
|
||||||
|
|
||||||
## The Plan
|
|
||||||
|
|
||||||
* files in [link/](link) get symlinked to `~/.{filename}`
|
|
||||||
* files in [copy/](copy) get copied to `~/.{filename}`
|
|
||||||
* this process should default to not clobbering existing files
|
|
||||||
* [bin/dots.rb](bin/dots.rb) is what users will interact with
|
|
||||||
* it should bootstrap based on the OS it is being run on
|
|
||||||
* it should run Puppet and associated tools such as r10k via bundler
|
|
||||||
* it should not utilize Git submodules; it should instead use [vcsrepo](https://forge.puppet.com/puppetlabs/vcsrepo)
|
|
||||||
* the destination of each repo may well need to be added to the parent's `.gitignore`
|
|
||||||
* it should configure [iTerm2](https://www.iterm2.com/) on Mac
|
|
||||||
* it should configure [Atom](https://atom.io/) on all platforms
|
|
||||||
* it should offer a choice to skip steps related to GUI programs
|
|
||||||
* it should permit host-specific settings / options
|
|
||||||
* this will likely be done via entries in a hiera node file
|
|
||||||
* create a Docker image with all tools preinstaleld and set to mount the current user's home directory as a volume.
|
|
||||||
* use [gosu](https://github.com/tianon/gosu) so ownership is correct.
|
|
||||||
* this may not work on Windows...
|
|
||||||
|
|
||||||
|
|
||||||
### Packages to install on Mac's
|
|
||||||
|
|
||||||
#### Vundle & Vim
|
|
||||||
|
|
||||||
Install via Puppet:
|
|
||||||
|
|
||||||
1. link `vimrc`
|
|
||||||
2. vcsrepo: https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
|
||||||
3. exec `vim +PluginInstall +qall`
|
|
||||||
|
|
||||||
#### Powerline
|
|
||||||
|
|
||||||
```bash
|
|
||||||
brew install coreutils python socat tmux
|
|
||||||
pip install psutil powerline-status
|
|
||||||
git clone https://github.com/powerline/fonts.git ~/repos/powerline-fonts
|
|
||||||
cd ~/repos/powerline-fonts
|
|
||||||
./install.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Thoughts on installing with Puppet:
|
|
||||||
|
|
||||||
* [x] install packages using a provider for homebrew
|
|
||||||
* [x] install packages using the pip provider
|
|
||||||
* [x] use vcsrepo to clone the fonts
|
|
||||||
* [x] create a refresh-only exec that runs the install script
|
|
||||||
* [x] add a notify to the vcsrepo resource that triggers the exec
|
|
||||||
* this will also take care of bringing in new fonts or updates
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
# vim:ft=ruby
|
|
||||||
source 'https://rubygems.org'
|
|
||||||
|
|
||||||
# rubocop:disable Style/ConditionalAssignment
|
|
||||||
if ENV.key?('PUPPET_VERSION')
|
|
||||||
puppetversion = ENV['PUPPET_VERSION'].to_s
|
|
||||||
else
|
|
||||||
puppetversion = ['>= 7', '< 8']
|
|
||||||
end
|
|
||||||
# rubocop:enable Style/ConditionalAssignment
|
|
||||||
|
|
||||||
group :production do
|
|
||||||
gem 'os', '~> 1.1'
|
|
||||||
gem 'puppet', puppetversion
|
|
||||||
gem 'r10k', '~> 3.15'
|
|
||||||
gem 'rugged', '~> 1.5'
|
|
||||||
gem 'xmlrpc', '~> 0.3.0' if RUBY_VERSION >= '2.3'
|
|
||||||
end
|
|
||||||
|
|
||||||
group :development, :unit_tests do
|
|
||||||
gem 'json', '>= 2.0.2'
|
|
||||||
gem 'metadata-json-lint', '~> 3.0'
|
|
||||||
gem 'puppetlabs_spec_helper', '~> 5.0'
|
|
||||||
gem 'rspec-puppet', '~> 2.12'
|
|
||||||
gem 'rubocop', '~> 1.44'
|
|
||||||
gem 'tty-command', '~> 0.6'
|
|
||||||
gem 'tty-file', '~> 0.9'
|
|
||||||
gem 'tty-prompt', '~> 0.21'
|
|
||||||
gem 'yamllint', '~> 0.0.9'
|
|
||||||
|
|
||||||
# puppet-lint and plugins
|
|
||||||
gem 'puppet-lint', '~> 2.5'
|
|
||||||
gem 'puppet-lint-absolute_classname-check', '~> 3.1'
|
|
||||||
gem 'puppet-lint-absolute_template_path', '~> 1.0'
|
|
||||||
gem 'puppet-lint-empty_string-check', '~> 1.0'
|
|
||||||
gem 'puppet-lint-leading_zero-check', '~> 1.0'
|
|
||||||
gem 'puppet-lint-resource_reference_syntax', '~> 1.2'
|
|
||||||
gem 'puppet-lint-spaceship_operator_without_tag-check', '~> 0.1'
|
|
||||||
gem 'puppet-lint-trailing_newline-check', '~> 1.1'
|
|
||||||
gem 'puppet-lint-undef_in_function-check', '~> 0.2'
|
|
||||||
gem 'puppet-lint-unquoted_string-check', '~> 2.2'
|
|
||||||
gem 'puppet-lint-variable_contains_upcase', '~> 1.3'
|
|
||||||
end
|
|
||||||
|
|
@ -1,252 +0,0 @@
|
||||||
GEM
|
|
||||||
remote: https://rubygems.org/
|
|
||||||
specs:
|
|
||||||
CFPropertyList (2.3.6)
|
|
||||||
addressable (2.8.0)
|
|
||||||
public_suffix (>= 2.0.2, < 5.0)
|
|
||||||
ast (2.4.2)
|
|
||||||
colored2 (3.1.2)
|
|
||||||
concurrent-ruby (1.1.10)
|
|
||||||
cri (2.15.11)
|
|
||||||
deep_merge (1.2.2)
|
|
||||||
diff-lcs (1.5.0)
|
|
||||||
erubi (1.12.0)
|
|
||||||
facter (4.2.14)
|
|
||||||
hocon (~> 1.3)
|
|
||||||
thor (>= 1.0.1, < 2.0)
|
|
||||||
faraday (1.10.3)
|
|
||||||
faraday-em_http (~> 1.0)
|
|
||||||
faraday-em_synchrony (~> 1.0)
|
|
||||||
faraday-excon (~> 1.1)
|
|
||||||
faraday-httpclient (~> 1.0)
|
|
||||||
faraday-multipart (~> 1.0)
|
|
||||||
faraday-net_http (~> 1.0)
|
|
||||||
faraday-net_http_persistent (~> 1.0)
|
|
||||||
faraday-patron (~> 1.0)
|
|
||||||
faraday-rack (~> 1.0)
|
|
||||||
faraday-retry (~> 1.0)
|
|
||||||
ruby2_keywords (>= 0.0.4)
|
|
||||||
faraday-em_http (1.0.0)
|
|
||||||
faraday-em_synchrony (1.0.0)
|
|
||||||
faraday-excon (1.1.0)
|
|
||||||
faraday-httpclient (1.0.1)
|
|
||||||
faraday-multipart (1.0.4)
|
|
||||||
multipart-post (~> 2)
|
|
||||||
faraday-net_http (1.0.1)
|
|
||||||
faraday-net_http_persistent (1.2.0)
|
|
||||||
faraday-patron (1.0.0)
|
|
||||||
faraday-rack (1.0.0)
|
|
||||||
faraday-retry (1.0.3)
|
|
||||||
faraday_middleware (1.2.0)
|
|
||||||
faraday (~> 1.0)
|
|
||||||
fast_gettext (2.2.0)
|
|
||||||
forwardable (1.3.3)
|
|
||||||
gettext (3.4.3)
|
|
||||||
erubi
|
|
||||||
locale (>= 2.0.5)
|
|
||||||
prime
|
|
||||||
text (>= 1.3.0)
|
|
||||||
gettext-setup (1.1.0)
|
|
||||||
fast_gettext (~> 2.1)
|
|
||||||
gettext (~> 3.4)
|
|
||||||
locale
|
|
||||||
hiera (3.11.0)
|
|
||||||
hocon (1.3.1)
|
|
||||||
json (2.6.3)
|
|
||||||
json-schema (3.0.0)
|
|
||||||
addressable (>= 2.8)
|
|
||||||
jwt (2.2.3)
|
|
||||||
locale (2.1.3)
|
|
||||||
log4r (1.1.10)
|
|
||||||
metadata-json-lint (3.0.2)
|
|
||||||
json-schema (>= 2.8, < 4.0)
|
|
||||||
spdx-licenses (~> 1.0)
|
|
||||||
minitar (0.9)
|
|
||||||
mocha (1.16.1)
|
|
||||||
multi_json (1.15.0)
|
|
||||||
multipart-post (2.2.3)
|
|
||||||
os (1.1.4)
|
|
||||||
parallel (1.22.1)
|
|
||||||
parser (3.2.0.0)
|
|
||||||
ast (~> 2.4.1)
|
|
||||||
pastel (0.8.0)
|
|
||||||
tty-color (~> 0.5)
|
|
||||||
pathspec (1.1.3)
|
|
||||||
prime (0.1.2)
|
|
||||||
forwardable
|
|
||||||
singleton
|
|
||||||
public_suffix (4.0.7)
|
|
||||||
puppet (7.22.0)
|
|
||||||
concurrent-ruby (~> 1.0, < 1.2.0)
|
|
||||||
deep_merge (~> 1.0)
|
|
||||||
facter (> 2.0.1, < 5)
|
|
||||||
fast_gettext (>= 1.1, < 3)
|
|
||||||
hiera (>= 3.2.1, < 4)
|
|
||||||
locale (~> 2.1)
|
|
||||||
multi_json (~> 1.10)
|
|
||||||
puppet-resource_api (~> 1.5)
|
|
||||||
scanf (~> 1.0)
|
|
||||||
semantic_puppet (~> 1.0)
|
|
||||||
puppet (7.22.0-universal-darwin)
|
|
||||||
CFPropertyList (~> 2.2)
|
|
||||||
concurrent-ruby (~> 1.0, < 1.2.0)
|
|
||||||
deep_merge (~> 1.0)
|
|
||||||
facter (> 2.0.1, < 5)
|
|
||||||
fast_gettext (>= 1.1, < 3)
|
|
||||||
hiera (>= 3.2.1, < 4)
|
|
||||||
locale (~> 2.1)
|
|
||||||
multi_json (~> 1.10)
|
|
||||||
puppet-resource_api (~> 1.5)
|
|
||||||
scanf (~> 1.0)
|
|
||||||
semantic_puppet (~> 1.0)
|
|
||||||
puppet-lint (2.5.2)
|
|
||||||
puppet-lint-absolute_classname-check (3.1.0)
|
|
||||||
puppet-lint (>= 1.0, < 4)
|
|
||||||
puppet-lint-absolute_template_path (1.0.1)
|
|
||||||
puppet-lint (>= 1.1, < 3.0)
|
|
||||||
puppet-lint-empty_string-check (1.0.0)
|
|
||||||
puppet-lint (>= 1.0, < 3.0)
|
|
||||||
puppet-lint-leading_zero-check (1.0.0)
|
|
||||||
puppet-lint (>= 1.0, < 3.0)
|
|
||||||
puppet-lint-resource_reference_syntax (1.2.0)
|
|
||||||
puppet-lint (>= 1.0, < 4)
|
|
||||||
puppet-lint-spaceship_operator_without_tag-check (0.1.1)
|
|
||||||
puppet-lint (>= 1.0, < 3.0)
|
|
||||||
puppet-lint-trailing_newline-check (1.1.0)
|
|
||||||
puppet-lint (>= 1.0, < 3.0)
|
|
||||||
puppet-lint-undef_in_function-check (0.2.1)
|
|
||||||
puppet-lint (>= 1.0, < 3.0)
|
|
||||||
puppet-lint-unquoted_string-check (2.2.0)
|
|
||||||
puppet-lint (>= 2.1, < 4)
|
|
||||||
puppet-lint-variable_contains_upcase (1.3.0)
|
|
||||||
puppet-lint (>= 1.0, < 4)
|
|
||||||
puppet-resource_api (1.8.14)
|
|
||||||
hocon (>= 1.0)
|
|
||||||
puppet-syntax (3.2.1)
|
|
||||||
puppet (>= 5)
|
|
||||||
rake
|
|
||||||
puppet_forge (3.2.0)
|
|
||||||
faraday (~> 1.3)
|
|
||||||
faraday_middleware (~> 1.0)
|
|
||||||
minitar
|
|
||||||
semantic_puppet (~> 1.0)
|
|
||||||
puppetlabs_spec_helper (5.0.3)
|
|
||||||
mocha (~> 1.0)
|
|
||||||
pathspec (>= 0.2, < 2.0.0)
|
|
||||||
puppet-lint (>= 2.5.2, < 4.0.0)
|
|
||||||
puppet-syntax (~> 3.0)
|
|
||||||
rspec-github (~> 2.0)
|
|
||||||
rspec-puppet (~> 2.0)
|
|
||||||
r10k (3.15.4)
|
|
||||||
colored2 (= 3.1.2)
|
|
||||||
cri (>= 2.15.10)
|
|
||||||
fast_gettext (>= 1.1.0, < 3.0.0)
|
|
||||||
gettext (>= 3.0.2, < 4.0.0)
|
|
||||||
gettext-setup (>= 0.24, < 2.0.0)
|
|
||||||
jwt (~> 2.2.3)
|
|
||||||
log4r (= 1.1.10)
|
|
||||||
minitar (~> 0.9)
|
|
||||||
multi_json (~> 1.10)
|
|
||||||
puppet_forge (>= 2.3.0, < 4.0.0)
|
|
||||||
rainbow (3.1.1)
|
|
||||||
rake (13.0.6)
|
|
||||||
regexp_parser (2.6.2)
|
|
||||||
rexml (3.2.8)
|
|
||||||
strscan (>= 3.0.9)
|
|
||||||
rspec (3.12.0)
|
|
||||||
rspec-core (~> 3.12.0)
|
|
||||||
rspec-expectations (~> 3.12.0)
|
|
||||||
rspec-mocks (~> 3.12.0)
|
|
||||||
rspec-core (3.12.0)
|
|
||||||
rspec-support (~> 3.12.0)
|
|
||||||
rspec-expectations (3.12.2)
|
|
||||||
diff-lcs (>= 1.2.0, < 2.0)
|
|
||||||
rspec-support (~> 3.12.0)
|
|
||||||
rspec-github (2.4.0)
|
|
||||||
rspec-core (~> 3.0)
|
|
||||||
rspec-mocks (3.12.3)
|
|
||||||
diff-lcs (>= 1.2.0, < 2.0)
|
|
||||||
rspec-support (~> 3.12.0)
|
|
||||||
rspec-puppet (2.12.0)
|
|
||||||
rspec
|
|
||||||
rspec-support (3.12.0)
|
|
||||||
rubocop (1.44.1)
|
|
||||||
json (~> 2.3)
|
|
||||||
parallel (~> 1.10)
|
|
||||||
parser (>= 3.2.0.0)
|
|
||||||
rainbow (>= 2.2.2, < 4.0)
|
|
||||||
regexp_parser (>= 1.8, < 3.0)
|
|
||||||
rexml (>= 3.2.5, < 4.0)
|
|
||||||
rubocop-ast (>= 1.24.1, < 2.0)
|
|
||||||
ruby-progressbar (~> 1.7)
|
|
||||||
unicode-display_width (>= 2.4.0, < 3.0)
|
|
||||||
rubocop-ast (1.24.1)
|
|
||||||
parser (>= 3.1.1.0)
|
|
||||||
ruby-progressbar (1.11.0)
|
|
||||||
ruby2_keywords (0.0.5)
|
|
||||||
rugged (1.5.1)
|
|
||||||
scanf (1.0.0)
|
|
||||||
semantic_puppet (1.0.4)
|
|
||||||
singleton (0.1.1)
|
|
||||||
spdx-licenses (1.3.0)
|
|
||||||
strscan (3.1.0)
|
|
||||||
text (1.3.1)
|
|
||||||
thor (1.2.1)
|
|
||||||
trollop (2.9.10)
|
|
||||||
tty-color (0.6.0)
|
|
||||||
tty-command (0.10.1)
|
|
||||||
pastel (~> 0.8)
|
|
||||||
tty-cursor (0.7.1)
|
|
||||||
tty-file (0.10.0)
|
|
||||||
diff-lcs (~> 1.3)
|
|
||||||
pastel (~> 0.8)
|
|
||||||
tty-prompt (~> 0.22)
|
|
||||||
tty-prompt (0.23.1)
|
|
||||||
pastel (~> 0.8)
|
|
||||||
tty-reader (~> 0.8)
|
|
||||||
tty-reader (0.9.0)
|
|
||||||
tty-cursor (~> 0.7)
|
|
||||||
tty-screen (~> 0.8)
|
|
||||||
wisper (~> 2.0)
|
|
||||||
tty-screen (0.8.1)
|
|
||||||
unicode-display_width (2.4.2)
|
|
||||||
webrick (1.7.0)
|
|
||||||
wisper (2.0.1)
|
|
||||||
xmlrpc (0.3.2)
|
|
||||||
webrick
|
|
||||||
yamllint (0.0.9)
|
|
||||||
trollop (~> 2)
|
|
||||||
|
|
||||||
PLATFORMS
|
|
||||||
x86_64-darwin-19
|
|
||||||
x86_64-linux
|
|
||||||
|
|
||||||
DEPENDENCIES
|
|
||||||
json (>= 2.0.2)
|
|
||||||
metadata-json-lint (~> 3.0)
|
|
||||||
os (~> 1.1)
|
|
||||||
puppet (>= 7, < 8)
|
|
||||||
puppet-lint (~> 2.5)
|
|
||||||
puppet-lint-absolute_classname-check (~> 3.1)
|
|
||||||
puppet-lint-absolute_template_path (~> 1.0)
|
|
||||||
puppet-lint-empty_string-check (~> 1.0)
|
|
||||||
puppet-lint-leading_zero-check (~> 1.0)
|
|
||||||
puppet-lint-resource_reference_syntax (~> 1.2)
|
|
||||||
puppet-lint-spaceship_operator_without_tag-check (~> 0.1)
|
|
||||||
puppet-lint-trailing_newline-check (~> 1.1)
|
|
||||||
puppet-lint-undef_in_function-check (~> 0.2)
|
|
||||||
puppet-lint-unquoted_string-check (~> 2.2)
|
|
||||||
puppet-lint-variable_contains_upcase (~> 1.3)
|
|
||||||
puppetlabs_spec_helper (~> 5.0)
|
|
||||||
r10k (~> 3.15)
|
|
||||||
rspec-puppet (~> 2.12)
|
|
||||||
rubocop (~> 1.44)
|
|
||||||
rugged (~> 1.5)
|
|
||||||
tty-command (~> 0.6)
|
|
||||||
tty-file (~> 0.9)
|
|
||||||
tty-prompt (~> 0.21)
|
|
||||||
xmlrpc (~> 0.3.0)
|
|
||||||
yamllint (~> 0.0.9)
|
|
||||||
|
|
||||||
BUNDLED WITH
|
|
||||||
2.3.5
|
|
||||||
159
legacy/README.md
159
legacy/README.md
|
|
@ -1,159 +0,0 @@
|
||||||
# dots
|
|
||||||
|
|
||||||
[](https://github.com/genebean/dots/actions/workflows/ansible-lint.yml)
|
|
||||||
[](https://github.com/genebean/dots/actions/workflows/ruby.yml)
|
|
||||||
|
|
||||||
> **NOTICE:** this repo is undergoing a transformation. Historically it has been centered around using Puppet and r10k as ruby gems. I love Puppet for managing servers, but running it unprivledged as a gem has proven more than a little challenging in this specific use case. As a result, I am transitioning to using Ansible for the adhoc work that is needed here. Also, the `dots` tool and associated rake tasks will almost certainly be moved to Python 3 as it is universally available without some of the hastles of a bundler based setup.
|
|
||||||
|
|
||||||
This repo contains my dot files and a tool to deploy them, and the programs that use them, to various OS's. Some additional tools that I consider part of my baseline setup are also installed and, if possible, configured by dots.
|
|
||||||
|
|
||||||
Dots is written in ruby and utilizes bundler to keep all its dependancies
|
|
||||||
as self-contained as possible. Installation of programs and management of git
|
|
||||||
repositories is handled by way of the
|
|
||||||
[Puppet gem](https://rubygems.org/gems/puppet).
|
|
||||||
|
|
||||||
Everything about dots macOS assumes you are running it as a normal user,
|
|
||||||
not as root. Strange and unexpected things could well happen if you run any part
|
|
||||||
of it as root or via sudo while on macOS. That said, sudo is required on Debian
|
|
||||||
due to there not being an equivalent to homebrew as you need sudo to use apt.
|
|
||||||
|
|
||||||
|
|
||||||
## Currently Supported OS's
|
|
||||||
|
|
||||||
* macOS
|
|
||||||
* Linux Mint 18.2
|
|
||||||
|
|
||||||
|
|
||||||
## Initial Setup
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone git@github.com:genebean/dots.git ~/.dotfiles
|
|
||||||
cd ~/.dotfiles
|
|
||||||
bin/bootstrap.sh
|
|
||||||
This script takes care of getting dots ready to use
|
|
||||||
Enter the number of the task you want to perform:
|
|
||||||
1) Mac setup
|
|
||||||
2) EL setup
|
|
||||||
3) Mint setup
|
|
||||||
4) Quit
|
|
||||||
Task:
|
|
||||||
```
|
|
||||||
|
|
||||||
After you run the setup for your OS you will want to make sure that
|
|
||||||
[puppet/production/hieradata/nodes/](puppet/production/hieradata/nodes/)
|
|
||||||
contains a file matching the hostname of your machine. That file needs to
|
|
||||||
contain at least the following:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
---
|
|
||||||
homedir: '/Users/johndoe'
|
|
||||||
```
|
|
||||||
|
|
||||||
Naturally, you will want to adjust the entry to match the real path to your
|
|
||||||
home directory. On a Mac this is generally in `/Users/` or `/home/` on Linux.
|
|
||||||
|
|
||||||
|
|
||||||
## Running dots
|
|
||||||
|
|
||||||
The primary way to interact with dots is via `bundle exec rake dots`.
|
|
||||||
This will run an interactive cli program like so:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ bundle exec rake dots
|
|
||||||
/usr/local/Cellar/ruby/2.4.1_1/bin/ruby bin/dots.rb
|
|
||||||
It seems you are on macOS 10.12.5
|
|
||||||
What would you like to do? (Use arrow keys, press Enter to select)
|
|
||||||
‣ copy
|
|
||||||
link
|
|
||||||
install
|
|
||||||
```
|
|
||||||
|
|
||||||
If not on macOS then you will need to use sudo for the install step:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ sudo bundle exec rake dots
|
|
||||||
```
|
|
||||||
|
|
||||||
Additional tasks are available in the
|
|
||||||
dots namespace. You can see all the available tasks via
|
|
||||||
`bundle exec rake -T`.
|
|
||||||
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
#### Running Puppet
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Any of these will work:
|
|
||||||
bundle exec rake dots:run_puppet
|
|
||||||
bundle exec rake dots:run_puppet_noop
|
|
||||||
bundle exec puppet apply --environmentpath ~/.dotfiles/puppet ~/.dotfiles/puppet/production/manifests/site.pp
|
|
||||||
```
|
|
||||||
|
|
||||||
As mentioned above, when not on macOS you will need to prefix bundle with sudo.
|
|
||||||
|
|
||||||
|
|
||||||
#### Installed Homebrew packages
|
|
||||||
|
|
||||||
To see what has been installed (not the deps) run `brew leaves`
|
|
||||||
|
|
||||||
|
|
||||||
## Project structure
|
|
||||||
|
|
||||||
* `bin/`: this is where the "application" bits live
|
|
||||||
* `bin/bootstrap`: platform specific helpers called by `bin/bootstrap.sh`
|
|
||||||
* `copy/`: files directly in this directory are copied to all hosts
|
|
||||||
* `copy/mac/`: files in here get copied to Macs
|
|
||||||
* `copy/nix/`: files in here get copied to all Posix systems
|
|
||||||
* `link/`: files directly in this directory are symlinked on all hosts.
|
|
||||||
* all symlinks are prefixed with a dot. Ex: `link/gemrc` becomes `~/.gemrc`
|
|
||||||
* `link/linux/`: files in here get symlinked on all Linux distros
|
|
||||||
* `link/mac/`: files in here get symlinked on all Macs
|
|
||||||
* `link/nix/`: files in here get symlinked on all Posix systems
|
|
||||||
* `link/ssh/`: these files get symlinked under `~/.ssh/` on all Posix systems
|
|
||||||
* `puppet/`: this is basically a control repo modified to suit this setup
|
|
||||||
* `puppet/production/`: items from an environment's branch in a control repo
|
|
||||||
* this setup assumes Puppet 4 and Hiera 5. Hiera's config is parsed as part of
|
|
||||||
the environment rather than from a global config file.
|
|
||||||
* `spec/`: unit tests go here
|
|
||||||
|
|
||||||
|
|
||||||
## Adding Packages
|
|
||||||
|
|
||||||
To add additional pacakages to be installed and managed by dots you will need to
|
|
||||||
edit the associated Puppet manifest. Currently, this consists of the following:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
puppet/production/site/profile/manifests/
|
|
||||||
├── base.pp
|
|
||||||
├── linux
|
|
||||||
│ └── debian.pp
|
|
||||||
├── linux.pp
|
|
||||||
└── mac.pp
|
|
||||||
```
|
|
||||||
|
|
||||||
On macOS you can easily install packages and casks from homebrew or Python
|
|
||||||
modules from pip. On Linux Mint you can easily use any package provider
|
|
||||||
that supports Debian or Ubuntu since all installs are done via sudo. On both
|
|
||||||
platforms you can also use custom exec's to to work around limitations. For
|
|
||||||
example, an exec is used on Mint to set the shell to zsh and on both platforms
|
|
||||||
to install or update the powerline fonts.
|
|
||||||
|
|
||||||
|
|
||||||
## Puppet Customizations
|
|
||||||
|
|
||||||
This repo also contains some custom facts and functions under
|
|
||||||
`puppet/production/site/custom_libs`:
|
|
||||||
|
|
||||||
### Facts
|
|
||||||
|
|
||||||
* `os_release`: this creates a structured fact out of the contents of
|
|
||||||
/etc/os-release on Linux systems. This info is needed on Mint to determine
|
|
||||||
what version of Ubuntu it is based on.
|
|
||||||
|
|
||||||
### Functions
|
|
||||||
|
|
||||||
* `find_group`: returns the owning group's GID as a string for the file or
|
|
||||||
folder at a given path
|
|
||||||
* `find_owner`: returns the owning user's UID as a string for the file or
|
|
||||||
folder at a given path
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
require 'rubocop/rake_task'
|
|
||||||
require 'rubygems'
|
|
||||||
require 'puppetlabs_spec_helper/rake_tasks'
|
|
||||||
require 'puppet-lint/tasks/puppet-lint'
|
|
||||||
require 'tty-command'
|
|
||||||
require 'yamllint/rake_task'
|
|
||||||
require_relative 'bin/rake_tasks'
|
|
||||||
|
|
||||||
exclude_paths = [
|
|
||||||
'pkg/**/*',
|
|
||||||
'vendor/**/*',
|
|
||||||
'spec/**/*'
|
|
||||||
]
|
|
||||||
|
|
||||||
# https://docs.rubocop.org/rubocop/0.86/integration_with_other_tools.html#rake-integration
|
|
||||||
RuboCop::RakeTask.new
|
|
||||||
|
|
||||||
PuppetLint::RakeTask.new :lint do |config|
|
|
||||||
config.fail_on_warnings = true
|
|
||||||
config.ignore_paths = exclude_paths
|
|
||||||
end
|
|
||||||
|
|
||||||
PuppetSyntax.exclude_paths = exclude_paths
|
|
||||||
|
|
||||||
desc 'Validate manifests, templates, and ruby files'
|
|
||||||
task :validate do
|
|
||||||
Dir['puppet/manifests/**/*.pp',
|
|
||||||
'puppet/site/*/manifests/**/*.pp'].each do |manifest|
|
|
||||||
sh "puppet parser validate --noop #{manifest}"
|
|
||||||
end
|
|
||||||
Dir['bin/**/*.rb',
|
|
||||||
'spec/**/*.rb'].each do |ruby_file|
|
|
||||||
# rubocop:disable Style/RegexpLiteral
|
|
||||||
sh "ruby -c #{ruby_file}" unless ruby_file =~ /spec\/fixtures/
|
|
||||||
# rubocop:enable Style/RegexpLiteral
|
|
||||||
end
|
|
||||||
Dir['puppet/site/*/templates/**/*.erb'].each do |template|
|
|
||||||
sh "erb -P -x -T '-' #{template} | ruby -c"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
YamlLint::RakeTask.new do |yamllint|
|
|
||||||
yamllint.paths = %w[
|
|
||||||
.*.yaml
|
|
||||||
.*.yml
|
|
||||||
*.yaml
|
|
||||||
*.yml
|
|
||||||
copy/**/*.yml
|
|
||||||
link/**/*.yml
|
|
||||||
puppet/hieradata/**/*.yml
|
|
||||||
puppet/hieradata/**/*.yaml
|
|
||||||
]
|
|
||||||
end
|
|
||||||
|
|
||||||
task :tests do
|
|
||||||
Rake::Task[:lint].invoke
|
|
||||||
Rake::Task[:yamllint].invoke
|
|
||||||
Rake::Task[:validate].invoke
|
|
||||||
Rake::Task[:rubocop].invoke
|
|
||||||
Rake::Task[:spec].invoke
|
|
||||||
end
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
echo 'This script takes care of getting dots ready to use'
|
|
||||||
echo 'Enter the number of the task you want to perform:'
|
|
||||||
|
|
||||||
PS3='Task: '
|
|
||||||
select TASK in 'Mac setup' 'EL setup' 'Mint setup' 'Quit';
|
|
||||||
do
|
|
||||||
case $TASK in
|
|
||||||
'Mac setup' )
|
|
||||||
~/.dotfiles/bin/bootstrap/bootstrap_mac.sh now
|
|
||||||
;;
|
|
||||||
'EL setup' )
|
|
||||||
~/.dotfiles/bin/bootstrap/bootstrap_el.sh now
|
|
||||||
;;
|
|
||||||
'Mint setup' )
|
|
||||||
~/.dotfiles/bin/bootstrap/bootstrap_mint.sh now
|
|
||||||
;;
|
|
||||||
'Quit' )
|
|
||||||
echo 'Exiting'
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
* )
|
|
||||||
echo 'Invalid selection, quitting.'
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [[ $1 == 'now' ]]; then
|
|
||||||
# Install dot's dependencies
|
|
||||||
sudo yum install -y centos-release-scl-rh.noarch
|
|
||||||
sudo yum install rh-ruby26 rh-ruby26-ruby-devel rh-ruby26-rubygem-bundler rh-ruby26-rubygem-rake cmake gcc
|
|
||||||
|
|
||||||
# Make dot usable
|
|
||||||
cd ~/.dotfiles
|
|
||||||
cat bin/sclbundle|sudo tee /usr/local/bin/dotbundle > /dev/null
|
|
||||||
sudo chmod a+x /usr/local/bin/dotbundle
|
|
||||||
cat bin/sclruby|sudo tee /usr/local/bin/dotruby > /dev/null
|
|
||||||
sudo chmod a+x /usr/local/bin/dotruby
|
|
||||||
/usr/local/bin/dotbundle install
|
|
||||||
|
|
||||||
# Install Puppet modules
|
|
||||||
/usr/local/bin/dotbundle exec rake dots:run_r10k
|
|
||||||
|
|
||||||
# Display tasks that can be run
|
|
||||||
echo 'These are the task that can now be executed:'
|
|
||||||
/usr/local/bin/dotbundle exec rake -T |grep --color=never 'rake dots'
|
|
||||||
fi
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [[ $1 == 'now' ]]; then
|
|
||||||
# Install Homebrew
|
|
||||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
|
||||||
|
|
||||||
# Install dot's dependencies
|
|
||||||
/usr/local/bin/brew install ruby@2.7 cmake pkg-config
|
|
||||||
/usr/local/bin/gem install --no-ri --no-rdoc bundler
|
|
||||||
|
|
||||||
# Make dot usable
|
|
||||||
cd ~/.dotfiles
|
|
||||||
/usr/local/bin/bundle install
|
|
||||||
|
|
||||||
# Install Puppet modules
|
|
||||||
/usr/local/bin/bundle exec rake dots:run_r10k
|
|
||||||
|
|
||||||
# Display tasks that can be run
|
|
||||||
echo 'These are the task that can now be executed:'
|
|
||||||
/usr/local/bin/bundle exec rake -T |grep --color=never 'rake dots'
|
|
||||||
fi
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [[ $1 == 'now' ]]; then
|
|
||||||
# Install dot's dependencies
|
|
||||||
sudo apt-add-repository ppa:brightbox/ruby-ng
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install ruby2.4 ruby2.4-dev ruby-switch cmake build-essential
|
|
||||||
sudo ruby-switch --set ruby2.4
|
|
||||||
sudo gem install --no-ri --no-rdoc bundler
|
|
||||||
|
|
||||||
# Make dot usable
|
|
||||||
cd ~/.dotfiles
|
|
||||||
bundle install
|
|
||||||
|
|
||||||
# Install Puppet modules
|
|
||||||
bundle exec rake dots:run_r10k
|
|
||||||
|
|
||||||
# Display tasks that can be run
|
|
||||||
echo 'These are the task that can now be executed:'
|
|
||||||
bundle exec rake -T |grep --color=never 'rake dots'
|
|
||||||
fi
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
brew install --cask adobe-acrobat-reader boinc virtualbox virtualbox-extension-pack vagrant
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
require 'open3'
|
|
||||||
require 'os'
|
|
||||||
require 'tty-command'
|
|
||||||
require 'tty-file'
|
|
||||||
require 'tty-prompt'
|
|
||||||
require_relative 'dotutils'
|
|
||||||
|
|
||||||
cmd = TTY::Command.new
|
|
||||||
@prompt = TTY::Prompt.new(help_color: :magenta)
|
|
||||||
|
|
||||||
@home = File.expand_path('~')
|
|
||||||
@dotroot = File.dirname(File.dirname(File.expand_path($PROGRAM_NAME)))
|
|
||||||
@excludes = %w[linux mac nix ssh]
|
|
||||||
@files_copy = Dir.glob("#{@dotroot}/copy/*")
|
|
||||||
@files_link = Dir.glob("#{@dotroot}/link/*")
|
|
||||||
@ssh_link = Dir.glob("#{@dotroot}/link/ssh/*")
|
|
||||||
|
|
||||||
if OS.posix?
|
|
||||||
@files_copy.concat Dir.glob("#{@dotroot}/copy/nix/*")
|
|
||||||
@files_link.concat Dir.glob("#{@dotroot}/link/nix/*")
|
|
||||||
end
|
|
||||||
|
|
||||||
if OS.windows?
|
|
||||||
puts 'It seems you are on Windows'
|
|
||||||
|
|
||||||
elsif OS.mac?
|
|
||||||
mac_vers
|
|
||||||
|
|
||||||
@files_copy.concat Dir.glob("#{@dotroot}/copy/mac/*")
|
|
||||||
@files_link.concat Dir.glob("#{@dotroot}/link/mac/*")
|
|
||||||
|
|
||||||
elsif OS.linux?
|
|
||||||
@files_link.concat Dir.glob("#{@dotroot}/link/linux/*")
|
|
||||||
|
|
||||||
else
|
|
||||||
abort("I'm not sure what to do with this OS...") unless OS.posix?
|
|
||||||
end
|
|
||||||
|
|
||||||
task = @prompt.select('What would you like to do?', %w[copy link install exit])
|
|
||||||
case task
|
|
||||||
when 'copy'
|
|
||||||
if @prompt.yes?('Are you sure you want to copy these files?')
|
|
||||||
@files_copy.each do |file|
|
|
||||||
unless @excludes.include?(File.basename(file))
|
|
||||||
puts "Copying #{file} to #{@home}/.#{File.basename(file)}"
|
|
||||||
copy_file(file, "#{@home}/.#{File.basename(file)}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
puts 'not copying'
|
|
||||||
end
|
|
||||||
|
|
||||||
when 'link'
|
|
||||||
if @prompt.yes?('Are you sure you want to link your dot files?')
|
|
||||||
@files_link.each do |file|
|
|
||||||
unless @excludes.include?(File.basename(file))
|
|
||||||
# puts "Linking #{@home}/.#{File.basename(file)} to #{file}"
|
|
||||||
link_file(file, "#{@home}/.#{File.basename(file)}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# rubocop:disable Style/NumericLiteralPrefix
|
|
||||||
Dir.mkdir("#{@home}/.ssh", 0700) unless File.directory?("#{@home}/.ssh")
|
|
||||||
# rubocop:enable Style/NumericLiteralPrefix
|
|
||||||
@ssh_link.each do |file|
|
|
||||||
link_file(file, "#{@home}/.ssh/#{File.basename(file)}")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
puts 'not linking'
|
|
||||||
end
|
|
||||||
|
|
||||||
when 'install'
|
|
||||||
if @prompt.yes?('Are you sure you want to install your base packages?')
|
|
||||||
cmd.run('bundle exec rake dots:run_puppet')
|
|
||||||
cmd.run('bundle exec rake dots:vim_plugins')
|
|
||||||
end
|
|
||||||
|
|
||||||
when 'exit'
|
|
||||||
exit
|
|
||||||
end # end of the case statement
|
|
||||||
|
|
@ -1,76 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
def existing_symlink(source, destination)
|
|
||||||
return if File.readlink(destination).eql?(source)
|
|
||||||
|
|
||||||
# rubocop:disable Layout/LineLength
|
|
||||||
if @prompt.yes?("#{destination} currently points to #{File.readlink(destination)}, do you want point it at #{source}?")
|
|
||||||
File.unlink(destination)
|
|
||||||
puts "Linking #{destination} to #{source}"
|
|
||||||
File.symlink(source, destination)
|
|
||||||
puts 'link replaced'
|
|
||||||
else
|
|
||||||
puts "#{destination} is unchanged"
|
|
||||||
end
|
|
||||||
# rubocop:enable Layout/LineLength
|
|
||||||
end
|
|
||||||
|
|
||||||
# rubocop:disable Metrics/MethodLength
|
|
||||||
def rename_file(source, destination, action)
|
|
||||||
puts "#{destination} exists, renaming to #{destination}.predots"
|
|
||||||
File.rename(destination, "#{destination}.predots")
|
|
||||||
case action
|
|
||||||
when 'link'
|
|
||||||
puts "Linking #{destination} to #{source}"
|
|
||||||
File.symlink(source, destination)
|
|
||||||
when 'copy'
|
|
||||||
puts "Copying #{destination} to #{source}"
|
|
||||||
FileUtils.cp_r(source, destination)
|
|
||||||
else
|
|
||||||
raise ArgumentError, "'#{action}' is not a valid action", backtrace
|
|
||||||
end
|
|
||||||
end
|
|
||||||
# rubocop:enable Metrics/MethodLength
|
|
||||||
|
|
||||||
def copy_file(source, destination)
|
|
||||||
if File.exist?(destination)
|
|
||||||
if @prompt.yes?("#{destination} exists, do you want to replace it?")
|
|
||||||
rename_file(source, destination, 'copy')
|
|
||||||
else
|
|
||||||
puts "#{destination} is unchanged"
|
|
||||||
end
|
|
||||||
else
|
|
||||||
FileUtils.cp_r(source, destination)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def link_file(source, destination)
|
|
||||||
if File.exist?(destination) && File.symlink?(destination)
|
|
||||||
existing_symlink(source, destination)
|
|
||||||
elsif File.exist?(destination)
|
|
||||||
# this catches anything that is not a symlink
|
|
||||||
rename_file(source, destination, 'link')
|
|
||||||
else
|
|
||||||
puts "Linking #{destination} to #{source}"
|
|
||||||
File.symlink(source, destination)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
|
||||||
def mac_vers
|
|
||||||
stdout, _stderr, _status = Open3.capture3('sw_vers -productVersion')
|
|
||||||
if Integer(stdout.strip.split('.')[0]) == 10
|
|
||||||
if Integer(stdout.strip.split('.')[1]) >= 12
|
|
||||||
puts "It seems you are on macOS #{stdout.strip}"
|
|
||||||
else
|
|
||||||
puts "It seems you are on OX X #{stdout.strip}"
|
|
||||||
end
|
|
||||||
|
|
||||||
elsif Integer(stdout.strip.split('.')[0]) < 10
|
|
||||||
puts "Wow... you're sure running an old os (#{stdout.strip} to be exact)"
|
|
||||||
else
|
|
||||||
abort("It seems you are on a Mac but I don't know what to do on \
|
|
||||||
v#{stdout.strip}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
desc 'Run dots'
|
|
||||||
task :dots do
|
|
||||||
ruby 'bin/dots.rb'
|
|
||||||
end
|
|
||||||
|
|
||||||
# rubocop:disable Metrics/BlockLength
|
|
||||||
namespace 'dots' do
|
|
||||||
cmd = TTY::Command.new
|
|
||||||
|
|
||||||
desc 'Run r10k'
|
|
||||||
task :run_r10k do
|
|
||||||
command = 'bundle exec r10k puppetfile install \
|
|
||||||
--puppetfile ~/.dotfiles/puppet/production/Puppetfile -v'
|
|
||||||
cmd.run(command)
|
|
||||||
end
|
|
||||||
|
|
||||||
desc 'Run Puppet'
|
|
||||||
task :run_puppet do
|
|
||||||
command = 'bundle exec puppet apply \
|
|
||||||
--environmentpath ~/.dotfiles/puppet \
|
|
||||||
~/.dotfiles/puppet/production/manifests/site.pp'
|
|
||||||
cmd.run(command)
|
|
||||||
end
|
|
||||||
|
|
||||||
desc 'Run Puppet (noop)'
|
|
||||||
task :run_puppet_noop do
|
|
||||||
command = 'bundle exec puppet apply \
|
|
||||||
--environmentpath ~/.dotfiles/puppet \
|
|
||||||
~/.dotfiles/puppet/production/manifests/site.pp --noop'
|
|
||||||
cmd.run(command)
|
|
||||||
end
|
|
||||||
|
|
||||||
desc 'Install Vundle Plugins'
|
|
||||||
task :vim_plugins do
|
|
||||||
# running this command from bundler refuses to work
|
|
||||||
command = 'vim +PluginInstall! +qall'
|
|
||||||
puts "Run '#{command}' to get your Vundle plugins installed and/or updated"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
# rubocop:enable Metrics/BlockLength
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
source /opt/rh/rh-ruby24/enable
|
|
||||||
bundle "$@"
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
source /opt/rh/rh-ruby24/enable
|
|
||||||
ruby "$@"
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ $# -ne 1 ]; then
|
|
||||||
echo "usage: sudo $0 username"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
user=$1
|
|
||||||
zsh_path='/usr/local/bin/zsh'
|
|
||||||
|
|
||||||
if [ "$(id -u)" != "0" ]; then
|
|
||||||
echo "Editing your shell requires admin rights. Run via 'sudo $0'"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
if [ -f "$zsh_path" ]; then
|
|
||||||
shell_check=$(dscl localhost -read /Local/Default/Users/gene UserShell |grep -c $zsh_path)
|
|
||||||
if [ $shell_check -eq 0 ]; then
|
|
||||||
echo "setting shell via dscl"
|
|
||||||
dscl localhost -change /Local/Default/Users/$user UserShell /bin/bash $zsh_path
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "$zsh_path doesn't exist yet, run Puppet."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
[user]
|
|
||||||
name = Gene Liverman
|
|
||||||
email = gene@technicalissues.us
|
|
||||||
|
|
||||||
[commit]
|
|
||||||
gpgSign = true
|
|
||||||
[filter "lfs"]
|
|
||||||
process = git-lfs filter-process
|
|
||||||
required = true
|
|
||||||
clean = git-lfs clean -- %f
|
|
||||||
smudge = git-lfs smudge -- %f
|
|
||||||
[gpg]
|
|
||||||
program = gpg2
|
|
||||||
[init]
|
|
||||||
defaultBranch = main
|
|
||||||
[merge]
|
|
||||||
conflictStyle = diff3
|
|
||||||
[pull]
|
|
||||||
rebase = false
|
|
||||||
[alias]
|
|
||||||
kraken = !open "gitkraken://repo$(cd "${1:-.}" && git rev-parse --show-toplevel); :"
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
---
|
|
||||||
url: 'https://forgeapi.puppetlabs.com'
|
|
||||||
username: 'genebean'
|
|
||||||
password: 'change-me-to-a-real-password'
|
|
||||||
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
---
|
|
||||||
gem: --no-ri --no-rdoc
|
|
||||||
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
source "/usr/share/powerline/bindings/tmux/powerline.conf"
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
" enable powerline
|
|
||||||
set rtp+='/usr/share/vim/addons/plugin/powerline.vim'
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
alias ll='ls -G -l'
|
|
||||||
alias ls='ls -G'
|
|
||||||
|
|
||||||
export PATH=$PATH:~/.nexustools
|
|
||||||
export PATH=$PATH:/Applications/Araxis\ Merge.app/Contents/Utilities
|
|
||||||
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
|
|
||||||
|
|
||||||
#export PS1='\u:☕️ \W \$ '
|
|
||||||
if [ -f $(brew --prefix)/etc/bash_completion ]; then
|
|
||||||
source $(brew --prefix)/etc/bash_completion
|
|
||||||
source $(brew --prefix)/etc/bash_completion.d/git-completion.bash
|
|
||||||
source $(brew --prefix)/etc/bash_completion.d/git-prompt.sh
|
|
||||||
fi
|
|
||||||
export GIT_PS1_SHOWDIRTYSTATE=true
|
|
||||||
export PS1='\h:\W \$$(__git_ps1) '
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
source "/usr/local/lib/python2.7/site-packages/powerline/bindings/tmux/powerline.conf"
|
|
||||||
|
|
||||||
# Make mouse useful in copy mode
|
|
||||||
set -g mouse on
|
|
||||||
|
|
||||||
# Scroll History
|
|
||||||
set -g history-limit 30000
|
|
||||||
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
#requires -Version 2 -Modules posh-git
|
|
||||||
|
|
||||||
function Write-Theme {
|
|
||||||
param(
|
|
||||||
[bool]
|
|
||||||
$lastCommandFailed,
|
|
||||||
[string]
|
|
||||||
$with
|
|
||||||
)
|
|
||||||
|
|
||||||
$prompt = Write-Prompt -Object "$($sl.PromptSymbols.StartSymbol) " -ForegroundColor $sl.Colors.PromptForegroundColor
|
|
||||||
|
|
||||||
If (!$env:_ -contains 'pwsh') {
|
|
||||||
$prompt += ' '
|
|
||||||
}
|
|
||||||
|
|
||||||
#check the last command state and indicate if failed
|
|
||||||
If ($lastCommandFailed) {
|
|
||||||
$prompt += Write-Prompt -Object "$($sl.PromptSymbols.FailedCommandSymbol) " -ForegroundColor $sl.Colors.CommandFailedIconForegroundColor
|
|
||||||
}
|
|
||||||
|
|
||||||
#check for elevated prompt
|
|
||||||
If (Test-Administrator) {
|
|
||||||
$prompt += Write-Prompt -Object "$($sl.PromptSymbols.ElevatedSymbol) " -ForegroundColor $sl.Colors.AdminIconForegroundColor
|
|
||||||
}
|
|
||||||
|
|
||||||
$computer = [System.Environment]::MachineName
|
|
||||||
$path = Get-FullPath -dir $pwd
|
|
||||||
$prompt += Write-Prompt -Object "$computer" -ForegroundColor $sl.Colors.SessionInfoForegroundColor
|
|
||||||
$prompt += Write-Prompt -Object ": " -ForegroundColor $sl.Colors.SessionInfoForegroundColor
|
|
||||||
|
|
||||||
# Writes the drive portion
|
|
||||||
$prompt += Write-Prompt -Object "$path "
|
|
||||||
|
|
||||||
$status = Get-VCSStatus
|
|
||||||
if ($status) {
|
|
||||||
$themeInfo = Get-VcsInfo -status ($status)
|
|
||||||
$prompt += Write-Prompt -Object " $($themeInfo.VcInfo) " -ForegroundColor $sl.Colors.GitForegroundColor
|
|
||||||
}
|
|
||||||
|
|
||||||
$prompt += Set-Newline
|
|
||||||
|
|
||||||
if ($with) {
|
|
||||||
$prompt += Write-Prompt -Object "$($with.ToUpper()) " -BackgroundColor $sl.Colors.WithBackgroundColor -ForegroundColor $sl.Colors.WithForegroundColor
|
|
||||||
}
|
|
||||||
$prompt += Write-Prompt -Object ($sl.PromptSymbols.PromptIndicator) -ForegroundColor $sl.Colors.PromptBackgroundColor
|
|
||||||
$prompt += ' '
|
|
||||||
$prompt
|
|
||||||
}
|
|
||||||
|
|
||||||
$sl = $global:ThemeSettings #local settings
|
|
||||||
$sl.PromptSymbols.StartSymbol = '☕️'
|
|
||||||
$sl.PromptSymbols.PromptIndicator = [char]::ConvertFromUtf32(0x276F)
|
|
||||||
$sl.PromptSymbols.SegmentForwardSymbol = [char]::ConvertFromUtf32(0xE0B0)
|
|
||||||
$sl.Colors.PromptForegroundColor = [ConsoleColor]::White
|
|
||||||
$sl.Colors.PromptSymbolColor = [ConsoleColor]::White
|
|
||||||
$sl.Colors.PromptHighlightColor = [ConsoleColor]::DarkBlue
|
|
||||||
$sl.Colors.GitForegroundColor = [ConsoleColor]::DarkBlue
|
|
||||||
$sl.Colors.WithForegroundColor = [ConsoleColor]::DarkRed
|
|
||||||
$sl.Colors.WithBackgroundColor = [ConsoleColor]::Magenta
|
|
||||||
$sl.Colors.VirtualEnvBackgroundColor = [System.ConsoleColor]::Red
|
|
||||||
$sl.Colors.VirtualEnvForegroundColor = [System.ConsoleColor]::White
|
|
||||||
|
|
@ -1,234 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"alignment": "left",
|
|
||||||
"segments": [
|
|
||||||
{
|
|
||||||
"background": "#c386f1",
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"leading_diamond": "",
|
|
||||||
"properties": {
|
|
||||||
"display_host": false,
|
|
||||||
"postfix": " "
|
|
||||||
},
|
|
||||||
"style": "diamond",
|
|
||||||
"trailing_diamond": "",
|
|
||||||
"type": "session"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#ff479c",
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"folder_separator_icon": " ",
|
|
||||||
"home_icon": "~",
|
|
||||||
"prefix": " ",
|
|
||||||
"style": "folder"
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#fffb38",
|
|
||||||
"foreground": "#193549",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"ahead_and_behind_color": "#f26d50",
|
|
||||||
"ahead_color": "#89d1dc",
|
|
||||||
"behind_color": "#f17c37",
|
|
||||||
"display_stash_count": true,
|
|
||||||
"display_upstream_icon": true,
|
|
||||||
"local_changes_color": "#ff9248",
|
|
||||||
"stash_count_icon": " ",
|
|
||||||
"status_colors_enabled": true
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "git"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#6CA35E",
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"display_version": true,
|
|
||||||
"prefix": " "
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "node"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#8ED1F7",
|
|
||||||
"foreground": "#111111",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"display_version": true,
|
|
||||||
"prefix": " "
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "go"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#4063D8",
|
|
||||||
"foreground": "#111111",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"display_version": true,
|
|
||||||
"prefix": " "
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "julia"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#FFDE57",
|
|
||||||
"foreground": "#111111",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"display_mode": "files",
|
|
||||||
"display_version": true,
|
|
||||||
"display_virtual_env": false,
|
|
||||||
"prefix": " "
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "python"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#AE1401",
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"display_mode": "files",
|
|
||||||
"display_version": true,
|
|
||||||
"prefix": " "
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "ruby"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#FEAC19",
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"display_mode": "files",
|
|
||||||
"display_version": false,
|
|
||||||
"prefix": " "
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "azfunc"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background_templates": [
|
|
||||||
"{{if contains \"default\" .Profile}}#FFA400{{end}}",
|
|
||||||
"{{if contains \"jan\" .Profile}}#f1184c{{end}}"
|
|
||||||
],
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"display_default": false,
|
|
||||||
"prefix": " "
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "aws"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#ffff66",
|
|
||||||
"foreground": "#111111",
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"root_icon": ""
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "root"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#83769c",
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"leading_diamond": "",
|
|
||||||
"properties": {
|
|
||||||
"always_enabled": true,
|
|
||||||
"prefix": "<transparent></> 羽"
|
|
||||||
},
|
|
||||||
"style": "plain",
|
|
||||||
"trailing_diamond": "",
|
|
||||||
"type": "executiontime"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#2e9599",
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"leading_diamond": "",
|
|
||||||
"properties": {
|
|
||||||
"always_enabled": true,
|
|
||||||
"color_background": true,
|
|
||||||
"display_exit_code": false,
|
|
||||||
"error_color": "#f1184c",
|
|
||||||
"prefix": "<#83769c></> "
|
|
||||||
},
|
|
||||||
"style": "diamond",
|
|
||||||
"trailing_diamond": "",
|
|
||||||
"type": "exit"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"type": "prompt"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"segments": [
|
|
||||||
{
|
|
||||||
"background": "#0077c2",
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"properties": {
|
|
||||||
"postfix": " <transparent,#0077c2></>",
|
|
||||||
"prefix": "<#0077c2,transparent></> "
|
|
||||||
},
|
|
||||||
"style": "plain",
|
|
||||||
"type": "shell"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#1BD760",
|
|
||||||
"foreground": "#111111",
|
|
||||||
"invert_powerline": true,
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"paused_icon": " ",
|
|
||||||
"playing_icon": " ",
|
|
||||||
"prefix": " "
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "ytm"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#f36943",
|
|
||||||
"foreground": "#ffffff",
|
|
||||||
"invert_powerline": true,
|
|
||||||
"powerline_symbol": "",
|
|
||||||
"properties": {
|
|
||||||
"battery_icon": "",
|
|
||||||
"charged_color": "#4caf50",
|
|
||||||
"charged_icon": " ",
|
|
||||||
"charging_color": "#40c4ff",
|
|
||||||
"charging_icon": " ",
|
|
||||||
"color_background": true,
|
|
||||||
"discharging_color": "#ff5722",
|
|
||||||
"discharging_icon": " ",
|
|
||||||
"postfix": " "
|
|
||||||
},
|
|
||||||
"style": "powerline",
|
|
||||||
"type": "battery"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"background": "#2e9599",
|
|
||||||
"foreground": "#111111",
|
|
||||||
"invert_powerline": true,
|
|
||||||
"leading_diamond": "",
|
|
||||||
"style": "diamond",
|
|
||||||
"trailing_diamond": "",
|
|
||||||
"type": "time"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"type": "rprompt"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"console_title": true,
|
|
||||||
"console_title_style": "template",
|
|
||||||
"console_title_template": "{{ .Shell }} in {{ .Folder }}",
|
|
||||||
"final_space": true
|
|
||||||
}
|
|
||||||
|
|
@ -1,80 +0,0 @@
|
||||||
set nocompatible " be iMproved, required
|
|
||||||
filetype off " required by Vundle. filetype is reenabled after Vundle starts
|
|
||||||
|
|
||||||
" set the runtime path to include Vundle and initialize
|
|
||||||
set rtp+=~/.vim/bundle/Vundle.vim
|
|
||||||
call vundle#begin()
|
|
||||||
|
|
||||||
" let Vundle manage Vundle, required for Vundle to work right
|
|
||||||
Plugin 'VundleVim/Vundle.vim'
|
|
||||||
|
|
||||||
Plugin 'ekalinin/Dockerfile.vim' " provides syntax highlighting for Dockerfiles
|
|
||||||
Plugin 'elzr/vim-json' " provides syntax highlighting for JSON files
|
|
||||||
Plugin 'garbas/vim-snipmate' " provides code snippets
|
|
||||||
Plugin 'godlygeek/tabular' " provides a method for lining things up
|
|
||||||
Plugin 'honza/vim-snippets' " provides snippets for use with vim-snipmate
|
|
||||||
Plugin 'LnL7/vim-nix' " support for writing Nix expressions in vim
|
|
||||||
Plugin 'MarcWeber/vim-addon-mw-utils' " a utility used by vim-snipmate
|
|
||||||
Plugin 'mrk21/yaml-vim' " provides indentation and syntax highlighting for yaml
|
|
||||||
Plugin 'rbong/vim-flog' " git branch viewer built on fugitive
|
|
||||||
Plugin 'rodjek/vim-puppet' " provides several niceties for working with Puppet
|
|
||||||
Plugin 'tomtom/tlib_vim' " a utility used by vim-snipmate
|
|
||||||
Plugin 'tpope/vim-fugitive' " all things Git here in Vim
|
|
||||||
Plugin 'vim-airline/vim-airline' " status line alternative to powerline
|
|
||||||
Plugin 'vim-airline/vim-airline-themes' " themes for vim-airline
|
|
||||||
Plugin 'vim-ruby/vim-ruby' " provides syntax highlighting for ruby files
|
|
||||||
Plugin 'vim-syntastic/syntastic' " provides syntax checking
|
|
||||||
|
|
||||||
" All of your Plugins must be added before the following line
|
|
||||||
call vundle#end()
|
|
||||||
filetype plugin indent on " required for plugins to be able to adjust indent
|
|
||||||
|
|
||||||
" Brief help
|
|
||||||
" :PluginList - lists configured plugins
|
|
||||||
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
|
|
||||||
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
|
|
||||||
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
|
|
||||||
"
|
|
||||||
" see :h vundle for more details or wiki for FAQ
|
|
||||||
" Put your non-Plugin stuff after this line
|
|
||||||
syntax on " enable syntax highlighting
|
|
||||||
|
|
||||||
set encoding=utf-8
|
|
||||||
set termencoding=utf-8
|
|
||||||
set t_Co=256 " tell vim we have 256 colors to work with
|
|
||||||
|
|
||||||
set autoindent " automatically indent new lines
|
|
||||||
set background=dark " tell vim your terminal has a dark background
|
|
||||||
set backspace=2 " make backspace work like most other programs
|
|
||||||
set expandtab " converts tabs to spaces
|
|
||||||
set fillchars+=stl:\ ,stlnc:\ " fix added per powerline troubleshooting docs
|
|
||||||
set laststatus=2 " Always display the status line in all windows
|
|
||||||
set noshowmode " Hide the default mode text (e.g. -- INSERT -- below the status line)
|
|
||||||
set smarttab " helps with expanding tabs to spaces (I think)
|
|
||||||
set statusline+=%{FugitiveStatusline()} " get git info via fugitive plugin
|
|
||||||
set statusline+=%#warningmsg# " recommended setting from syntastic plugin
|
|
||||||
set statusline+=%{SyntasticStatuslineFlag()} " recommended setting from syntastic plugin
|
|
||||||
set statusline+=%* " recommended setting from syntastic plugin
|
|
||||||
|
|
||||||
" This has to come after colorscheme, if defined, to not be masked
|
|
||||||
highlight ColorColumn ctermbg=232 " set the color to be used for guidelines
|
|
||||||
let &colorcolumn=join(range(81,999),",") " change the background color of everything beyond 80 characters
|
|
||||||
|
|
||||||
let g:snipMate = { 'snippet_version' : 1 }
|
|
||||||
|
|
||||||
" settings for the syntastic plugin
|
|
||||||
let g:syntastic_always_populate_loc_list = 1
|
|
||||||
let g:syntastic_auto_loc_list = 1
|
|
||||||
let g:syntastic_check_on_open = 1
|
|
||||||
let g:syntastic_check_on_wq = 0
|
|
||||||
let g:syntastic_enable_signs = 1
|
|
||||||
let g:syntastic_ruby_checkers = ['rubocop']
|
|
||||||
let g:syntastic_quiet_messages = {'level': 'warnings'}
|
|
||||||
|
|
||||||
" don't wrap text in markdown files
|
|
||||||
let g:vim_markdown_folding_disabled = 1
|
|
||||||
|
|
||||||
" settings for vim-airline
|
|
||||||
let g:airline_theme='badwolf'
|
|
||||||
let g:airline_powerline_fonts = 1
|
|
||||||
|
|
||||||
|
|
@ -1,267 +0,0 @@
|
||||||
# Path to your oh-my-zsh installation.
|
|
||||||
export ZSH=~/.oh-my-zsh
|
|
||||||
|
|
||||||
# Set name of the theme to load. Optionally, if you set this to "random"
|
|
||||||
# it'll load a random theme each time that oh-my-zsh is loaded.
|
|
||||||
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
|
|
||||||
#ZSH_THEME="robbyrussell"
|
|
||||||
|
|
||||||
# use oh-my-posh for theme
|
|
||||||
|
|
||||||
# Get Homebrew into the path early so that plugins and such can use
|
|
||||||
# programs installed by it
|
|
||||||
if [[ $(uname) == 'Darwin' ]]; then
|
|
||||||
if [ "$(uname -p)" = 'i386' ] && [ ! -f '/opt/homebrew/bin/brew' ]; then
|
|
||||||
eval "$(/usr/local/bin/brew shellenv)"
|
|
||||||
else
|
|
||||||
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
||||||
fi
|
|
||||||
elif [[ $(uname) == 'Linux' ]]; then
|
|
||||||
if [[ -e /home/linuxbrew/.linuxbrew/bin/brew ]]; then
|
|
||||||
# Don't use the eval so that it doesn't override system python
|
|
||||||
# eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
||||||
export HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew"
|
|
||||||
export HOMEBREW_CELLAR="/home/linuxbrew/.linuxbrew/Cellar"
|
|
||||||
export HOMEBREW_REPOSITORY="/home/linuxbrew/.linuxbrew/Homebrew"
|
|
||||||
export PATH="${PATH}:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin"
|
|
||||||
export MANPATH="/home/linuxbrew/.linuxbrew/share/man${MANPATH+:$MANPATH}:"
|
|
||||||
export INFOPATH="/home/linuxbrew/.linuxbrew/share/info:${INFOPATH:-}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get Homebrew shell completion bits
|
|
||||||
# https://docs.brew.sh/Shell-Completion
|
|
||||||
if type brew &>/dev/null; then
|
|
||||||
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Uncomment the following line to use case-sensitive completion.
|
|
||||||
# CASE_SENSITIVE="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to use hyphen-insensitive completion. Case
|
|
||||||
# sensitive completion must be off. _ and - will be interchangeable.
|
|
||||||
# HYPHEN_INSENSITIVE="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to disable bi-weekly auto-update checks.
|
|
||||||
# DISABLE_AUTO_UPDATE="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to change how often to auto-update (in days).
|
|
||||||
# export UPDATE_ZSH_DAYS=13
|
|
||||||
|
|
||||||
# Uncomment the following line to disable colors in ls.
|
|
||||||
# DISABLE_LS_COLORS="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to disable auto-setting terminal title.
|
|
||||||
# DISABLE_AUTO_TITLE="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to enable command auto-correction.
|
|
||||||
ENABLE_CORRECTION="false"
|
|
||||||
|
|
||||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
|
||||||
COMPLETION_WAITING_DOTS="false"
|
|
||||||
|
|
||||||
# Uncomment the following line if you want to disable marking untracked files
|
|
||||||
# under VCS as dirty. This makes repository status check for large repositories
|
|
||||||
# much, much faster.
|
|
||||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
|
||||||
|
|
||||||
# Uncomment the following line if you want to change the command execution time
|
|
||||||
# stamp shown in the history command output.
|
|
||||||
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
|
||||||
# HIST_STAMPS="mm/dd/yyyy"
|
|
||||||
|
|
||||||
# Would you like to use another custom folder than $ZSH/custom?
|
|
||||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
|
||||||
ZSH_CUSTOM=~/repos/customized-oh-my-zsh
|
|
||||||
|
|
||||||
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
|
|
||||||
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
|
||||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
|
||||||
# Add wisely, as too many plugins slow down shell startup.
|
|
||||||
plugins=(bundler gem git github history kubectl macos pip terraform vagrant vscode zsh-autosuggestions)
|
|
||||||
|
|
||||||
source $ZSH/oh-my-zsh.sh
|
|
||||||
|
|
||||||
# User configuration
|
|
||||||
|
|
||||||
[ -f ~/.private-env ] && source ~/.private-env || echo '~/.private-env is missing'
|
|
||||||
|
|
||||||
# Start GPG agent
|
|
||||||
# Some tips from https://hedberg.io/yubikey-for-ssh/ helped simplify this:
|
|
||||||
if [[ $(uname) == 'Darwin' ]]; then
|
|
||||||
# Add GPG Suite binaries to the path:
|
|
||||||
export PATH=/usr/local/MacGPG2/bin:$PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
export GPG_TTY=$(tty)
|
|
||||||
# export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
|
||||||
# gpgconf --launch gpg-agent
|
|
||||||
|
|
||||||
# export MANPATH="/usr/local/man:$MANPATH"
|
|
||||||
|
|
||||||
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
|
||||||
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
|
||||||
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
|
||||||
# For a full list of active aliases, run `alias`.
|
|
||||||
#
|
|
||||||
# Example aliases
|
|
||||||
# alias zshconfig="mate ~/.zshrc"
|
|
||||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
|
||||||
#alias ll='ls -G -l'
|
|
||||||
#alias ls='ls -G'
|
|
||||||
alias beo='bundle exec onceover run spec --trace --force'
|
|
||||||
alias biv='bundle install --path=vendor/bundle'
|
|
||||||
alias ce='code-exploration'
|
|
||||||
alias gbc='git branch --merged | command grep -vE "^(\*|\s*(main|master|develop|production)\s*$)" | command xargs -n 1 git branch -d'
|
|
||||||
alias gitextract='git log --pretty=email --patch-with-stat --reverse --full-index --binary --'
|
|
||||||
alias gpge='gpg2 --encrypt --sign --armor -r '
|
|
||||||
alias hubpr='hub pull-request --push --browse'
|
|
||||||
alias pssh='ssh -o "UserKnownHostsFile /dev/null" -o "StrictHostKeyChecking no" -o PubkeyAcceptedKeyTypes=+ssh-rsa -o HostKeyAlgorithms=+ssh-rsa -o KexAlgorithms=+diffie-hellman-group1-sha1 -i ~/.ssh/id_rsa-acceptance'
|
|
||||||
alias sal='ssh-add -L'
|
|
||||||
alias st='open -a SourceTree'
|
|
||||||
alias sz='source ~/.zshrc'
|
|
||||||
alias usegpg='killall ssh-agent; export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) && gpgconf --launch gpg-agent'
|
|
||||||
alias usessh='gpgconf --kill gpg-agent'
|
|
||||||
|
|
||||||
# aliases whose command changes based on OS
|
|
||||||
if [[ `uname` == 'Linux' ]]; then
|
|
||||||
alias uwgconnect='nmcli dev wifi connect SecureWest password'
|
|
||||||
alias uwgforget='nmcli connection delete SecureWest'
|
|
||||||
alias ykey='sudo systemctl restart pcscd && sudo pkill -9 gpg-agent && source ~/.zshrc; ssh-add -L'
|
|
||||||
else
|
|
||||||
alias currentwifi='networksetup -getairportnetwork en0 |cut -d ":" -f2- | cut -d " " -f2-'
|
|
||||||
alias uwgconnect='networksetup -setairportnetwork en0 SecureWest'
|
|
||||||
alias uwgforget='networksetup -removepreferredwirelessnetwork en0 SecureWest'
|
|
||||||
alias ykey='pkill -9 gpg-agent && source ~/.zshrc; ssh-add -L'
|
|
||||||
fi
|
|
||||||
|
|
||||||
## Linux-only aliases
|
|
||||||
if [[ `uname` == 'Linux' ]]; then
|
|
||||||
alias enable-ruby-27='source ~/enable-ruby-27'
|
|
||||||
alias pbcopy='xclip -selection clipboard'
|
|
||||||
alias pbpaste='xclip -selection clipboard -o'
|
|
||||||
|
|
||||||
function popup() {
|
|
||||||
echo 'checking for updates via apt...'
|
|
||||||
sudo apt update
|
|
||||||
sudo apt upgrade -y
|
|
||||||
echo
|
|
||||||
echo 'checking for updates via flatpak...'
|
|
||||||
flatpak update
|
|
||||||
echo
|
|
||||||
echo 'checking for updates via snap...'
|
|
||||||
sudo snap refresh
|
|
||||||
echo
|
|
||||||
echo 'checking for updates via brew...'
|
|
||||||
brew update
|
|
||||||
brew upgrade
|
|
||||||
echo
|
|
||||||
echo 'checking for updates to Zoom'
|
|
||||||
wget -O /tmp/zoom_amd64.deb https://zoom.us/client/latest/zoom_amd64.deb && sudo apt-get install -y /tmp/zoom_amd64.deb; rm -f /tmp/zoom_amd64.deb
|
|
||||||
echo
|
|
||||||
echo 'checking for firmware updates...'
|
|
||||||
sudo fwupdmgr refresh --force && sudo fwupdmgr get-updates && sudo fwupdmgr update
|
|
||||||
echo
|
|
||||||
echo 'all done :)'
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ `uname` != 'Linux' ]]; then
|
|
||||||
function otpon() {
|
|
||||||
osascript -e 'tell application "yubiswitch" to KeyOn'
|
|
||||||
}
|
|
||||||
function otpoff() {
|
|
||||||
osascript -e 'tell application "yubiswitch" to KeyOff'
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
export GOPATH=$HOME/go
|
|
||||||
|
|
||||||
if [[ `uname` == 'Darwin' ]]; then
|
|
||||||
# Bits common to all macOS instances
|
|
||||||
alias flushdns='sudo killall -HUP mDNSResponder'
|
|
||||||
alias localdns='sudo networksetup -setdnsservers Wi-Fi empty && sudo networksetup -setdnsservers Wi-Fi 127.0.0.1 ::1 && flushdns'
|
|
||||||
alias ogk='open -a GitKraken'
|
|
||||||
alias stockdns='sudo networksetup -setdnsservers Wi-Fi empty && flushdns'
|
|
||||||
|
|
||||||
if [ -d "$HOME/.krew" ]; then export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"; fi
|
|
||||||
|
|
||||||
export PATH=$PATH:/usr/local/sbin
|
|
||||||
|
|
||||||
# Araxis needs to come first so that its tools don't get stomped
|
|
||||||
# by ones Homebrew installs to /usr/local/bin. In particular, compare
|
|
||||||
# from ImageMagick breaks using git difftool.
|
|
||||||
if [ -d "/Applications/Araxis Merge.app" ]; then export PATH='/Applications/Araxis Merge.app/Contents/Utilities':$PATH; fi
|
|
||||||
|
|
||||||
eval '/usr/libexec/path_helper -s' > /dev/null
|
|
||||||
|
|
||||||
# Add OVFTool to PATH if it is installed
|
|
||||||
if [ -d "/Applications/VMware OVF Tool" ]; then export PATH=$PATH:'/Applications/VMware OVF Tool'; fi
|
|
||||||
|
|
||||||
# add gems to path
|
|
||||||
GEMBIN="$(gem environment gemdir)/bin"
|
|
||||||
export PATH=$PATH:$GEMBIN
|
|
||||||
|
|
||||||
# added to make pipx work
|
|
||||||
[ -d /Users/gene/.local/bin ] && export PATH=$PATH:/Users/gene/.local/bin
|
|
||||||
|
|
||||||
export OPENFAAS_PREFIX="genebean"
|
|
||||||
|
|
||||||
[ -e "${HOME}/.iterm2_shell_integration.zsh" ] && source "${HOME}/.iterm2_shell_integration.zsh"
|
|
||||||
|
|
||||||
if [ "$(uname -p)" = 'i386' ] && [ ! -f '/opt/homebrew/bin/brew' ]; then
|
|
||||||
|
|
||||||
# optional additions from homebrew
|
|
||||||
[ -d "/usr/local/opt/node@12/bin" ] && export PATH="/usr/local/opt/node@12/bin:$PATH"
|
|
||||||
[ -d /usr/local/opt/qt/bin ] && export PATH=$PATH:/usr/local/opt/qt/bin
|
|
||||||
|
|
||||||
# use homebrew's ruby
|
|
||||||
[ -d /usr/local/opt/ruby/bin ] && export PATH=/usr/local/opt/ruby/bin:$PATH
|
|
||||||
|
|
||||||
# hide ruby 2.7's extra output
|
|
||||||
export RUBYOPT='-W:no-deprecated -W:no-experimental'
|
|
||||||
|
|
||||||
export VAGRANT_DEFAULT_PROVIDER='virtualbox'
|
|
||||||
|
|
||||||
glcoud_zsh_path='/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc'
|
|
||||||
[ -f $glcoud_zsh_path ] && source $glcoud_zsh_path
|
|
||||||
|
|
||||||
gcloud_zsh_completions='/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc'
|
|
||||||
[ -f $gcloud_zsh_completions ] && source $gcloud_zsh_completions
|
|
||||||
else
|
|
||||||
glcoud_zsh_path='/usr/local/google-cloud-sdk/path.zsh.inc'
|
|
||||||
if [ -f $glcoud_zsh_path ]; then source $glcoud_zsh_path; fi
|
|
||||||
|
|
||||||
gcloud_zsh_completions='/usr/local/google-cloud-sdk/completion.zsh.inc'
|
|
||||||
if [ -f $gcloud_zsh_completions ]; then source $gcloud_zsh_completions; fi
|
|
||||||
|
|
||||||
# use homebrew's ruby
|
|
||||||
[ -d "/opt/homebrew/opt/ruby@2.7/bin" ] && export PATH='/opt/homebrew/opt/ruby@2.7/bin':$PATH
|
|
||||||
|
|
||||||
# hide ruby 2.7's extra output
|
|
||||||
export RUBYOPT='-W:no-deprecated -W:no-experimental'
|
|
||||||
fi
|
|
||||||
elif [[ `uname` == 'Linux' ]]; then
|
|
||||||
PATH="$HOME/.local/bin:$PATH"
|
|
||||||
|
|
||||||
# add Pulumi to the PATH
|
|
||||||
if [ -d "$HOME/.pulumi/bin" ] ; then
|
|
||||||
PATH=$PATH:$HOME/.pulumi/bin
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d "$HOME/.local/share/gem/ruby/3.0.0/bin" ] ; then
|
|
||||||
PATH="$HOME/.local/share/gem/ruby/3.0.0/bin:$PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# export CLOUDSDK_PYTHON="/usr/bin/python2"
|
|
||||||
gcloud_zsh_completions='/snap/google-cloud-cli/current/completion.zsh.inc'
|
|
||||||
if [ -f $gcloud_zsh_completions ]; then source $gcloud_zsh_completions; fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if type floaty &>/dev/null; then
|
|
||||||
source $(floaty completion --shell zsh)
|
|
||||||
fi
|
|
||||||
|
|
||||||
eval "$(oh-my-posh init zsh --config ~/repos/my-oh-my-posh-themes/beanbag.omp.json)"
|
|
||||||
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
forge 'http://forge.puppetlabs.com'
|
|
||||||
# The next line translates to '../../vendor/puppet_modules' aka ~/.dotfiles/vendor/puppet_modules
|
|
||||||
moduledir "#{File.dirname(File.dirname(File.dirname(__FILE__)))}/vendor/puppet_modules"
|
|
||||||
|
|
||||||
mod 'puppetlabs-apt', '7.3.0'
|
|
||||||
mod 'puppetlabs-stdlib', '4.25.1'
|
|
||||||
mod 'puppetlabs-vcsrepo', '3.1.0'
|
|
||||||
mod 'thekevjames-homebrew', '1.8.3'
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
modulepath = modules:site:~/.dotfiles/vendor/puppet_modules:$basemodulepath
|
|
||||||
config_version = 'scripts/config_version.sh $environmentpath'
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
---
|
|
||||||
version: 5
|
|
||||||
defaults: # Used for any hierarchy level that omits these keys.
|
|
||||||
datadir : hieradata # This path is relative to hiera.yaml's directory.
|
|
||||||
data_hash : yaml_data # Use the built-in YAML backend.
|
|
||||||
|
|
||||||
hierarchy:
|
|
||||||
- name: "Per-node data"
|
|
||||||
path: "nodes/%{hostname}.yaml"
|
|
||||||
- name: "Common data"
|
|
||||||
path: "common.yaml"
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
foo: bar
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
homedir: '/Users/gene'
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
homedir: '/home/gene'
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
homedir: '/Users/gene.liverman'
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
homedir: '/home/gene'
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
## site.pp ##
|
|
||||||
|
|
||||||
# DEFAULT NODE
|
|
||||||
|
|
||||||
# The default node definition matches any node lacking a more specific node
|
|
||||||
# definition. If there are no other nodes in this file, classes declared here
|
|
||||||
# will be included in every node's catalog, *in addition* to any classes
|
|
||||||
# specified in the via an ENC for that node.
|
|
||||||
|
|
||||||
node default {
|
|
||||||
notify{'This is from the default node.':}
|
|
||||||
}
|
|
||||||
|
|
||||||
node 'bowl' {
|
|
||||||
include role::workstation
|
|
||||||
}
|
|
||||||
|
|
||||||
node 'gene' {
|
|
||||||
include role::workstation
|
|
||||||
}
|
|
||||||
|
|
||||||
node 'mintstring' {
|
|
||||||
include role::workstation
|
|
||||||
}
|
|
||||||
|
|
||||||
node 'yellowbadger' {
|
|
||||||
include role::workstation
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
#!/usr/bin/env ruby
|
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
begin
|
|
||||||
require 'rugged'
|
|
||||||
rescue LoadError
|
|
||||||
t = Time.new
|
|
||||||
puts t.to_i
|
|
||||||
else
|
|
||||||
environmentpath = ARGV[0]
|
|
||||||
environment = ARGV[1]
|
|
||||||
|
|
||||||
repo = Rugged::Repository.discover(File.join(environmentpath, environment))
|
|
||||||
head = repo.head
|
|
||||||
|
|
||||||
# sha1 hash of the newest commit
|
|
||||||
head_sha = head.target_id
|
|
||||||
|
|
||||||
# the commit message associated the newest commit
|
|
||||||
# commit = repo.lookup(head_sha)
|
|
||||||
|
|
||||||
# add something to find the remote url
|
|
||||||
|
|
||||||
puts head_sha
|
|
||||||
end
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
/usr/bin/git --version > /dev/null 2>&1 &&
|
|
||||||
/usr/bin/git --git-dir $1/../.git rev-parse HEAD ||
|
|
||||||
date +%s
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
Facter.add(:os_release) do
|
|
||||||
confine kernel: 'Linux'
|
|
||||||
|
|
||||||
setcode do
|
|
||||||
file_path = '/etc/os-release'
|
|
||||||
if File.exist?(file_path)
|
|
||||||
os_release_hash = {}
|
|
||||||
File.open(file_path, 'r') do |file|
|
|
||||||
file.each_line do |line|
|
|
||||||
next if line.nil? || line.strip.length.eql?(0)
|
|
||||||
|
|
||||||
line_data = line.split('=')
|
|
||||||
key = line_data[0].downcase
|
|
||||||
value = line_data[1].strip.gsub(/(^")|("$)/, '')
|
|
||||||
os_release_hash[key] = value
|
|
||||||
end
|
|
||||||
end
|
|
||||||
os_release_hash
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
Puppet::Functions.create_function(:find_group) do
|
|
||||||
dispatch :find_group do
|
|
||||||
param 'String', :some_path
|
|
||||||
return_type 'String'
|
|
||||||
end
|
|
||||||
|
|
||||||
def find_group(some_path)
|
|
||||||
File.stat(some_path).gid.to_s
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
Puppet::Functions.create_function(:find_owner) do
|
|
||||||
dispatch :find_owner do
|
|
||||||
param 'String', :some_path
|
|
||||||
return_type 'String'
|
|
||||||
end
|
|
||||||
|
|
||||||
def find_owner(some_path)
|
|
||||||
File.stat(some_path).uid.to_s
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
Puppet::Functions.create_function(:homedir_to_user) do
|
|
||||||
dispatch :homedir_to_user do
|
|
||||||
param 'String', :some_path
|
|
||||||
return_type 'String'
|
|
||||||
end
|
|
||||||
|
|
||||||
def homedir_to_user(some_path)
|
|
||||||
some_path.split('/')[-1]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
# the base profile should include component modules that will be on all nodes
|
|
||||||
class profile::base {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
# Select a profile based on the OS family
|
|
||||||
class profile::linux {
|
|
||||||
case $facts['os']['family'] {
|
|
||||||
'Debian': { include profile::linux::debian }
|
|
||||||
'RedHat': { include profile::linux::el }
|
|
||||||
default: { fail("${facts['os']['family']} isn't supported yet") }
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'download hub':
|
|
||||||
path => '/bin:/usr/bin',
|
|
||||||
command => "curl -s https://api.github.com/repos/github/hub/releases/latest | grep \"browser_download_url.*linux-amd64\" | cut -d '\"' -f4 | xargs -n 1 curl -L | tar -xzvf - -C /tmp && mv /tmp/hub* /usr/local/hub",
|
|
||||||
creates => '/usr/local/hub',
|
|
||||||
}
|
|
||||||
|
|
||||||
file {'/usr/local/bin/hub':
|
|
||||||
ensure => 'link',
|
|
||||||
target => '/usr/local/hub/bin/hub',
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,135 +0,0 @@
|
||||||
# Profile for the Debian family of OS's
|
|
||||||
class profile::linux::debian {
|
|
||||||
$homedir = lookup('homedir')
|
|
||||||
$uid = find_owner($homedir)
|
|
||||||
$gid = find_group($homedir)
|
|
||||||
|
|
||||||
File {
|
|
||||||
owner => $uid,
|
|
||||||
group => $gid,
|
|
||||||
}
|
|
||||||
|
|
||||||
Vcsrepo {
|
|
||||||
user => $uid,
|
|
||||||
owner => $uid,
|
|
||||||
group => $gid,
|
|
||||||
}
|
|
||||||
|
|
||||||
if $facts['os_release']['ubuntu_codename'] {
|
|
||||||
$release = $facts['os_release']['ubuntu_codename']
|
|
||||||
}
|
|
||||||
elsif $facts['os']['lsb']['distcodename'] {
|
|
||||||
$release = $facts['os']['lsb']['distcodename']
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fail("Can't determine what to use in 'release' for the Docker repo")
|
|
||||||
}
|
|
||||||
|
|
||||||
apt::source { 'docker':
|
|
||||||
location => 'https://download.docker.com/linux/ubuntu',
|
|
||||||
release => $release,
|
|
||||||
repos => 'stable',
|
|
||||||
key => {
|
|
||||||
'id' => '9DC858229FC7DD38854AE2D88D81803C0EBFCD88',
|
|
||||||
'source' => 'https://download.docker.com/linux/ubuntu/gpg',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
$apt_packages = [
|
|
||||||
'apt-transport-https',
|
|
||||||
'bash-completion',
|
|
||||||
'ca-certificates',
|
|
||||||
'cmake',
|
|
||||||
'coreutils',
|
|
||||||
'curl',
|
|
||||||
'figlet',
|
|
||||||
'git',
|
|
||||||
'git-flow',
|
|
||||||
'pinentry-gnome3',
|
|
||||||
'powerline',
|
|
||||||
'python',
|
|
||||||
'python-pip',
|
|
||||||
'python-psutil',
|
|
||||||
'scdaemon',
|
|
||||||
'software-properties-common',
|
|
||||||
'tmux',
|
|
||||||
'tree',
|
|
||||||
'yubikey-personalization-gui',
|
|
||||||
'zsh',
|
|
||||||
]
|
|
||||||
|
|
||||||
package { $apt_packages:
|
|
||||||
ensure => 'installed',
|
|
||||||
require => Apt::Source['docker'],
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'set-shell-to-zsh':
|
|
||||||
path => '/bin:/usr/bin',
|
|
||||||
command => "chsh -s /usr/bin/zsh `grep '${uid}:${gid}' /etc/passwd |cut -d ':' -f1`",
|
|
||||||
cwd => $homedir,
|
|
||||||
logoutput => true,
|
|
||||||
environment => "HOME=${homedir}",
|
|
||||||
unless => "grep '${uid}:${gid}' /etc/passwd | grep '/usr/bin/zsh'",
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$dirs = [
|
|
||||||
"${homedir}/.local",
|
|
||||||
"${homedir}/.local/share",
|
|
||||||
"${homedir}/.local/share/fonts",
|
|
||||||
"${homedir}/.vim",
|
|
||||||
"${homedir}/.vim/bundle",
|
|
||||||
"${homedir}/repos",
|
|
||||||
]
|
|
||||||
|
|
||||||
file { $dirs:
|
|
||||||
ensure => 'directory',
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { "${homedir}/.oh-my-zsh":
|
|
||||||
ensure => 'present',
|
|
||||||
provider => 'git',
|
|
||||||
source => 'https://github.com/robbyrussell/oh-my-zsh.git',
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { "${homedir}/.oh-my-zsh/custom/themes":
|
|
||||||
ensure => 'latest',
|
|
||||||
provider => 'git',
|
|
||||||
source => 'git@github.com:genebean/my-oh-zsh-themes.git',
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { "${homedir}/.vim/bundle/Vundle.vim":
|
|
||||||
ensure => 'latest',
|
|
||||||
provider => 'git',
|
|
||||||
source => 'https://github.com/VundleVim/Vundle.vim.git',
|
|
||||||
require => File[$dirs],
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { "${homedir}/repos/powerline-fonts":
|
|
||||||
ensure => 'latest',
|
|
||||||
provider => 'git',
|
|
||||||
source => 'https://github.com/powerline/fonts.git',
|
|
||||||
require => File[$dirs],
|
|
||||||
notify => Exec['update-fonts'],
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'update-fonts':
|
|
||||||
command => "${homedir}/repos/powerline-fonts/install.sh",
|
|
||||||
cwd => "${homedir}/repos/powerline-fonts",
|
|
||||||
logoutput => true,
|
|
||||||
environment => "HOME=${homedir}",
|
|
||||||
refreshonly => true,
|
|
||||||
notify => Exec['set-font-ownership'],
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'set-font-ownership':
|
|
||||||
path => '/bin:/usr/bin',
|
|
||||||
command => "chown -R ${uid}:${gid} ${homedir}/.local/share/fonts/*",
|
|
||||||
cwd => $homedir,
|
|
||||||
logoutput => true,
|
|
||||||
environment => "HOME=${homedir}",
|
|
||||||
require => Exec['update-fonts'],
|
|
||||||
refreshonly => true,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,126 +0,0 @@
|
||||||
# Profile for the Red Hat family of OS's
|
|
||||||
class profile::linux::el {
|
|
||||||
$homedir = lookup('homedir')
|
|
||||||
$uid = find_owner($homedir)
|
|
||||||
$gid = find_group($homedir)
|
|
||||||
$user = homedir_to_user($homedir)
|
|
||||||
|
|
||||||
include profile::linux::el::docker_repos
|
|
||||||
Yumrepo <| |> -> Package <| |> # lint:ignore:spaceship_operator_without_tag
|
|
||||||
|
|
||||||
$yum_packages = [
|
|
||||||
'cmake',
|
|
||||||
'device-mapper-persistent-data',
|
|
||||||
'docker-ce',
|
|
||||||
'figlet',
|
|
||||||
'git',
|
|
||||||
'gitflow',
|
|
||||||
'lvm2',
|
|
||||||
'python2-pip',
|
|
||||||
'python2-psutil',
|
|
||||||
'tmux',
|
|
||||||
'tree',
|
|
||||||
'yum-utils',
|
|
||||||
'zsh',
|
|
||||||
]
|
|
||||||
|
|
||||||
$python_pacakges = [
|
|
||||||
'powerline-status',
|
|
||||||
]
|
|
||||||
|
|
||||||
package {
|
|
||||||
default:
|
|
||||||
ensure => 'installed',
|
|
||||||
;
|
|
||||||
'epel-release':
|
|
||||||
notify => Exec['yum clean all'],
|
|
||||||
;
|
|
||||||
$yum_packages:
|
|
||||||
require => Package['epel-release'],
|
|
||||||
;
|
|
||||||
$python_pacakges:
|
|
||||||
ensure => 'latest',
|
|
||||||
provider => 'pip',
|
|
||||||
require => Package['python2-pip'],
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
$dirs = [
|
|
||||||
"${homedir}/.local",
|
|
||||||
"${homedir}/.local/share",
|
|
||||||
"${homedir}/.local/share/fonts",
|
|
||||||
"${homedir}/.vim",
|
|
||||||
"${homedir}/.vim/bundle",
|
|
||||||
"${homedir}/repos",
|
|
||||||
]
|
|
||||||
|
|
||||||
file { $dirs:
|
|
||||||
ensure => 'directory',
|
|
||||||
owner => $uid,
|
|
||||||
group => $gid,
|
|
||||||
}
|
|
||||||
|
|
||||||
# Unlike on Mint, powerline is pulled from pip.
|
|
||||||
# This makes it so that the line in .tmux.conf works on both.
|
|
||||||
file { '/usr/share/powerline':
|
|
||||||
ensure => 'link',
|
|
||||||
target => '/usr/lib/python2.7/site-packages/powerline',
|
|
||||||
require => Package[$python_pacakges],
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo {
|
|
||||||
default:
|
|
||||||
ensure => 'latest',
|
|
||||||
user => $user,
|
|
||||||
owner => $uid,
|
|
||||||
group => $gid,
|
|
||||||
provider => 'git',
|
|
||||||
;
|
|
||||||
"${homedir}/.oh-my-zsh":
|
|
||||||
ensure => 'present',
|
|
||||||
source => 'https://github.com/robbyrussell/oh-my-zsh.git',
|
|
||||||
;
|
|
||||||
"${homedir}/.oh-my-zsh/custom/themes":
|
|
||||||
source => 'git@github.com:genebean/my-oh-zsh-themes.git',
|
|
||||||
;
|
|
||||||
"${homedir}/.vim/bundle/Vundle.vim":
|
|
||||||
source => 'https://github.com/VundleVim/Vundle.vim.git',
|
|
||||||
require => File[$dirs],
|
|
||||||
;
|
|
||||||
"${homedir}/repos/powerline-fonts":
|
|
||||||
source => 'https://github.com/powerline/fonts.git',
|
|
||||||
require => File[$dirs],
|
|
||||||
notify => Exec['update-fonts'],
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
exec {
|
|
||||||
default:
|
|
||||||
logoutput => true,
|
|
||||||
environment => "HOME=${homedir}",
|
|
||||||
refreshonly => true,
|
|
||||||
;
|
|
||||||
'yum clean all':
|
|
||||||
command => '/bin/yum clean all',
|
|
||||||
;
|
|
||||||
'set-shell-to-zsh':
|
|
||||||
path => '/bin:/usr/bin',
|
|
||||||
command => "chsh -s /usr/bin/zsh `grep '${uid}:${gid}' /etc/passwd |cut -d ':' -f1`",
|
|
||||||
cwd => $homedir,
|
|
||||||
unless => "grep '${uid}:${gid}' /etc/passwd | grep '/usr/bin/zsh'",
|
|
||||||
require => Package['zsh'],
|
|
||||||
;
|
|
||||||
'update-fonts':
|
|
||||||
command => "${homedir}/repos/powerline-fonts/install.sh",
|
|
||||||
cwd => "${homedir}/repos/powerline-fonts",
|
|
||||||
notify => Exec['set-font-ownership'],
|
|
||||||
;
|
|
||||||
'set-font-ownership':
|
|
||||||
path => '/bin:/usr/bin',
|
|
||||||
command => "chown -R ${uid}:${gid} ${homedir}/.local/share/fonts/*",
|
|
||||||
cwd => $homedir,
|
|
||||||
require => Exec['update-fonts'],
|
|
||||||
;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,101 +0,0 @@
|
||||||
# These repos are the ones setup by
|
|
||||||
# https://download.docker.com/linux/centos/docker-ce.repo
|
|
||||||
class profile::linux::el::docker_repos {
|
|
||||||
yumrepo { 'docker-ce-edge':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/$basearch/edge',
|
|
||||||
descr => 'Docker CE Edge - $basearch',
|
|
||||||
enabled => '0',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
yumrepo { 'docker-ce-edge-debuginfo':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/debug-$basearch/edge',
|
|
||||||
descr => 'Docker CE Edge - Debuginfo $basearch',
|
|
||||||
enabled => '0',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
yumrepo { 'docker-ce-edge-source':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/source/edge',
|
|
||||||
descr => 'Docker CE Edge - Sources',
|
|
||||||
enabled => '0',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
yumrepo { 'docker-ce-nightly':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/$basearch/nightly',
|
|
||||||
descr => 'Docker CE Nightly - $basearch',
|
|
||||||
enabled => '0',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
yumrepo { 'docker-ce-nightly-debuginfo':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/debug-$basearch/nightly',
|
|
||||||
descr => 'Docker CE Nightly - Debuginfo $basearch',
|
|
||||||
enabled => '0',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
yumrepo { 'docker-ce-nightly-source':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/source/nightly',
|
|
||||||
descr => 'Docker CE Nightly - Sources',
|
|
||||||
enabled => '0',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
yumrepo { 'docker-ce-stable':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/$basearch/stable',
|
|
||||||
descr => 'Docker CE Stable - $basearch',
|
|
||||||
enabled => '1',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
yumrepo { 'docker-ce-stable-debuginfo':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/debug-$basearch/stable',
|
|
||||||
descr => 'Docker CE Stable - Debuginfo $basearch',
|
|
||||||
enabled => '0',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
yumrepo { 'docker-ce-stable-source':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/source/stable',
|
|
||||||
descr => 'Docker CE Stable - Sources',
|
|
||||||
enabled => '0',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
yumrepo { 'docker-ce-test':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/$basearch/test',
|
|
||||||
descr => 'Docker CE Test - $basearch',
|
|
||||||
enabled => '0',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
yumrepo { 'docker-ce-test-debuginfo':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/debug-$basearch/test',
|
|
||||||
descr => 'Docker CE Test - Debuginfo $basearch',
|
|
||||||
enabled => '0',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
yumrepo { 'docker-ce-test-source':
|
|
||||||
ensure => 'present',
|
|
||||||
baseurl => 'https://download.docker.com/linux/centos/7/source/test',
|
|
||||||
descr => 'Docker CE Test - Sources',
|
|
||||||
enabled => '0',
|
|
||||||
gpgcheck => '1',
|
|
||||||
gpgkey => 'https://download.docker.com/linux/centos/gpg',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,128 +0,0 @@
|
||||||
# this contains the mac specific stuff
|
|
||||||
class profile::mac {
|
|
||||||
# $path = '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin'
|
|
||||||
# notify{'This is from the mac profile.':}
|
|
||||||
# exec { 'install homebrew':
|
|
||||||
# command => '/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"',
|
|
||||||
# path => $path,
|
|
||||||
# creates => '/usr/local/bin/brew',
|
|
||||||
# }
|
|
||||||
|
|
||||||
$homedir = lookup('homedir')
|
|
||||||
|
|
||||||
#Package { provider => 'homebrew' }
|
|
||||||
$homebrew_packages = [
|
|
||||||
'bash-completion',
|
|
||||||
'bundler-completion',
|
|
||||||
'cmake',
|
|
||||||
'coreutils',
|
|
||||||
'csshx',
|
|
||||||
'docker-completion',
|
|
||||||
'elixir',
|
|
||||||
'erlang',
|
|
||||||
'figlet',
|
|
||||||
'git',
|
|
||||||
'git-flow',
|
|
||||||
'gnu-tar',
|
|
||||||
'hub',
|
|
||||||
'iftop',
|
|
||||||
'jq',
|
|
||||||
'kompose',
|
|
||||||
'mutt',
|
|
||||||
'ncftp',
|
|
||||||
'openssh',
|
|
||||||
'packer',
|
|
||||||
'python',
|
|
||||||
'ruby',
|
|
||||||
'sl',
|
|
||||||
'socat',
|
|
||||||
'terraform',
|
|
||||||
'tmux',
|
|
||||||
'tree',
|
|
||||||
'unrar',
|
|
||||||
'vagrant-completion',
|
|
||||||
'vim',
|
|
||||||
'watch',
|
|
||||||
'wget',
|
|
||||||
'zsh',
|
|
||||||
'zsh-completions',
|
|
||||||
]
|
|
||||||
|
|
||||||
package { $homebrew_packages:
|
|
||||||
ensure => 'installed',
|
|
||||||
provider => 'brew',
|
|
||||||
}
|
|
||||||
|
|
||||||
# $homebrew_casks = [
|
|
||||||
# '1password',
|
|
||||||
# 'adium',
|
|
||||||
# 'android-file-transfer',
|
|
||||||
# 'android-platform-tools',
|
|
||||||
# 'araxis-merge',
|
|
||||||
# 'atom',
|
|
||||||
# 'caffeine',
|
|
||||||
# 'docker',
|
|
||||||
# 'firefox',
|
|
||||||
# 'fliqlo',
|
|
||||||
# 'google-chrome',
|
|
||||||
# 'hipchat',
|
|
||||||
# 'iterm2',
|
|
||||||
# 'slack',
|
|
||||||
# 'sourcetree',
|
|
||||||
# 'visual-studio-code',
|
|
||||||
# ]
|
|
||||||
#
|
|
||||||
# package { $homebrew_casks:
|
|
||||||
# ensure => 'installed',
|
|
||||||
# provider => 'brewcask',
|
|
||||||
# }
|
|
||||||
|
|
||||||
$pip_packages = [
|
|
||||||
'psutil',
|
|
||||||
'powerline-status',
|
|
||||||
]
|
|
||||||
|
|
||||||
package { $pip_packages:
|
|
||||||
ensure => 'latest',
|
|
||||||
provider => 'pip',
|
|
||||||
require => Package['python'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { "${homedir}/repos":
|
|
||||||
ensure => 'directory',
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { "${homedir}/.vim/bundle/Vundle.vim":
|
|
||||||
ensure => 'latest',
|
|
||||||
provider => 'git',
|
|
||||||
source => 'https://github.com/VundleVim/Vundle.vim.git',
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { "${homedir}/repos/powerline-fonts":
|
|
||||||
ensure => 'latest',
|
|
||||||
provider => 'git',
|
|
||||||
source => 'https://github.com/powerline/fonts.git',
|
|
||||||
require => File["${homedir}/repos"],
|
|
||||||
notify => Exec['update-fonts'],
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'update-fonts':
|
|
||||||
command => "${homedir}/repos/powerline-fonts/install.sh",
|
|
||||||
cwd => "${homedir}/repos/powerline-fonts",
|
|
||||||
logoutput => true,
|
|
||||||
environment => "HOME=${homedir}",
|
|
||||||
refreshonly => true,
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { "${homedir}/.oh-my-zsh":
|
|
||||||
ensure => 'present',
|
|
||||||
provider => 'git',
|
|
||||||
source => 'https://github.com/robbyrussell/oh-my-zsh.git',
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { "${homedir}/.oh-my-zsh/custom/themes":
|
|
||||||
ensure => 'latest',
|
|
||||||
provider => 'git',
|
|
||||||
source => 'git@github.com:genebean/my-oh-zsh-themes.git',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
# Includes all the profiles needed for a server.
|
|
||||||
# One big difference between this and the workstation role is that you generally
|
|
||||||
# are not standing in front of the system and / or there is no graphical
|
|
||||||
# interface.
|
|
||||||
class role::server {
|
|
||||||
include profile::base
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
# Includes all the profiles needed for a workstation
|
|
||||||
class role::workstation {
|
|
||||||
include profile::base
|
|
||||||
|
|
||||||
case $facts['kernel'] {
|
|
||||||
'Darwin': {
|
|
||||||
include profile::mac
|
|
||||||
}
|
|
||||||
'Linux': {
|
|
||||||
include profile::linux
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
fail("${facts['kernel']} hasn't been setup in the workstation role yet.")
|
|
||||||
}
|
|
||||||
} # end of kernel case statement
|
|
||||||
}
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
---
|
|
||||||
cachedir: 'vendor/r10k'
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue