From 10e5e6b77385582c82f3dde4d698bcc6c8809919 Mon Sep 17 00:00:00 2001 From: Anthony Cicchetti Date: Tue, 30 Jul 2019 15:12:54 -0400 Subject: [PATCH 1/9] POC-ish for roles rework --- playbook/arch.yml | 6 +++ playbook/bootstrap | 11 ++++++ playbook/bootstrap-macos | 12 ++++++ playbook/defaults/main.yml | 2 + playbook/fedora.yml | 6 +++ playbook/input.yml | 17 +++++++++ playbook/inventory | 2 + playbook/launch | 19 ++++++++++ playbook/macos.yml | 5 +++ playbook/main.yml | 22 +++++++++++ playbook/roles/arch/tasks/main.yml | 1 + playbook/roles/common/defaults/main.yml | 4 ++ playbook/roles/common/tasks/alacritty.yml | 12 ++++++ playbook/roles/common/tasks/anyenv.yml | 45 +++++++++++++++++++++++ playbook/roles/common/tasks/git.yml | 9 +++++ playbook/roles/common/tasks/hyper.yml | 7 ++++ playbook/roles/common/tasks/kerl.yml | 11 ++++++ playbook/roles/common/tasks/main.yml | 21 +++++++++++ playbook/roles/common/tasks/neovim.yml | 13 +++++++ playbook/roles/common/tasks/rust.yml | 41 +++++++++++++++++++++ playbook/roles/common/tasks/sdkman.yml | 5 +++ playbook/roles/common/tasks/tmux.yml | 7 ++++ playbook/roles/common/tasks/zsh.yml | 12 ++++++ playbook/roles/fedora/tasks/main.yml | 28 ++++++++++++++ playbook/roles/macos/tasks/main.yml | 26 +++++++++++++ playbook/roles/ubuntu/tasks/main.yml | 21 +++++++++++ playbook/ubuntu.yml | 6 +++ 27 files changed, 371 insertions(+) create mode 100644 playbook/arch.yml create mode 100755 playbook/bootstrap create mode 100755 playbook/bootstrap-macos create mode 100644 playbook/defaults/main.yml create mode 100644 playbook/fedora.yml create mode 100644 playbook/input.yml create mode 100644 playbook/inventory create mode 100755 playbook/launch create mode 100644 playbook/macos.yml create mode 100644 playbook/main.yml create mode 100644 playbook/roles/arch/tasks/main.yml create mode 100644 playbook/roles/common/defaults/main.yml create mode 100644 playbook/roles/common/tasks/alacritty.yml create mode 100644 playbook/roles/common/tasks/anyenv.yml create mode 100644 playbook/roles/common/tasks/git.yml create mode 100644 playbook/roles/common/tasks/hyper.yml create mode 100644 playbook/roles/common/tasks/kerl.yml create mode 100644 playbook/roles/common/tasks/main.yml create mode 100644 playbook/roles/common/tasks/neovim.yml create mode 100644 playbook/roles/common/tasks/rust.yml create mode 100644 playbook/roles/common/tasks/sdkman.yml create mode 100644 playbook/roles/common/tasks/tmux.yml create mode 100644 playbook/roles/common/tasks/zsh.yml create mode 100644 playbook/roles/fedora/tasks/main.yml create mode 100644 playbook/roles/macos/tasks/main.yml create mode 100644 playbook/roles/ubuntu/tasks/main.yml create mode 100644 playbook/ubuntu.yml diff --git a/playbook/arch.yml b/playbook/arch.yml new file mode 100644 index 0000000..8327198 --- /dev/null +++ b/playbook/arch.yml @@ -0,0 +1,6 @@ +--- +- hosts: local + roles: + - role: arch + - role: common + diff --git a/playbook/bootstrap b/playbook/bootstrap new file mode 100755 index 0000000..67373e5 --- /dev/null +++ b/playbook/bootstrap @@ -0,0 +1,11 @@ +#!/bin/bash + +set -xe +if [[ -f /etc/lsb-release ]]; then + sudo apt update + sudo apt -y install zsh git python-pip aptitude curl cmake libreadline-dev +else + sudo dnf install -y zsh git cmake openssl-devel tmux gpg +fi + +pip3 install --user ansible diff --git a/playbook/bootstrap-macos b/playbook/bootstrap-macos new file mode 100755 index 0000000..c3d1bf4 --- /dev/null +++ b/playbook/bootstrap-macos @@ -0,0 +1,12 @@ +#!/bin/bash + +set -xe + +# no no no no I don't like it but… +/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + +brew install git cmake openssl tmux gpg + +sudo echo '/usr/local/bin/zsh' >> /etc/shells + +chsh -s /usr/local/bin/zsh diff --git a/playbook/defaults/main.yml b/playbook/defaults/main.yml new file mode 100644 index 0000000..2cf1b34 --- /dev/null +++ b/playbook/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: True diff --git a/playbook/fedora.yml b/playbook/fedora.yml new file mode 100644 index 0000000..fc7bd01 --- /dev/null +++ b/playbook/fedora.yml @@ -0,0 +1,6 @@ +--- +- hosts: local + roles: + - role: fedora + - role: common + diff --git a/playbook/input.yml b/playbook/input.yml new file mode 100644 index 0000000..b68b046 --- /dev/null +++ b/playbook/input.yml @@ -0,0 +1,17 @@ +--- +- name: Ask user for the input + hosts: localhost + tags: always + tasks: + - block: + - debug: + var: dev_machine + - name: Dev Machine prompt + pause: + prompt: "Is this a developer's machine? yes|no" + register: _dev_machine + when: + - dev_machine == 'yes' + - name: Set dev machine fact based on input + set_fact: + dev_machine: "{{ _dev_machine }}" diff --git a/playbook/inventory b/playbook/inventory new file mode 100644 index 0000000..13cfabe --- /dev/null +++ b/playbook/inventory @@ -0,0 +1,2 @@ +[local] +localhost ansible_connection=local diff --git a/playbook/launch b/playbook/launch new file mode 100755 index 0000000..d750f0a --- /dev/null +++ b/playbook/launch @@ -0,0 +1,19 @@ +#!/usr/bin/env sh +set -ex + +PATH="$PATH:$HOME/.local/bin" + +if [[ `uname` == "Linux" ]]; then + if [[ -f /etc/pacman.conf ]]; then + ansible-playbook -i inventory arch.yml + elif [[ -f /etc/lsb-release ]]; then + ansible-playbook -i inventory ubuntu.yml + elif [[ -f /etc/fedora-release ]]; then + ansible-playbook -i inventory fedora.yml + else + echo "can't autodetermine distro, just running default inventory" + ansible-playbook -i inventory common.yml + fi +else + ansible-playbook -i inventory osx.yml +fi diff --git a/playbook/macos.yml b/playbook/macos.yml new file mode 100644 index 0000000..d77889a --- /dev/null +++ b/playbook/macos.yml @@ -0,0 +1,5 @@ +--- +- hosts: local + roles: + - role: common + - role: osx diff --git a/playbook/main.yml b/playbook/main.yml new file mode 100644 index 0000000..d8a740a --- /dev/null +++ b/playbook/main.yml @@ -0,0 +1,22 @@ +--- +# - name: Include prompts playbook +# import_playbook: input.yml + +- name: Find out what kind of host we are + hosts: all + tasks: + - name: Classify host + group_by: + key: os_{{ ansible_facts['distribution'] }} + +- hosts: os_MacOSX + gather_facts: True + roles: + - common + - macos + +- hosts: os_Fedora + gather_facts: True + roles: + - common + - fedora diff --git a/playbook/roles/arch/tasks/main.yml b/playbook/roles/arch/tasks/main.yml new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/playbook/roles/arch/tasks/main.yml @@ -0,0 +1 @@ + diff --git a/playbook/roles/common/defaults/main.yml b/playbook/roles/common/defaults/main.yml new file mode 100644 index 0000000..ff17851 --- /dev/null +++ b/playbook/roles/common/defaults/main.yml @@ -0,0 +1,4 @@ +--- +user_name: "Anthony Cicchetti" +user_email: "anthony@anthonycicchetti.com" +dev_machine: yes diff --git a/playbook/roles/common/tasks/alacritty.yml b/playbook/roles/common/tasks/alacritty.yml new file mode 100644 index 0000000..481aab4 --- /dev/null +++ b/playbook/roles/common/tasks/alacritty.yml @@ -0,0 +1,12 @@ +--- +- name: alacritty dir setup + file: + path: "$HOME/.config/alacritty/" + state: directory + +- name: alacritty.conf setup + file: + src: "$HOME/.dotfiles/alacritty/alacritty.yml" + dest: "$HOME/.config/alacritty/alacritty.yml" + state: link + diff --git a/playbook/roles/common/tasks/anyenv.yml b/playbook/roles/common/tasks/anyenv.yml new file mode 100644 index 0000000..549f592 --- /dev/null +++ b/playbook/roles/common/tasks/anyenv.yml @@ -0,0 +1,45 @@ +--- +- name: Install anyenv + git: + repo: https://github.com/anyenv/anyenv + dest: ~/.anyenv + +- name: Ensure anyenv got installed + file: + path: ~/.anyenv + state: directory + +- name: Ensure anyenv is initialized + shell: ~/.anyenv/bin/anyenv install --force-init + args: + creates: ~/.config/anyenv/anyenv-install + +- name: anyenv - pyenv + shell: ~/.anyenv/bin/anyenv install pyenv + args: + creates: ~/.anyenv/envs/pyenv + +- name: anyenv - rbenv + shell: ~/.anyenv/bin/anyenv install rbenv + args: + creates: ~/.anyenv/envs/rbenv + +- name: anyenv - rbenv-gemset + git: + repo: https://github.com/jf/rbenv-gemset + dest: ~/.anyenv/envs/rbenv/plugins/rbenv-gemset + +- name: anyenv - nodejs + shell: ~/.anyenv/bin/anyenv install nodenv + args: + creates: ~/.anyenv/envs/nodenv + +- name: anyenv - erlang + shell: ~/.anyenv/bin/anyenv install erlenv + args: + creates: ~/.anyenv/envs/erlenv + +- name: anyenv - elixir + shell: ~/.anyenv/bin/anyenv install exenv + args: + creates: ~/.anyenv/envs/exenv diff --git a/playbook/roles/common/tasks/git.yml b/playbook/roles/common/tasks/git.yml new file mode 100644 index 0000000..363273b --- /dev/null +++ b/playbook/roles/common/tasks/git.yml @@ -0,0 +1,9 @@ +--- +- name: Set up gitconfig + shell: git config --global user.name "{{user_name}}" && git config --global user.email {{user_email}} + args: + creates: ~/.gitconfig + +- name: Add git pushall alias + shell: git config --global alias.pushall '!git remote | xargs -L1 git push --all' + diff --git a/playbook/roles/common/tasks/hyper.yml b/playbook/roles/common/tasks/hyper.yml new file mode 100644 index 0000000..9da19ca --- /dev/null +++ b/playbook/roles/common/tasks/hyper.yml @@ -0,0 +1,7 @@ +--- +- name: hyper.js setup + file: + src: "$HOME/.dotfiles/hyperterm/hyper.js" + dest: "$HOME/.hyper.js" + state: link + diff --git a/playbook/roles/common/tasks/kerl.yml b/playbook/roles/common/tasks/kerl.yml new file mode 100644 index 0000000..0c98502 --- /dev/null +++ b/playbook/roles/common/tasks/kerl.yml @@ -0,0 +1,11 @@ +--- +- name: Create ~/bin directory + file: + path: ~/bin + state: directory + +- name: Download kerl + get_url: + url: https://raw.githubusercontent.com/kerl/kerl/master/kerl + dest: ~/bin/kerl + mode: 0755 diff --git a/playbook/roles/common/tasks/main.yml b/playbook/roles/common/tasks/main.yml new file mode 100644 index 0000000..a1b202d --- /dev/null +++ b/playbook/roles/common/tasks/main.yml @@ -0,0 +1,21 @@ +--- +- debug: + var: dev_machine +- import_tasks: anyenv.yml + when: + - dev_machine == 'yes' +# - import_tasks: neovim.yml +# - import_tasks: rust.yml +# - import_tasks: tmux.yml +# - import_tasks: alacritty.yml +# - import_tasks: hyper.yml +# - import_tasks: kerl.yml +- import_tasks: git.yml +# - import_tasks: zsh.yml +# - import_tasks: sdkman.yml + + +- name: Create ~/bin directory + file: + path: ~/bin + state: directory diff --git a/playbook/roles/common/tasks/neovim.yml b/playbook/roles/common/tasks/neovim.yml new file mode 100644 index 0000000..f215660 --- /dev/null +++ b/playbook/roles/common/tasks/neovim.yml @@ -0,0 +1,13 @@ +--- +- name: Ensure neovim config directory exists + file: + path: ~/.config/nvim/ + state: directory + +- name: Symlink init.vim + file: + src: ~/.dotfiles/vim/vimrc + dest: ~/.config/nvim/init.vim + state: link + force: yes + diff --git a/playbook/roles/common/tasks/rust.yml b/playbook/roles/common/tasks/rust.yml new file mode 100644 index 0000000..f0eefbe --- /dev/null +++ b/playbook/roles/common/tasks/rust.yml @@ -0,0 +1,41 @@ +--- +- name: Download Rust + get_url: + url: https://sh.rustup.rs + dest: /tmp/install_rust.sh + mode: 0755 + +- name: Install Rust + shell: /tmp/install_rust.sh -y + args: + creates: ~/.cargo + +- name: Install ripgrep + shell: ~/.cargo/bin/cargo install ripgrep + args: + creates: ~/.cargo/bin/rg + +- name: Install exa + shell: ~/.cargo/bin/cargo install exa + args: + creates: ~/.cargo/bin/exa + +- name: Install just + shell: ~/.cargo/bin/cargo install just + args: + creates: ~/.cargo/bin/just + +- name: Install cargo-update + shell: ~/.cargo/bin/cargo install cargo-update + args: + creates: ~/.cargo/bin/cargo-install-update + +- name: Install bat + shell: ~/.cargo/bin/cargo install bat + args: + creates: ~/.cargo/bin/bat + +- name: Install rls + shell: ~/.cargo/bin/rustup component add rls-preview rust-analysis rust-src + args: + creates: ~/.cargo/bin/rls diff --git a/playbook/roles/common/tasks/sdkman.yml b/playbook/roles/common/tasks/sdkman.yml new file mode 100644 index 0000000..4a3b98a --- /dev/null +++ b/playbook/roles/common/tasks/sdkman.yml @@ -0,0 +1,5 @@ +--- +- name: Install SDKMan + shell: curl -s https://get.sdkman.io | zsh + args: + creates: ~/.sdkman/bin/sdkman-init.sh diff --git a/playbook/roles/common/tasks/tmux.yml b/playbook/roles/common/tasks/tmux.yml new file mode 100644 index 0000000..9313e73 --- /dev/null +++ b/playbook/roles/common/tasks/tmux.yml @@ -0,0 +1,7 @@ +--- +- name: Symlink tmux.conf + file: + src: ~/.dotfiles/tmux/tmux.conf + dest: ~/.tmux.conf + state: link + force: yes diff --git a/playbook/roles/common/tasks/zsh.yml b/playbook/roles/common/tasks/zsh.yml new file mode 100644 index 0000000..6ca21b3 --- /dev/null +++ b/playbook/roles/common/tasks/zsh.yml @@ -0,0 +1,12 @@ +--- +- name: Install antigen + git: + repo: https://github.com/zsh-users/antigen.git + dest: ~/.antigen + +- name: Symlink zshrc + file: + src: ~/.dotfiles/zsh/zshrc + dest: ~/.zshrc + state: link + force: yes diff --git a/playbook/roles/fedora/tasks/main.yml b/playbook/roles/fedora/tasks/main.yml new file mode 100644 index 0000000..de0961b --- /dev/null +++ b/playbook/roles/fedora/tasks/main.yml @@ -0,0 +1,28 @@ +--- +# - name: Update Packages +# become: yes +# become_method: sudo +# dnf: +# name: "*" +# state: latest + +# - name: Install neovim +# become: yes +# become_method: sudo +# dnf: +# name: "neovim" +# state: latest + +# - name: Install @development-tools +# become: yes +# become_method: sudo +# dnf: +# name: "@development-tools" +# state: latest + +# - name: Install openssl-dev +# become: yes +# become_method: sudo +# dnf: +# name: "openssl-devel" +# state: latest diff --git a/playbook/roles/macos/tasks/main.yml b/playbook/roles/macos/tasks/main.yml new file mode 100644 index 0000000..cb5db4f --- /dev/null +++ b/playbook/roles/macos/tasks/main.yml @@ -0,0 +1,26 @@ +--- +- name: Homebrew Update + homebrew: + update_homebrew: yes + upgrade_all: yes + +- name: Homebrew - install neovim + homebrew: + update_homebrew: yes + name: neovim + +- name: Homebrew - Install git + homebrew: + update_homebrew: yes + name: git + +- name: Homebrew - Install zsh + homebrew: + update_homebrew: yes + name: zsh + install_options: with-gdbm with-pcre with-unicode9 + +- name: Homebrew - Install gnu-tar and zstd + homebrew: + update_homebrew: yes + name: gnu-tar,zstd diff --git a/playbook/roles/ubuntu/tasks/main.yml b/playbook/roles/ubuntu/tasks/main.yml new file mode 100644 index 0000000..fa49617 --- /dev/null +++ b/playbook/roles/ubuntu/tasks/main.yml @@ -0,0 +1,21 @@ +- name: Update Packages + become: yes + become_method: sudo + apt: + name: "*" + state: latest + +- name: Install neovim + become: yes + become_method: sudo + apt: + name: "neovim" + state: latest + +- name: Install build-essential + become: yes + become_method: sudo + apt: + name: "build-essential" + state: latest + diff --git a/playbook/ubuntu.yml b/playbook/ubuntu.yml new file mode 100644 index 0000000..92b2638 --- /dev/null +++ b/playbook/ubuntu.yml @@ -0,0 +1,6 @@ +--- +- hosts: local + roles: + - role: ubuntu + - role: common + -- 2.48.1 From 67cc66c82d6d08eada9748f417f48ecb1d5f49ac Mon Sep 17 00:00:00 2001 From: Anthony Cicchetti Date: Tue, 30 Jul 2019 18:33:57 -0400 Subject: [PATCH 2/9] Basics in place, Fedora is done --- playbook/input.yml | 24 +++++---- playbook/main.yml | 22 +++++--- playbook/roles/alacritty/defaults/main.yml | 2 + .../tasks/main.yml} | 0 playbook/roles/anyenv/defaults/main.yml | 2 + .../anyenv.yml => anyenv/tasks/main.yml} | 0 playbook/roles/arch/defaults/main.yml | 2 + playbook/roles/common/tasks/main.yml | 48 +++++++++++++---- playbook/roles/fedora/defaults/main.yml | 2 + playbook/roles/fedora/tasks/main.yml | 52 ++++++++++--------- playbook/roles/git/defaults/main.yml | 2 + .../tasks/git.yml => git/tasks/main.yml} | 0 playbook/roles/hyper/defaults/main.yml | 2 + .../tasks/hyper.yml => hyper/tasks/main.yml} | 0 playbook/roles/kerl/defaults/main.yml | 2 + .../tasks/kerl.yml => kerl/tasks/main.yml} | 0 playbook/roles/macos/defaults/main.yml | 2 + playbook/roles/neovim/defaults/main.yml | 2 + .../neovim.yml => neovim/tasks/main.yml} | 0 playbook/roles/rust/defaults/main.yml | 3 ++ .../tasks/rust.yml => rust/tasks/main.yml} | 12 +++++ playbook/roles/sdkman/defaults/main.yml | 2 + .../sdkman.yml => sdkman/tasks/main.yml} | 0 playbook/roles/tmux/defaults/main.yml | 2 + .../tasks/tmux.yml => tmux/tasks/main.yml} | 0 playbook/roles/ubuntu/defaults/main.yml | 2 + playbook/roles/zsh/defaults/main.yml | 2 + .../tasks/zsh.yml => zsh/tasks/main.yml} | 0 28 files changed, 136 insertions(+), 51 deletions(-) create mode 100644 playbook/roles/alacritty/defaults/main.yml rename playbook/roles/{common/tasks/alacritty.yml => alacritty/tasks/main.yml} (100%) create mode 100644 playbook/roles/anyenv/defaults/main.yml rename playbook/roles/{common/tasks/anyenv.yml => anyenv/tasks/main.yml} (100%) create mode 100644 playbook/roles/arch/defaults/main.yml create mode 100644 playbook/roles/fedora/defaults/main.yml create mode 100644 playbook/roles/git/defaults/main.yml rename playbook/roles/{common/tasks/git.yml => git/tasks/main.yml} (100%) create mode 100644 playbook/roles/hyper/defaults/main.yml rename playbook/roles/{common/tasks/hyper.yml => hyper/tasks/main.yml} (100%) create mode 100644 playbook/roles/kerl/defaults/main.yml rename playbook/roles/{common/tasks/kerl.yml => kerl/tasks/main.yml} (100%) create mode 100644 playbook/roles/macos/defaults/main.yml create mode 100644 playbook/roles/neovim/defaults/main.yml rename playbook/roles/{common/tasks/neovim.yml => neovim/tasks/main.yml} (100%) create mode 100644 playbook/roles/rust/defaults/main.yml rename playbook/roles/{common/tasks/rust.yml => rust/tasks/main.yml} (81%) create mode 100644 playbook/roles/sdkman/defaults/main.yml rename playbook/roles/{common/tasks/sdkman.yml => sdkman/tasks/main.yml} (100%) create mode 100644 playbook/roles/tmux/defaults/main.yml rename playbook/roles/{common/tasks/tmux.yml => tmux/tasks/main.yml} (100%) create mode 100644 playbook/roles/ubuntu/defaults/main.yml create mode 100644 playbook/roles/zsh/defaults/main.yml rename playbook/roles/{common/tasks/zsh.yml => zsh/tasks/main.yml} (100%) diff --git a/playbook/input.yml b/playbook/input.yml index b68b046..eaad757 100644 --- a/playbook/input.yml +++ b/playbook/input.yml @@ -2,16 +2,20 @@ - name: Ask user for the input hosts: localhost tags: always + vars_prompt: + - name: _dev_machine + prompt: "Is this a developer's machine?" + private: no + default: "yes" + - name: _rust_extras + prompt: "Do you want to install rust extras?" + private: no + default: "no" tasks: - block: - - debug: - var: dev_machine - - name: Dev Machine prompt - pause: - prompt: "Is this a developer's machine? yes|no" - register: _dev_machine - when: - - dev_machine == 'yes' - - name: Set dev machine fact based on input + - name: Set dev machine fact set_fact: - dev_machine: "{{ _dev_machine }}" + _dev_machine: "{{ _dev_machine }}" + - name: Set rust extras fact + set_fact: + _rust_extras: "{{ _rust_extras }}" diff --git a/playbook/main.yml b/playbook/main.yml index d8a740a..d39064c 100644 --- a/playbook/main.yml +++ b/playbook/main.yml @@ -1,6 +1,6 @@ --- -# - name: Include prompts playbook -# import_playbook: input.yml +- name: Include prompts playbook + import_playbook: input.yml - name: Find out what kind of host we are hosts: all @@ -12,11 +12,21 @@ - hosts: os_MacOSX gather_facts: True roles: - - common - - macos + - role: macos + vars: + - dev_machine: "{{ _dev_machine }}" + - role: common + vars: + - dev_machine: "{{ _dev_machine }}" + - rust_extras: "{{ _rust_extras }}" - hosts: os_Fedora gather_facts: True roles: - - common - - fedora + - role: fedora + vars: + dev_machine: "{{ _dev_machine }}" + - role: common + vars: + - dev_machine: "{{ _dev_machine }}" + - rust_extras: "{{ _rust_extras }}" diff --git a/playbook/roles/alacritty/defaults/main.yml b/playbook/roles/alacritty/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/alacritty/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/alacritty.yml b/playbook/roles/alacritty/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/alacritty.yml rename to playbook/roles/alacritty/tasks/main.yml diff --git a/playbook/roles/anyenv/defaults/main.yml b/playbook/roles/anyenv/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/anyenv/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/anyenv.yml b/playbook/roles/anyenv/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/anyenv.yml rename to playbook/roles/anyenv/tasks/main.yml diff --git a/playbook/roles/arch/defaults/main.yml b/playbook/roles/arch/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/arch/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/main.yml b/playbook/roles/common/tasks/main.yml index a1b202d..4bc4791 100644 --- a/playbook/roles/common/tasks/main.yml +++ b/playbook/roles/common/tasks/main.yml @@ -1,18 +1,44 @@ --- - debug: var: dev_machine -- import_tasks: anyenv.yml +- import_role: + name: anyenv when: - - dev_machine == 'yes' -# - import_tasks: neovim.yml -# - import_tasks: rust.yml -# - import_tasks: tmux.yml -# - import_tasks: alacritty.yml -# - import_tasks: hyper.yml -# - import_tasks: kerl.yml -- import_tasks: git.yml -# - import_tasks: zsh.yml -# - import_tasks: sdkman.yml + - dev_machine == true +- import_role: + name: neovim +- import_role: + name: rust + vars: + - rust_extras: rust_extras + when: + - dev_machine == true +- import_role: + name: tmux + when: + - dev_machine == true +- import_role: + name: alacritty + when: + - dev_machine == true +- import_role: + name: hyper + when: + - dev_machine == true +- import_role: + name: kerl + when: + - dev_machine == true +- import_role: + name: git + when: + - dev_machine == "yes" +- import_role: + name: zsh +- import_role: + name: sdkman + when: + - dev_machine == true - name: Create ~/bin directory diff --git a/playbook/roles/fedora/defaults/main.yml b/playbook/roles/fedora/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/fedora/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/fedora/tasks/main.yml b/playbook/roles/fedora/tasks/main.yml index de0961b..19119b7 100644 --- a/playbook/roles/fedora/tasks/main.yml +++ b/playbook/roles/fedora/tasks/main.yml @@ -1,28 +1,32 @@ --- -# - name: Update Packages -# become: yes -# become_method: sudo -# dnf: -# name: "*" -# state: latest +- name: Update Packages + become: yes + become_method: sudo + dnf: + name: "*" + state: latest -# - name: Install neovim -# become: yes -# become_method: sudo -# dnf: -# name: "neovim" -# state: latest +- name: Install basics + become: yes + become_method: sudo + dnf: + name: + - zsh + - git + - cmake + - tmux + - gpg + - neovim + state: latest -# - name: Install @development-tools -# become: yes -# become_method: sudo -# dnf: -# name: "@development-tools" -# state: latest +- name: Install @development-tools + when: + - dev_machine == true + become: yes + become_method: sudo + dnf: + name: + - "@development-tools" + - openssl-dev + state: latest -# - name: Install openssl-dev -# become: yes -# become_method: sudo -# dnf: -# name: "openssl-devel" -# state: latest diff --git a/playbook/roles/git/defaults/main.yml b/playbook/roles/git/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/git/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/git.yml b/playbook/roles/git/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/git.yml rename to playbook/roles/git/tasks/main.yml diff --git a/playbook/roles/hyper/defaults/main.yml b/playbook/roles/hyper/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/hyper/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/hyper.yml b/playbook/roles/hyper/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/hyper.yml rename to playbook/roles/hyper/tasks/main.yml diff --git a/playbook/roles/kerl/defaults/main.yml b/playbook/roles/kerl/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/kerl/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/kerl.yml b/playbook/roles/kerl/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/kerl.yml rename to playbook/roles/kerl/tasks/main.yml diff --git a/playbook/roles/macos/defaults/main.yml b/playbook/roles/macos/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/macos/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/neovim/defaults/main.yml b/playbook/roles/neovim/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/neovim/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/neovim.yml b/playbook/roles/neovim/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/neovim.yml rename to playbook/roles/neovim/tasks/main.yml diff --git a/playbook/roles/rust/defaults/main.yml b/playbook/roles/rust/defaults/main.yml new file mode 100644 index 0000000..fc2c359 --- /dev/null +++ b/playbook/roles/rust/defaults/main.yml @@ -0,0 +1,3 @@ +--- +dev_machine: yes +rust_extras: no diff --git a/playbook/roles/common/tasks/rust.yml b/playbook/roles/rust/tasks/main.yml similarity index 81% rename from playbook/roles/common/tasks/rust.yml rename to playbook/roles/rust/tasks/main.yml index f0eefbe..681c468 100644 --- a/playbook/roles/common/tasks/rust.yml +++ b/playbook/roles/rust/tasks/main.yml @@ -14,28 +14,40 @@ shell: ~/.cargo/bin/cargo install ripgrep args: creates: ~/.cargo/bin/rg + when: + - rust_extras == true - name: Install exa shell: ~/.cargo/bin/cargo install exa args: creates: ~/.cargo/bin/exa + when: + - rust_extras == true - name: Install just shell: ~/.cargo/bin/cargo install just args: creates: ~/.cargo/bin/just + when: + - rust_extras == true - name: Install cargo-update shell: ~/.cargo/bin/cargo install cargo-update args: creates: ~/.cargo/bin/cargo-install-update + when: + - rust_extras == true - name: Install bat shell: ~/.cargo/bin/cargo install bat args: creates: ~/.cargo/bin/bat + when: + - rust_extras == true - name: Install rls shell: ~/.cargo/bin/rustup component add rls-preview rust-analysis rust-src args: creates: ~/.cargo/bin/rls + when: + - rust_extras == true diff --git a/playbook/roles/sdkman/defaults/main.yml b/playbook/roles/sdkman/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/sdkman/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/sdkman.yml b/playbook/roles/sdkman/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/sdkman.yml rename to playbook/roles/sdkman/tasks/main.yml diff --git a/playbook/roles/tmux/defaults/main.yml b/playbook/roles/tmux/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/tmux/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/tmux.yml b/playbook/roles/tmux/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/tmux.yml rename to playbook/roles/tmux/tasks/main.yml diff --git a/playbook/roles/ubuntu/defaults/main.yml b/playbook/roles/ubuntu/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/ubuntu/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/zsh/defaults/main.yml b/playbook/roles/zsh/defaults/main.yml new file mode 100644 index 0000000..3660559 --- /dev/null +++ b/playbook/roles/zsh/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_machine: yes diff --git a/playbook/roles/common/tasks/zsh.yml b/playbook/roles/zsh/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/zsh.yml rename to playbook/roles/zsh/tasks/main.yml -- 2.48.1 From 8a58c3eeeef7992f92b7808d0039eb610bd0ddad Mon Sep 17 00:00:00 2001 From: Anthony Cicchetti Date: Tue, 30 Jul 2019 18:40:51 -0400 Subject: [PATCH 3/9] Cleaned up --- playbook/defaults/main.yml | 2 - playbook/fedora.yml | 6 --- playbook/macos.yml | 5 --- playbooks/arch.yml | 6 --- playbooks/bootstrap | 11 ------ playbooks/bootstrap-macos | 12 ------ playbooks/common.yml | 4 -- playbooks/fedora.yml | 6 --- playbooks/inventory | 2 - playbooks/launch | 19 --------- playbooks/osx.yml | 5 --- playbooks/roles/arch/tasks/main.yml | 1 - playbooks/roles/common/tasks/alacritty.yml | 12 ------ playbooks/roles/common/tasks/anyenv.yml | 45 ---------------------- playbooks/roles/common/tasks/hyper.yml | 7 ---- playbooks/roles/common/tasks/kerl.yml | 11 ------ playbooks/roles/common/tasks/main.yml | 30 --------------- playbooks/roles/common/tasks/neovim.yml | 13 ------- playbooks/roles/common/tasks/rust.yml | 41 -------------------- playbooks/roles/common/tasks/tmux.yml | 7 ---- playbooks/roles/fedora/tasks/main.yml | 28 -------------- playbooks/roles/osx/tasks/main.yml | 26 ------------- playbooks/roles/ubuntu/tasks/main.yml | 21 ---------- playbooks/ubuntu.yml | 6 --- 24 files changed, 326 deletions(-) delete mode 100644 playbook/defaults/main.yml delete mode 100644 playbook/fedora.yml delete mode 100644 playbook/macos.yml delete mode 100644 playbooks/arch.yml delete mode 100755 playbooks/bootstrap delete mode 100755 playbooks/bootstrap-macos delete mode 100644 playbooks/common.yml delete mode 100644 playbooks/fedora.yml delete mode 100644 playbooks/inventory delete mode 100755 playbooks/launch delete mode 100644 playbooks/osx.yml delete mode 100644 playbooks/roles/arch/tasks/main.yml delete mode 100644 playbooks/roles/common/tasks/alacritty.yml delete mode 100644 playbooks/roles/common/tasks/anyenv.yml delete mode 100644 playbooks/roles/common/tasks/hyper.yml delete mode 100644 playbooks/roles/common/tasks/kerl.yml delete mode 100644 playbooks/roles/common/tasks/main.yml delete mode 100644 playbooks/roles/common/tasks/neovim.yml delete mode 100644 playbooks/roles/common/tasks/rust.yml delete mode 100644 playbooks/roles/common/tasks/tmux.yml delete mode 100644 playbooks/roles/fedora/tasks/main.yml delete mode 100644 playbooks/roles/osx/tasks/main.yml delete mode 100644 playbooks/roles/ubuntu/tasks/main.yml delete mode 100644 playbooks/ubuntu.yml diff --git a/playbook/defaults/main.yml b/playbook/defaults/main.yml deleted file mode 100644 index 2cf1b34..0000000 --- a/playbook/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -dev_machine: True diff --git a/playbook/fedora.yml b/playbook/fedora.yml deleted file mode 100644 index fc7bd01..0000000 --- a/playbook/fedora.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- hosts: local - roles: - - role: fedora - - role: common - diff --git a/playbook/macos.yml b/playbook/macos.yml deleted file mode 100644 index d77889a..0000000 --- a/playbook/macos.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: local - roles: - - role: common - - role: osx diff --git a/playbooks/arch.yml b/playbooks/arch.yml deleted file mode 100644 index 8327198..0000000 --- a/playbooks/arch.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- hosts: local - roles: - - role: arch - - role: common - diff --git a/playbooks/bootstrap b/playbooks/bootstrap deleted file mode 100755 index 67373e5..0000000 --- a/playbooks/bootstrap +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -xe -if [[ -f /etc/lsb-release ]]; then - sudo apt update - sudo apt -y install zsh git python-pip aptitude curl cmake libreadline-dev -else - sudo dnf install -y zsh git cmake openssl-devel tmux gpg -fi - -pip3 install --user ansible diff --git a/playbooks/bootstrap-macos b/playbooks/bootstrap-macos deleted file mode 100755 index c3d1bf4..0000000 --- a/playbooks/bootstrap-macos +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -set -xe - -# no no no no I don't like it but… -/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - -brew install git cmake openssl tmux gpg - -sudo echo '/usr/local/bin/zsh' >> /etc/shells - -chsh -s /usr/local/bin/zsh diff --git a/playbooks/common.yml b/playbooks/common.yml deleted file mode 100644 index 4b1ca99..0000000 --- a/playbooks/common.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -- hosts: local - roles: - - role: common diff --git a/playbooks/fedora.yml b/playbooks/fedora.yml deleted file mode 100644 index fc7bd01..0000000 --- a/playbooks/fedora.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- hosts: local - roles: - - role: fedora - - role: common - diff --git a/playbooks/inventory b/playbooks/inventory deleted file mode 100644 index 13cfabe..0000000 --- a/playbooks/inventory +++ /dev/null @@ -1,2 +0,0 @@ -[local] -localhost ansible_connection=local diff --git a/playbooks/launch b/playbooks/launch deleted file mode 100755 index 4875f83..0000000 --- a/playbooks/launch +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env zsh -set -ex - -PATH="$PATH:$HOME/.local/bin" - -if [[ `uname` == "Linux" ]]; then - if [[ -f /etc/pacman.conf ]]; then - ansible-playbook -i inventory arch.yml - elif [[ -f /etc/lsb-release ]]; then - ansible-playbook -i inventory ubuntu.yml - elif [[ -f /etc/fedora-release ]]; then - ansible-playbook -i inventory fedora.yml - else - echo "can't autodetermine distro, just running default inventory" - ansible-playbook -i inventory common.yml - fi -else - ansible-playbook -i inventory osx.yml -fi diff --git a/playbooks/osx.yml b/playbooks/osx.yml deleted file mode 100644 index d77889a..0000000 --- a/playbooks/osx.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: local - roles: - - role: common - - role: osx diff --git a/playbooks/roles/arch/tasks/main.yml b/playbooks/roles/arch/tasks/main.yml deleted file mode 100644 index 8b13789..0000000 --- a/playbooks/roles/arch/tasks/main.yml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/playbooks/roles/common/tasks/alacritty.yml b/playbooks/roles/common/tasks/alacritty.yml deleted file mode 100644 index 481aab4..0000000 --- a/playbooks/roles/common/tasks/alacritty.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -- name: alacritty dir setup - file: - path: "$HOME/.config/alacritty/" - state: directory - -- name: alacritty.conf setup - file: - src: "$HOME/.dotfiles/alacritty/alacritty.yml" - dest: "$HOME/.config/alacritty/alacritty.yml" - state: link - diff --git a/playbooks/roles/common/tasks/anyenv.yml b/playbooks/roles/common/tasks/anyenv.yml deleted file mode 100644 index 549f592..0000000 --- a/playbooks/roles/common/tasks/anyenv.yml +++ /dev/null @@ -1,45 +0,0 @@ ---- -- name: Install anyenv - git: - repo: https://github.com/anyenv/anyenv - dest: ~/.anyenv - -- name: Ensure anyenv got installed - file: - path: ~/.anyenv - state: directory - -- name: Ensure anyenv is initialized - shell: ~/.anyenv/bin/anyenv install --force-init - args: - creates: ~/.config/anyenv/anyenv-install - -- name: anyenv - pyenv - shell: ~/.anyenv/bin/anyenv install pyenv - args: - creates: ~/.anyenv/envs/pyenv - -- name: anyenv - rbenv - shell: ~/.anyenv/bin/anyenv install rbenv - args: - creates: ~/.anyenv/envs/rbenv - -- name: anyenv - rbenv-gemset - git: - repo: https://github.com/jf/rbenv-gemset - dest: ~/.anyenv/envs/rbenv/plugins/rbenv-gemset - -- name: anyenv - nodejs - shell: ~/.anyenv/bin/anyenv install nodenv - args: - creates: ~/.anyenv/envs/nodenv - -- name: anyenv - erlang - shell: ~/.anyenv/bin/anyenv install erlenv - args: - creates: ~/.anyenv/envs/erlenv - -- name: anyenv - elixir - shell: ~/.anyenv/bin/anyenv install exenv - args: - creates: ~/.anyenv/envs/exenv diff --git a/playbooks/roles/common/tasks/hyper.yml b/playbooks/roles/common/tasks/hyper.yml deleted file mode 100644 index 9da19ca..0000000 --- a/playbooks/roles/common/tasks/hyper.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- name: hyper.js setup - file: - src: "$HOME/.dotfiles/hyperterm/hyper.js" - dest: "$HOME/.hyper.js" - state: link - diff --git a/playbooks/roles/common/tasks/kerl.yml b/playbooks/roles/common/tasks/kerl.yml deleted file mode 100644 index 0c98502..0000000 --- a/playbooks/roles/common/tasks/kerl.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -- name: Create ~/bin directory - file: - path: ~/bin - state: directory - -- name: Download kerl - get_url: - url: https://raw.githubusercontent.com/kerl/kerl/master/kerl - dest: ~/bin/kerl - mode: 0755 diff --git a/playbooks/roles/common/tasks/main.yml b/playbooks/roles/common/tasks/main.yml deleted file mode 100644 index e8008b2..0000000 --- a/playbooks/roles/common/tasks/main.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- -- import_tasks: anyenv.yml -- import_tasks: neovim.yml -- import_tasks: rust.yml -- import_tasks: tmux.yml -- import_tasks: alacritty.yml -- import_tasks: hyper.yml -- import_tasks: kerl.yml - -- name: Install antigen - git: - repo: https://github.com/zsh-users/antigen.git - dest: ~/.antigen - -- name: Symlink zshrc - file: - src: ~/.dotfiles/zsh/zshrc - dest: ~/.zshrc - state: link - force: yes - -- name: Install SDKMan - shell: curl -s https://get.sdkman.io | zsh - args: - creates: ~/.sdkman/bin/sdkman-init.sh - -- name: Create ~/bin directory - file: - path: ~/bin - state: directory diff --git a/playbooks/roles/common/tasks/neovim.yml b/playbooks/roles/common/tasks/neovim.yml deleted file mode 100644 index f215660..0000000 --- a/playbooks/roles/common/tasks/neovim.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- name: Ensure neovim config directory exists - file: - path: ~/.config/nvim/ - state: directory - -- name: Symlink init.vim - file: - src: ~/.dotfiles/vim/vimrc - dest: ~/.config/nvim/init.vim - state: link - force: yes - diff --git a/playbooks/roles/common/tasks/rust.yml b/playbooks/roles/common/tasks/rust.yml deleted file mode 100644 index f0eefbe..0000000 --- a/playbooks/roles/common/tasks/rust.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- -- name: Download Rust - get_url: - url: https://sh.rustup.rs - dest: /tmp/install_rust.sh - mode: 0755 - -- name: Install Rust - shell: /tmp/install_rust.sh -y - args: - creates: ~/.cargo - -- name: Install ripgrep - shell: ~/.cargo/bin/cargo install ripgrep - args: - creates: ~/.cargo/bin/rg - -- name: Install exa - shell: ~/.cargo/bin/cargo install exa - args: - creates: ~/.cargo/bin/exa - -- name: Install just - shell: ~/.cargo/bin/cargo install just - args: - creates: ~/.cargo/bin/just - -- name: Install cargo-update - shell: ~/.cargo/bin/cargo install cargo-update - args: - creates: ~/.cargo/bin/cargo-install-update - -- name: Install bat - shell: ~/.cargo/bin/cargo install bat - args: - creates: ~/.cargo/bin/bat - -- name: Install rls - shell: ~/.cargo/bin/rustup component add rls-preview rust-analysis rust-src - args: - creates: ~/.cargo/bin/rls diff --git a/playbooks/roles/common/tasks/tmux.yml b/playbooks/roles/common/tasks/tmux.yml deleted file mode 100644 index 9313e73..0000000 --- a/playbooks/roles/common/tasks/tmux.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- name: Symlink tmux.conf - file: - src: ~/.dotfiles/tmux/tmux.conf - dest: ~/.tmux.conf - state: link - force: yes diff --git a/playbooks/roles/fedora/tasks/main.yml b/playbooks/roles/fedora/tasks/main.yml deleted file mode 100644 index 7c52105..0000000 --- a/playbooks/roles/fedora/tasks/main.yml +++ /dev/null @@ -1,28 +0,0 @@ ---- -- name: Update Packages - become: yes - become_method: sudo - dnf: - name: "*" - state: latest - -- name: Install neovim - become: yes - become_method: sudo - dnf: - name: "neovim" - state: latest - -- name: Install @development-tools - become: yes - become_method: sudo - dnf: - name: "@development-tools" - state: latest - -- name: Install openssl-dev - become: yes - become_method: sudo - dnf: - name: "openssl-devel" - state: latest diff --git a/playbooks/roles/osx/tasks/main.yml b/playbooks/roles/osx/tasks/main.yml deleted file mode 100644 index cb5db4f..0000000 --- a/playbooks/roles/osx/tasks/main.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -- name: Homebrew Update - homebrew: - update_homebrew: yes - upgrade_all: yes - -- name: Homebrew - install neovim - homebrew: - update_homebrew: yes - name: neovim - -- name: Homebrew - Install git - homebrew: - update_homebrew: yes - name: git - -- name: Homebrew - Install zsh - homebrew: - update_homebrew: yes - name: zsh - install_options: with-gdbm with-pcre with-unicode9 - -- name: Homebrew - Install gnu-tar and zstd - homebrew: - update_homebrew: yes - name: gnu-tar,zstd diff --git a/playbooks/roles/ubuntu/tasks/main.yml b/playbooks/roles/ubuntu/tasks/main.yml deleted file mode 100644 index fa49617..0000000 --- a/playbooks/roles/ubuntu/tasks/main.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: Update Packages - become: yes - become_method: sudo - apt: - name: "*" - state: latest - -- name: Install neovim - become: yes - become_method: sudo - apt: - name: "neovim" - state: latest - -- name: Install build-essential - become: yes - become_method: sudo - apt: - name: "build-essential" - state: latest - diff --git a/playbooks/ubuntu.yml b/playbooks/ubuntu.yml deleted file mode 100644 index 92b2638..0000000 --- a/playbooks/ubuntu.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- hosts: local - roles: - - role: ubuntu - - role: common - -- 2.48.1 From ea78a81dc1f37f5b183778fd09a163742a2a4747 Mon Sep 17 00:00:00 2001 From: Anthony Cicchetti Date: Tue, 30 Jul 2019 20:13:17 -0400 Subject: [PATCH 4/9] Ubuntu --- playbook/launch | 32 +++++++++------- playbook/main.yml | 22 +++++++++++ playbook/roles/arch/tasks/main.yml | 57 ++++++++++++++++++++++++++++ playbook/roles/fedora/tasks/main.yml | 1 + playbook/roles/ubuntu/tasks/main.yml | 32 ++++++++++++++-- 5 files changed, 126 insertions(+), 18 deletions(-) diff --git a/playbook/launch b/playbook/launch index d750f0a..c7cdd0c 100755 --- a/playbook/launch +++ b/playbook/launch @@ -1,19 +1,23 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash set -ex PATH="$PATH:$HOME/.local/bin" -if [[ `uname` == "Linux" ]]; then - if [[ -f /etc/pacman.conf ]]; then - ansible-playbook -i inventory arch.yml - elif [[ -f /etc/lsb-release ]]; then - ansible-playbook -i inventory ubuntu.yml - elif [[ -f /etc/fedora-release ]]; then - ansible-playbook -i inventory fedora.yml - else - echo "can't autodetermine distro, just running default inventory" - ansible-playbook -i inventory common.yml - fi -else - ansible-playbook -i inventory osx.yml +if [[ $(command -v ansible) ]]; then + printf "ansible already installed" +elif [[ $(uname) == "Linux" ]]; then + if [[ $(command -v pacman) ]]; then + sudo pacman -Sy ansible + elif [[ $(command -v apt) ]]; then + sudo apt install -y ansible python3-apt + # ubuntu doesn't create a /usr/bin/python, so we have to make one ourselves + ln -s /usr/bin/python3 /usr/bin/python + elif [[ $(command -v dnf) ]]; then + sudo dnf install ansible -y + fi +elif [[ $(uname) == "Darwin" ]]; then + /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + /usr/local/bin/brew install ansible fi + +ansible-playbook -i inventory main.yml diff --git a/playbook/main.yml b/playbook/main.yml index d39064c..f6ff437 100644 --- a/playbook/main.yml +++ b/playbook/main.yml @@ -30,3 +30,25 @@ vars: - dev_machine: "{{ _dev_machine }}" - rust_extras: "{{ _rust_extras }}" + +- hosts: os_Archlinux + gather_facts: True + roles: + - role: arch + vars: + dev_machine: "{{ _dev_machine }}" + - role: common + vars: + - dev_machine: "{{ _dev_machine }}" + - rust_extras: "{{ _rust_extras }}" + +- hosts: os_Ubuntu + gather_facts: False + roles: + - role: ubuntu + vars: + dev_machine: "{{ _dev_machine }}" + - role: common + vars: + - dev_machine: "{{ _dev_machine }}" + - rust_extras: "{{ _rust_extras }}" diff --git a/playbook/roles/arch/tasks/main.yml b/playbook/roles/arch/tasks/main.yml index 8b13789..39d9fb0 100644 --- a/playbook/roles/arch/tasks/main.yml +++ b/playbook/roles/arch/tasks/main.yml @@ -1 +1,58 @@ +--- +- name: Update Packages + become: yes + become_method: sudo + pacman: + update_cache: yes + upgrade: yes +- name: Install basics + become: yes + become_method: sudo + pacman: + name: + - zsh + - git + - cmake + - tmux + - gnupg + - neovim + state: latest + +- name: Install Development Tools + when: + - dev_machine == true + become: yes + become_method: sudo + pacman: + name: + - base-devel + - openssl + state: latest + +- name: clone yay from github + when: + - dev_machine == true + become: false + git: + repo: https://aur.archlinux.org/yay.git + dest: /tmp/yay + version: master + update: yes + # notify: makepkg -si + +- name: makepkg --noconfirm -si + when: + - dev_machine == true + become: false + command: makepkg --noconfirm -si + args: + chdir: /tmp/yay + creates: /usr/bin/yay + +- name: Install hstr + when: + - dev_machine == true + command: yay -Sy --noconfirm --needed --cleanafter hstr + args: + creates: /usr/local/bin/hstr diff --git a/playbook/roles/fedora/tasks/main.yml b/playbook/roles/fedora/tasks/main.yml index 19119b7..d426938 100644 --- a/playbook/roles/fedora/tasks/main.yml +++ b/playbook/roles/fedora/tasks/main.yml @@ -17,6 +17,7 @@ - tmux - gpg - neovim + - hstr state: latest - name: Install @development-tools diff --git a/playbook/roles/ubuntu/tasks/main.yml b/playbook/roles/ubuntu/tasks/main.yml index fa49617..ed03b97 100644 --- a/playbook/roles/ubuntu/tasks/main.yml +++ b/playbook/roles/ubuntu/tasks/main.yml @@ -2,20 +2,44 @@ become: yes become_method: sudo apt: + force_apt_get: yes name: "*" state: latest -- name: Install neovim +- name: Install essentials become: yes become_method: sudo apt: - name: "neovim" + force_apt_get: yes + name: + - neovim + - git + - zsh + - tmux + - gpg + - software-properties-common state: latest -- name: Install build-essential +- name: Install Development Tools become: yes become_method: sudo apt: - name: "build-essential" + force_apt_get: yes + name: + - build-essential + - cmake state: latest +# - name: Add hstr repo +# become: yes +# become_method: sudo +# command: "add-apt-repository ppa:acicchetti/utils" + +# - name: Install hstr +# become: yes +# become_method: sudo +# apt: +# force_apt_get: yes +# name: hstr +# state: latest +# update_cache: yes -- 2.48.1 From c8639e973a1417aaa58521d5ffcc8798a1cd038b Mon Sep 17 00:00:00 2001 From: Anthony Cicchetti Date: Tue, 30 Jul 2019 20:20:17 -0400 Subject: [PATCH 5/9] Fixed git --- playbook/roles/common/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playbook/roles/common/tasks/main.yml b/playbook/roles/common/tasks/main.yml index 4bc4791..b5bb13c 100644 --- a/playbook/roles/common/tasks/main.yml +++ b/playbook/roles/common/tasks/main.yml @@ -32,7 +32,7 @@ - import_role: name: git when: - - dev_machine == "yes" + - dev_machine == true - import_role: name: zsh - import_role: -- 2.48.1 From 2dc767b46b403fed69f8b36a460e8e6a85f68a55 Mon Sep 17 00:00:00 2001 From: Anthony Cicchetti Date: Tue, 30 Jul 2019 20:22:39 -0400 Subject: [PATCH 6/9] Fixed fedora --- playbook/roles/fedora/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playbook/roles/fedora/tasks/main.yml b/playbook/roles/fedora/tasks/main.yml index d426938..7a29f7f 100644 --- a/playbook/roles/fedora/tasks/main.yml +++ b/playbook/roles/fedora/tasks/main.yml @@ -28,6 +28,6 @@ dnf: name: - "@development-tools" - - openssl-dev + - openssl-devel state: latest -- 2.48.1 From a267286607b6cc1b27ea904bc079940ae59e8791 Mon Sep 17 00:00:00 2001 From: Anthony Cicchetti Date: Tue, 30 Jul 2019 20:31:13 -0400 Subject: [PATCH 7/9] Cleanup part ii --- playbook/roles/common/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playbook/roles/common/tasks/main.yml b/playbook/roles/common/tasks/main.yml index b5bb13c..e04846c 100644 --- a/playbook/roles/common/tasks/main.yml +++ b/playbook/roles/common/tasks/main.yml @@ -10,7 +10,7 @@ - import_role: name: rust vars: - - rust_extras: rust_extras + - rust_extras: "{{ _rust_extras }}" when: - dev_machine == true - import_role: -- 2.48.1 From 7455446c438cd09935586f37fe1efa80ba1955d0 Mon Sep 17 00:00:00 2001 From: Anthony Cicchetti Date: Tue, 30 Jul 2019 21:26:08 -0400 Subject: [PATCH 8/9] Final fixes --- playbook/launch | 3 ++- playbook/roles/common/tasks/main.yml | 2 -- playbook/roles/ubuntu/tasks/main.yml | 2 ++ 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/playbook/launch b/playbook/launch index c7cdd0c..37ca2fe 100755 --- a/playbook/launch +++ b/playbook/launch @@ -7,7 +7,7 @@ if [[ $(command -v ansible) ]]; then printf "ansible already installed" elif [[ $(uname) == "Linux" ]]; then if [[ $(command -v pacman) ]]; then - sudo pacman -Sy ansible + sudo pacman -Sy --noconfirm ansible elif [[ $(command -v apt) ]]; then sudo apt install -y ansible python3-apt # ubuntu doesn't create a /usr/bin/python, so we have to make one ourselves @@ -16,6 +16,7 @@ elif [[ $(uname) == "Linux" ]]; then sudo dnf install ansible -y fi elif [[ $(uname) == "Darwin" ]]; then + # Yeah, raw brew install /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" /usr/local/bin/brew install ansible fi diff --git a/playbook/roles/common/tasks/main.yml b/playbook/roles/common/tasks/main.yml index e04846c..9385fe8 100644 --- a/playbook/roles/common/tasks/main.yml +++ b/playbook/roles/common/tasks/main.yml @@ -1,6 +1,4 @@ --- -- debug: - var: dev_machine - import_role: name: anyenv when: diff --git a/playbook/roles/ubuntu/tasks/main.yml b/playbook/roles/ubuntu/tasks/main.yml index ed03b97..f4e7c63 100644 --- a/playbook/roles/ubuntu/tasks/main.yml +++ b/playbook/roles/ubuntu/tasks/main.yml @@ -28,6 +28,8 @@ name: - build-essential - cmake + - libssl-dev + - pkg-config state: latest # - name: Add hstr repo -- 2.48.1 From fd02ab29a22ee0f7ad4a9c8467a3b78903d0a60f Mon Sep 17 00:00:00 2001 From: Anthony Cicchetti Date: Tue, 30 Jul 2019 21:26:50 -0400 Subject: [PATCH 9/9] Fixed naming --- {playbook => playbooks}/arch.yml | 0 {playbook => playbooks}/bootstrap | 0 {playbook => playbooks}/bootstrap-macos | 0 {playbook => playbooks}/input.yml | 0 {playbook => playbooks}/inventory | 0 {playbook => playbooks}/launch | 0 {playbook => playbooks}/main.yml | 0 {playbook => playbooks}/roles/alacritty/defaults/main.yml | 0 {playbook => playbooks}/roles/alacritty/tasks/main.yml | 0 {playbook => playbooks}/roles/anyenv/defaults/main.yml | 0 {playbook => playbooks}/roles/anyenv/tasks/main.yml | 0 {playbook => playbooks}/roles/arch/defaults/main.yml | 0 {playbook => playbooks}/roles/arch/tasks/main.yml | 0 {playbook => playbooks}/roles/common/defaults/main.yml | 0 {playbook => playbooks}/roles/common/tasks/main.yml | 0 {playbook => playbooks}/roles/fedora/defaults/main.yml | 0 {playbook => playbooks}/roles/fedora/tasks/main.yml | 0 {playbook => playbooks}/roles/git/defaults/main.yml | 0 {playbook => playbooks}/roles/git/tasks/main.yml | 0 {playbook => playbooks}/roles/hyper/defaults/main.yml | 0 {playbook => playbooks}/roles/hyper/tasks/main.yml | 0 {playbook => playbooks}/roles/kerl/defaults/main.yml | 0 {playbook => playbooks}/roles/kerl/tasks/main.yml | 0 {playbook => playbooks}/roles/macos/defaults/main.yml | 0 {playbook => playbooks}/roles/macos/tasks/main.yml | 0 {playbook => playbooks}/roles/neovim/defaults/main.yml | 0 {playbook => playbooks}/roles/neovim/tasks/main.yml | 0 {playbook => playbooks}/roles/rust/defaults/main.yml | 0 {playbook => playbooks}/roles/rust/tasks/main.yml | 0 {playbook => playbooks}/roles/sdkman/defaults/main.yml | 0 {playbook => playbooks}/roles/sdkman/tasks/main.yml | 0 {playbook => playbooks}/roles/tmux/defaults/main.yml | 0 {playbook => playbooks}/roles/tmux/tasks/main.yml | 0 {playbook => playbooks}/roles/ubuntu/defaults/main.yml | 0 {playbook => playbooks}/roles/ubuntu/tasks/main.yml | 0 {playbook => playbooks}/roles/zsh/defaults/main.yml | 0 {playbook => playbooks}/roles/zsh/tasks/main.yml | 0 {playbook => playbooks}/ubuntu.yml | 0 38 files changed, 0 insertions(+), 0 deletions(-) rename {playbook => playbooks}/arch.yml (100%) rename {playbook => playbooks}/bootstrap (100%) rename {playbook => playbooks}/bootstrap-macos (100%) rename {playbook => playbooks}/input.yml (100%) rename {playbook => playbooks}/inventory (100%) rename {playbook => playbooks}/launch (100%) rename {playbook => playbooks}/main.yml (100%) rename {playbook => playbooks}/roles/alacritty/defaults/main.yml (100%) rename {playbook => playbooks}/roles/alacritty/tasks/main.yml (100%) rename {playbook => playbooks}/roles/anyenv/defaults/main.yml (100%) rename {playbook => playbooks}/roles/anyenv/tasks/main.yml (100%) rename {playbook => playbooks}/roles/arch/defaults/main.yml (100%) rename {playbook => playbooks}/roles/arch/tasks/main.yml (100%) rename {playbook => playbooks}/roles/common/defaults/main.yml (100%) rename {playbook => playbooks}/roles/common/tasks/main.yml (100%) rename {playbook => playbooks}/roles/fedora/defaults/main.yml (100%) rename {playbook => playbooks}/roles/fedora/tasks/main.yml (100%) rename {playbook => playbooks}/roles/git/defaults/main.yml (100%) rename {playbook => playbooks}/roles/git/tasks/main.yml (100%) rename {playbook => playbooks}/roles/hyper/defaults/main.yml (100%) rename {playbook => playbooks}/roles/hyper/tasks/main.yml (100%) rename {playbook => playbooks}/roles/kerl/defaults/main.yml (100%) rename {playbook => playbooks}/roles/kerl/tasks/main.yml (100%) rename {playbook => playbooks}/roles/macos/defaults/main.yml (100%) rename {playbook => playbooks}/roles/macos/tasks/main.yml (100%) rename {playbook => playbooks}/roles/neovim/defaults/main.yml (100%) rename {playbook => playbooks}/roles/neovim/tasks/main.yml (100%) rename {playbook => playbooks}/roles/rust/defaults/main.yml (100%) rename {playbook => playbooks}/roles/rust/tasks/main.yml (100%) rename {playbook => playbooks}/roles/sdkman/defaults/main.yml (100%) rename {playbook => playbooks}/roles/sdkman/tasks/main.yml (100%) rename {playbook => playbooks}/roles/tmux/defaults/main.yml (100%) rename {playbook => playbooks}/roles/tmux/tasks/main.yml (100%) rename {playbook => playbooks}/roles/ubuntu/defaults/main.yml (100%) rename {playbook => playbooks}/roles/ubuntu/tasks/main.yml (100%) rename {playbook => playbooks}/roles/zsh/defaults/main.yml (100%) rename {playbook => playbooks}/roles/zsh/tasks/main.yml (100%) rename {playbook => playbooks}/ubuntu.yml (100%) diff --git a/playbook/arch.yml b/playbooks/arch.yml similarity index 100% rename from playbook/arch.yml rename to playbooks/arch.yml diff --git a/playbook/bootstrap b/playbooks/bootstrap similarity index 100% rename from playbook/bootstrap rename to playbooks/bootstrap diff --git a/playbook/bootstrap-macos b/playbooks/bootstrap-macos similarity index 100% rename from playbook/bootstrap-macos rename to playbooks/bootstrap-macos diff --git a/playbook/input.yml b/playbooks/input.yml similarity index 100% rename from playbook/input.yml rename to playbooks/input.yml diff --git a/playbook/inventory b/playbooks/inventory similarity index 100% rename from playbook/inventory rename to playbooks/inventory diff --git a/playbook/launch b/playbooks/launch similarity index 100% rename from playbook/launch rename to playbooks/launch diff --git a/playbook/main.yml b/playbooks/main.yml similarity index 100% rename from playbook/main.yml rename to playbooks/main.yml diff --git a/playbook/roles/alacritty/defaults/main.yml b/playbooks/roles/alacritty/defaults/main.yml similarity index 100% rename from playbook/roles/alacritty/defaults/main.yml rename to playbooks/roles/alacritty/defaults/main.yml diff --git a/playbook/roles/alacritty/tasks/main.yml b/playbooks/roles/alacritty/tasks/main.yml similarity index 100% rename from playbook/roles/alacritty/tasks/main.yml rename to playbooks/roles/alacritty/tasks/main.yml diff --git a/playbook/roles/anyenv/defaults/main.yml b/playbooks/roles/anyenv/defaults/main.yml similarity index 100% rename from playbook/roles/anyenv/defaults/main.yml rename to playbooks/roles/anyenv/defaults/main.yml diff --git a/playbook/roles/anyenv/tasks/main.yml b/playbooks/roles/anyenv/tasks/main.yml similarity index 100% rename from playbook/roles/anyenv/tasks/main.yml rename to playbooks/roles/anyenv/tasks/main.yml diff --git a/playbook/roles/arch/defaults/main.yml b/playbooks/roles/arch/defaults/main.yml similarity index 100% rename from playbook/roles/arch/defaults/main.yml rename to playbooks/roles/arch/defaults/main.yml diff --git a/playbook/roles/arch/tasks/main.yml b/playbooks/roles/arch/tasks/main.yml similarity index 100% rename from playbook/roles/arch/tasks/main.yml rename to playbooks/roles/arch/tasks/main.yml diff --git a/playbook/roles/common/defaults/main.yml b/playbooks/roles/common/defaults/main.yml similarity index 100% rename from playbook/roles/common/defaults/main.yml rename to playbooks/roles/common/defaults/main.yml diff --git a/playbook/roles/common/tasks/main.yml b/playbooks/roles/common/tasks/main.yml similarity index 100% rename from playbook/roles/common/tasks/main.yml rename to playbooks/roles/common/tasks/main.yml diff --git a/playbook/roles/fedora/defaults/main.yml b/playbooks/roles/fedora/defaults/main.yml similarity index 100% rename from playbook/roles/fedora/defaults/main.yml rename to playbooks/roles/fedora/defaults/main.yml diff --git a/playbook/roles/fedora/tasks/main.yml b/playbooks/roles/fedora/tasks/main.yml similarity index 100% rename from playbook/roles/fedora/tasks/main.yml rename to playbooks/roles/fedora/tasks/main.yml diff --git a/playbook/roles/git/defaults/main.yml b/playbooks/roles/git/defaults/main.yml similarity index 100% rename from playbook/roles/git/defaults/main.yml rename to playbooks/roles/git/defaults/main.yml diff --git a/playbook/roles/git/tasks/main.yml b/playbooks/roles/git/tasks/main.yml similarity index 100% rename from playbook/roles/git/tasks/main.yml rename to playbooks/roles/git/tasks/main.yml diff --git a/playbook/roles/hyper/defaults/main.yml b/playbooks/roles/hyper/defaults/main.yml similarity index 100% rename from playbook/roles/hyper/defaults/main.yml rename to playbooks/roles/hyper/defaults/main.yml diff --git a/playbook/roles/hyper/tasks/main.yml b/playbooks/roles/hyper/tasks/main.yml similarity index 100% rename from playbook/roles/hyper/tasks/main.yml rename to playbooks/roles/hyper/tasks/main.yml diff --git a/playbook/roles/kerl/defaults/main.yml b/playbooks/roles/kerl/defaults/main.yml similarity index 100% rename from playbook/roles/kerl/defaults/main.yml rename to playbooks/roles/kerl/defaults/main.yml diff --git a/playbook/roles/kerl/tasks/main.yml b/playbooks/roles/kerl/tasks/main.yml similarity index 100% rename from playbook/roles/kerl/tasks/main.yml rename to playbooks/roles/kerl/tasks/main.yml diff --git a/playbook/roles/macos/defaults/main.yml b/playbooks/roles/macos/defaults/main.yml similarity index 100% rename from playbook/roles/macos/defaults/main.yml rename to playbooks/roles/macos/defaults/main.yml diff --git a/playbook/roles/macos/tasks/main.yml b/playbooks/roles/macos/tasks/main.yml similarity index 100% rename from playbook/roles/macos/tasks/main.yml rename to playbooks/roles/macos/tasks/main.yml diff --git a/playbook/roles/neovim/defaults/main.yml b/playbooks/roles/neovim/defaults/main.yml similarity index 100% rename from playbook/roles/neovim/defaults/main.yml rename to playbooks/roles/neovim/defaults/main.yml diff --git a/playbook/roles/neovim/tasks/main.yml b/playbooks/roles/neovim/tasks/main.yml similarity index 100% rename from playbook/roles/neovim/tasks/main.yml rename to playbooks/roles/neovim/tasks/main.yml diff --git a/playbook/roles/rust/defaults/main.yml b/playbooks/roles/rust/defaults/main.yml similarity index 100% rename from playbook/roles/rust/defaults/main.yml rename to playbooks/roles/rust/defaults/main.yml diff --git a/playbook/roles/rust/tasks/main.yml b/playbooks/roles/rust/tasks/main.yml similarity index 100% rename from playbook/roles/rust/tasks/main.yml rename to playbooks/roles/rust/tasks/main.yml diff --git a/playbook/roles/sdkman/defaults/main.yml b/playbooks/roles/sdkman/defaults/main.yml similarity index 100% rename from playbook/roles/sdkman/defaults/main.yml rename to playbooks/roles/sdkman/defaults/main.yml diff --git a/playbook/roles/sdkman/tasks/main.yml b/playbooks/roles/sdkman/tasks/main.yml similarity index 100% rename from playbook/roles/sdkman/tasks/main.yml rename to playbooks/roles/sdkman/tasks/main.yml diff --git a/playbook/roles/tmux/defaults/main.yml b/playbooks/roles/tmux/defaults/main.yml similarity index 100% rename from playbook/roles/tmux/defaults/main.yml rename to playbooks/roles/tmux/defaults/main.yml diff --git a/playbook/roles/tmux/tasks/main.yml b/playbooks/roles/tmux/tasks/main.yml similarity index 100% rename from playbook/roles/tmux/tasks/main.yml rename to playbooks/roles/tmux/tasks/main.yml diff --git a/playbook/roles/ubuntu/defaults/main.yml b/playbooks/roles/ubuntu/defaults/main.yml similarity index 100% rename from playbook/roles/ubuntu/defaults/main.yml rename to playbooks/roles/ubuntu/defaults/main.yml diff --git a/playbook/roles/ubuntu/tasks/main.yml b/playbooks/roles/ubuntu/tasks/main.yml similarity index 100% rename from playbook/roles/ubuntu/tasks/main.yml rename to playbooks/roles/ubuntu/tasks/main.yml diff --git a/playbook/roles/zsh/defaults/main.yml b/playbooks/roles/zsh/defaults/main.yml similarity index 100% rename from playbook/roles/zsh/defaults/main.yml rename to playbooks/roles/zsh/defaults/main.yml diff --git a/playbook/roles/zsh/tasks/main.yml b/playbooks/roles/zsh/tasks/main.yml similarity index 100% rename from playbook/roles/zsh/tasks/main.yml rename to playbooks/roles/zsh/tasks/main.yml diff --git a/playbook/ubuntu.yml b/playbooks/ubuntu.yml similarity index 100% rename from playbook/ubuntu.yml rename to playbooks/ubuntu.yml -- 2.48.1