Compare commits

...

4 Commits

17 changed files with 163 additions and 23 deletions

View File

@ -3,3 +3,6 @@
- hosts: localhost - hosts: localhost
roles: roles:
- role: 1password - role: 1password
- role: fonts
- role: obsidian
- role: webcatalog

View File

@ -2,12 +2,9 @@
- import_playbook: UnixGUI.yaml - import_playbook: UnixGUI.yaml
- hosts: localhost - hosts: localhost
roles: roles:
- role: fonts
- role: mas - role: mas
- role: iterm - role: iterm
- role: magnet - role: magnet
- role: microsoft-remote-desktop - role: microsoft-remote-desktop
- role: obsidian
- role: viscosity - role: viscosity
- role: webcatalog

View File

@ -1,7 +1,11 @@
--- ---
- name: install homebrew packages - name: install homebrew packages
homebrew: homebrew:
name: neovim name:
- neovim
state: latest state: latest
- set_fact:
neovim_pip_packages: '{{neovim_pip_packages + ["pynvim"]}}'
- include_tasks: Unix.yaml - include_tasks: Unix.yaml

View File

@ -10,7 +10,9 @@
- name: install apt package - name: install apt package
become: true become: true
apt: apt:
name: neovim name:
- neovim
- python3-neovim
state: latest state: latest
- include_tasks: Unix.yaml - include_tasks: Unix.yaml

View File

@ -1,8 +1,10 @@
--- ---
- name: install yum package - name: install dnf package
become: true become: true
yum: dnf:
name: neovim name:
- neovim
- python3-neovim
state: latest state: latest
- include_tasks: Unix.yaml - include_tasks: Unix.yaml

View File

@ -8,8 +8,6 @@
dest: '{{vim_config_dir}}' dest: '{{vim_config_dir}}'
version: master version: master
# TODO: - name: set repo email
- name: install pip packages - name: install pip packages
pip: pip:
name: '{{neovim_pip_packages}}' name: '{{neovim_pip_packages}}'

View File

@ -3,6 +3,5 @@ neovim_pip_packages:
- cmake-language-server - cmake-language-server
- cmakelint - cmakelint
- compdb - compdb
- pynvim
- vim-vint - vim-vint
- yamllint - yamllint

View File

@ -0,0 +1,5 @@
---
- name: install desktop menu
command: >
xdg-desktop-menu install --mode user
{{ansible_env.HOME}}/.local/share/applications/obsidian-obsidian.desktop

View File

@ -4,8 +4,4 @@
name: obsidian name: obsidian
state: latest state: latest
- name: clone notes repository - include_tasks: Unix.yaml
git:
repo: git@github.com:kbenzie/notes.git
dest: '{{ansible_env.HOME}}/Documents/Notes'
version: main

View File

@ -0,0 +1,48 @@
---
- name: stat symlink
stat:
path: '{{ansible_env.HOME}}/.local/bin/Obsidian'
register: symlink_file
- name: get latest release
uri:
url: https://api.github.com/repos/obsidianmd/obsidian-releases/releases/latest
register: latest
- set_fact:
appimage: 'Obsidian-{{latest.json.name}}.AppImage'
- set_fact:
filepath: '{{ansible_env.HOME}}/.local/bin/{{appimage}}'
asset_query: '[?contains(name, `{{appimage}}`)] | [0]'
- set_fact:
needs_installed:
'{{not symlink_file.stat.exists or symlink_file.stat.lnk_source != filepath}}'
asset: '{{latest.json.assets | to_json | from_json | json_query(asset_query)}}'
- name: download latest version
get_url:
url: '{{asset.browser_download_url}}'
dest: '{{filepath}}'
mode: '0755'
- name: create symlink
file:
src: '{{filepath}}'
dest: '{{ansible_env.HOME}}/.local/bin/Obsidian'
state: link
# TODO: icon for desktop file
- name: create desktop file
template:
src: obsidian.desktop.j2
dest: '{{ansible_env.HOME}}/.local/share/applications/obsidian-obsidian.desktop'
notify: install desktop menu
- name: remove old appimage
when: needs_installed and symlink_file.stat.exists
file:
path: '{{symlink_file.stat.lnk_source}}'
state: absent
- include_tasks: Unix.yaml

View File

@ -0,0 +1,6 @@
---
- name: clone notes repository
git:
repo: git@github.com:kbenzie/notes.git
dest: '{{ansible_env.HOME}}/Documents/Notes'
version: main

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Name=Obsidian
Exec={{ansible_env.HOME}}/.local/bin/Obsidian
Terminal=false
Type=Application
Icon=obsidian
StartupWMClass=Obsidian
X-AppImage-Version={{latest.json.name}}
Comment=Private and flexible notetaking app that adapts to the way you think.
MimeType=x-scheme-handler/obsidian;
Categories=Utility;

View File

@ -0,0 +1,5 @@
---
- name: install desktop menu
command: >
xdg-desktop-menu install --mode user
{{ansible_env.HOME}}/.local/share/applications/webcatalog-webcatalog.desktop

View File

@ -0,0 +1,5 @@
---
- name: install homebrew package
homebrew_cask:
name: webcatalog
state: latest

View File

@ -0,0 +1,49 @@
---
- name: stat symlink
stat:
path: '{{ansible_env.HOME}}/.local/bin/WebCatalog'
register: symlink_file
- name: get releases
uri:
url: https://raw.githubusercontent.com/kbenzie/webcatalog-release-scraper/main/webcatalog-releases.json
return_content: true
register: releases_raw
- set_fact:
releases: '{{releases_raw.content | from_json}}'
- set_fact:
appimage: 'WebCatalog-{{releases[0].version}}.AppImage'
- set_fact:
filepath: '{{ansible_env.HOME}}/.local/bin/{{appimage}}'
- set_fact:
needs_installed:
'{{not symlink_file.stat.exists or symlink_file.stat.lnk_source != filepath}}'
- name: download latest version
when: needs_installed
get_url:
url: 'https://cdn-2.webcatalog.io/webcatalog/{{appimage}}'
dest: '{{ansible_env.HOME}}/.local/bin/{{appimage}}'
mode: '0755'
- name: create symlink
file:
src: '{{filepath}}'
dest: '{{ansible_env.HOME}}/.local/bin/WebCatalog'
state: link
# TODO: icon for desktop file
- name: create desktop file
template:
src: webcatalog.desktop.j2
dest: '{{ansible_env.HOME}}/.local/share/applications/webcatalog-webcatalog.desktop'
notify: install desktop menu
- name: remove old appimage
when: needs_installed and symlink_file.stat.exists
file:
path: '{{symlink_file.stat.lnk_source}}'
state: absent

View File

@ -1,8 +1,7 @@
--- ---
- assert: - when: ansible_os_family == 'Darwin'
that: ansible_os_family == "Darwin" include_tasks: 'Darwin.yaml'
- when: ansible_os_family == 'Windows'
- name: install homebrew package include_tasks: 'Windows.yaml'
homebrew_cask: - when: ansible_os_family != 'Darwin' and ansible_os_family != 'Windows'
name: webcatalog include_tasks: 'Linux.yaml'
state: latest

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Name=WebCatalog
Exec={{ansible_env.HOME}}/.local/bin/WebCatalog
Terminal=false
Type=Application
Icon=webcatalog
StartupWMClass=WebCatalog
X-AppImage-Version={{releases[0].version}}
Comment=Turn Any Websites Into Real Desktop Apps
MimeType=x-scheme-handler/webcatalog;
Categories=Utility;