mirror of
https://github.com/roles-ansible/ansible_role_weechat.git
synced 2024-08-16 13:09:48 +02:00
Merge pull request #1 from chaos-bodensee/custom
enable support for custom config git + DOCS
This commit is contained in:
commit
4b081fd32b
6 changed files with 161 additions and 12 deletions
96
README.md
96
README.md
|
@ -11,6 +11,86 @@ Ansible role to install and configure weechat.
|
||||||
- ~~configure weechat~~ *(in progress)*
|
- ~~configure weechat~~ *(in progress)*
|
||||||
- autostart via tmux and systemd
|
- autostart via tmux and systemd
|
||||||
|
|
||||||
|
Settings
|
||||||
|
----------
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
weechat:
|
||||||
|
install: true
|
||||||
|
```
|
||||||
|
+ ``weechat.install: true``: This role should install weechat. On debian based OS we add the official weechat apt source and install some plugin support and weechat-doc.
|
||||||
|
+ ``weechat.install: false``: We do not install weechat
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
weechat:
|
||||||
|
autostart: false
|
||||||
|
```
|
||||||
|
+ ``weechat.autostart: false``: We do not install any autostart mechanism
|
||||||
|
+ ``weechat.autostart: true``: This role install tmux and creates a systemd service to launch weechat inside a tmux session as user ``{{ weechat.user }}``
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
weechat:
|
||||||
|
install_plugins: false
|
||||||
|
```
|
||||||
|
+ ``weechat.install_plugins: false``: we do not install any weechat plugins
|
||||||
|
+ ``weechat.install_plugins: true``: We do install all official plugins specified in ``{{ weecat.plugins }}`` dict.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
weechat:
|
||||||
|
use_custom_config: false
|
||||||
|
```
|
||||||
|
+ ``weechat.use_custom_config: false``: You do not provide a custom config from your own git repository
|
||||||
|
+ ``weechat.use_custom_config: true``: You have your weechat configuration in a own git repository and want to use it
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
weechat:
|
||||||
|
install_plugins: false
|
||||||
|
```
|
||||||
|
+ ``weechat.install_plugins: false`` we do not install any official weechat plugins
|
||||||
|
+ ``weechat.install_plugins: true`` we install the official weechat plugins defined in the ``{{ weechat.plugins: [] }}`` directory.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
weechat:
|
||||||
|
plugins:
|
||||||
|
- go.py
|
||||||
|
- iset.pl
|
||||||
|
```
|
||||||
|
+ Example ``weechat.plugins: []`` list
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
weechat:
|
||||||
|
user: "{{ ansible_user_id }}"
|
||||||
|
```
|
||||||
|
+ the user to use weechat with. This value is used in the ``autostart`` task, the ``custom_config`` task and the ``{{ weechat.home_directory }}`` variable
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
weechat:
|
||||||
|
home_directory: "{{ ansible_env.HOME | default('/home/{{ weechat.user }}') }}"
|
||||||
|
```
|
||||||
|
+ the path where the weechat home is located. If the variable ``{{ ansible_env.HOME }}`` is not set it will use ``"/home/{{ weechat.user }}"`` as fallback.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
weechat:
|
||||||
|
gpg_id: '11E9DE8848F2B65222AA75B8D1820DB22A11534E'
|
||||||
|
```
|
||||||
|
+ This is the gpg fingerprint from the [official weechat debian repo](https://weechat.org/download/debian/)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
weechat:
|
||||||
|
custom_config:
|
||||||
|
private_repo: false
|
||||||
|
```
|
||||||
|
+ The path to your git repo with your personal weechat config.
|
||||||
|
+ This role clones the repo to the ``"{{ weechat.home_directory }}/.weechat"`` directory. *(Also known al your local .weechat directory.)* It will fail if you already have files and/or folders in your local .weechat dorectory.
|
||||||
|
+ You have to add, commit and push the local changes in your local .weechat folder manually. Please be aware that it is a good idea to disable your log or at least add the weechatlog folder to your .gitignore file in your personal weechat config.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
weechat:
|
||||||
|
custom_config:
|
||||||
|
gen_ssh_key_pair: true
|
||||||
|
```
|
||||||
|
+ ``weechat.custom_config.gen_ssh_key_pair: true``: We will generate a eleptic curve ssh key *(if it not already exist at ``"{{ weechat.home_directory }}/.ssh/id_ed25519"``)* and print the public key to the prompt. This will give you the time to add this public key to your private git repo for your own weechat config as deploy key. This is required to download your private repo withour username/password. This requires that you set ``{{ weechat.custom_config.private_repo }}`` to the ssh accessable version of your git repo.
|
||||||
|
+ ``weechat.custom_config.gen_ssh_key_pair: false``: We do not manage access to the git repo with your weechat config.
|
||||||
|
|
||||||
```txt
|
```txt
|
||||||
WARNING
|
WARNING
|
||||||
|
@ -18,14 +98,24 @@ WARNING
|
||||||
It is work-in-progress. Be careful!
|
It is work-in-progress. Be careful!
|
||||||
|
|
||||||
MISSING
|
MISSING
|
||||||
- task for configurations
|
- all task for configurations
|
||||||
- testing for all OS
|
- testing for all OS
|
||||||
- docs
|
- improved docs
|
||||||
- galaxy
|
- galaxy
|
||||||
```
|
```
|
||||||
|
|
||||||
References and Inspiration:
|
References and Inspiration:
|
||||||
----------------------
|
----------------------
|
||||||
+ Information about installation on debian/ubuntu can be found at [weechat.org/download/debian](https://weechat.org/download/debian/)
|
+ Information about installation on debian/ubuntu can be found at [weechat.org/download/debian](https://weechat.org/download/debian/)
|
||||||
+ Some parts of the Weechat configuration is inspired by [github.com/irth/ansible-role-weechat](https://github.com/irth/ansible-role-weechat.git) but written in a complete different way.
|
+ Some parts of the Weechat configuration is inspired by [github.com/irth/ansible-role-weechat](https://github.com/irth/ansible-role-weechat.git) but written in a complete different way. Some other is completly different.
|
||||||
+ Autostart and systemd is inspired by [ubuntu wiki](https://wiki.ubuntuusers.de/Howto/systemd_Service_Unit_Beispiel/) and [ansible docs](https://docs.ansible.com/ansible/latest/modules/systemd_module.html).
|
+ Autostart and systemd is inspired by [ubuntu wiki](https://wiki.ubuntuusers.de/Howto/systemd_Service_Unit_Beispiel/) and [ansible docs](https://docs.ansible.com/ansible/latest/modules/systemd_module.html).
|
||||||
|
|
||||||
|
Contribute
|
||||||
|
------------
|
||||||
|
If you missing a feature, found a bug or have questions about this role please feel free to open a git issue. Or - even better - create a pull request.
|
||||||
|
|
||||||
|
LICENSE
|
||||||
|
----------
|
||||||
|
[MIT License](https://github.com/chaos-bodensee/role_weechat/blob/master/LICENSE)<br/>
|
||||||
|
+ ``Copyright (c) 2019 L3D``
|
||||||
|
+ The complete list of awesome contributros can be found [here](https://github.com/chaos-bodensee/role_weechat/graphs/contributors).
|
||||||
|
|
|
@ -6,15 +6,22 @@ weechat:
|
||||||
autostart: false
|
autostart: false
|
||||||
# should we install official weechat plugins
|
# should we install official weechat plugins
|
||||||
install_plugins: false
|
install_plugins: false
|
||||||
|
# custom weechat config (requires some manual interaction for long-term usage)
|
||||||
|
use_custom_config: false
|
||||||
# user to install and use weechat
|
# user to install and use weechat
|
||||||
user: "{{ ansible_user_id }}"
|
user: "{{ ansible_user_id }}"
|
||||||
# where is our home direcotory for weechat
|
# where is our home direcotory for weechat
|
||||||
home_directory: "{{ ansible_env.HOME | default('/home/{{ weechat.user }}') }}/.weechat"
|
home_directory: "{{ ansible_env.HOME | default('/home/{{ weechat.user }}') }}"
|
||||||
# plugins we want
|
# plugins we want
|
||||||
plugins: []
|
plugins: []
|
||||||
# weechat gpg key for debian/ubuntu repo
|
# weechat gpg key for debian/ubuntu repo
|
||||||
gpg_id: '11E9DE8848F2B65222AA75B8D1820DB22A11534E'
|
gpg_id: '11E9DE8848F2B65222AA75B8D1820DB22A11534E'
|
||||||
|
# custom private config
|
||||||
|
custom_config:
|
||||||
|
# path to your custom weechat config (with plugins) git repo ( git@github.com:<your_name>/<your_weechat_config_repo>.git )
|
||||||
|
private_repo: false
|
||||||
|
# generate ssh key pair (if not available)
|
||||||
|
gen_ssh_key_pair: true
|
||||||
|
|
||||||
# version check for this role? (true is recomended)
|
# version check for this role? (true is recomended)
|
||||||
submodules_versioncheck: false
|
submodules_versioncheck: false
|
||||||
|
|
44
tasks/configure_custom_config.yml
Normal file
44
tasks/configure_custom_config.yml
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
---
|
||||||
|
- name: create ssh key pair (if needed)
|
||||||
|
become_user: "{{ weechat.user }}"
|
||||||
|
become: true
|
||||||
|
openssh_keypair:
|
||||||
|
path: "{{ weechat.home_directory }}/.ssh/id_ed25519"
|
||||||
|
type: ed25519
|
||||||
|
owner: "{{ weechat.user }}"
|
||||||
|
register: ssh_key_pair
|
||||||
|
when: weechat.custom_config.gen_ssh_key_pair | bool
|
||||||
|
|
||||||
|
- name: print ssh public key to user
|
||||||
|
pause:
|
||||||
|
prompt: |
|
||||||
|
We generated a new ssh key pair for you.
|
||||||
|
Please use the following public key as deployment key
|
||||||
|
to your private git repository with your own weechat config.
|
||||||
|
|
||||||
|
Private git repositorys are not public available and
|
||||||
|
you need some sort of authorisation method to verify
|
||||||
|
that you are allowed to clone your private repo.
|
||||||
|
|
||||||
|
Your ssh public key come here...
|
||||||
|
|
||||||
|
|
||||||
|
{{ ssh_key_pair.public_key }}
|
||||||
|
|
||||||
|
|
||||||
|
Please be aware, that this role do not commit or
|
||||||
|
push any local changes and you have to do this
|
||||||
|
manually by yourself.
|
||||||
|
when:
|
||||||
|
- weechat.custom_config.gen_ssh_key_pair | bool
|
||||||
|
- ssh_key_pair.changed
|
||||||
|
|
||||||
|
- name: clone private git repository
|
||||||
|
become_user: "{{ weechat.user }}"
|
||||||
|
become: true
|
||||||
|
git:
|
||||||
|
repo: "{{ weechat.custom_config.private_repo }}"
|
||||||
|
dest: "{{ weechat.home_directory }}/.weechat"
|
||||||
|
version: master
|
||||||
|
accept_hostkey: yes
|
||||||
|
when: not weechat.custom_config.private_repo | bool
|
|
@ -3,7 +3,7 @@
|
||||||
become: true
|
become: true
|
||||||
become_user: "{{ weechat.user }}"
|
become_user: "{{ weechat.user }}"
|
||||||
file:
|
file:
|
||||||
path: "{{ weechat.home_directory }}"
|
path: "{{ weechat.home_directory }}/.weechat"
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{ weechat.user }}"
|
owner: "{{ weechat.user }}"
|
||||||
mode: "0750"
|
mode: "0750"
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
become: true
|
become: true
|
||||||
become_user: "{{ weechat.user }}"
|
become_user: "{{ weechat.user }}"
|
||||||
file:
|
file:
|
||||||
path: "{{ weechat.home_directory }}/{{ item.value }}/autoload"
|
path: "{{ weechat.home_directory }}/.weechat/{{ item.value }}/autoload"
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{ weechat.user }}"
|
owner: "{{ weechat.user }}"
|
||||||
mode: "0750"
|
mode: "0750"
|
||||||
|
@ -21,12 +21,12 @@
|
||||||
- name: download weechat plugins
|
- name: download weechat plugins
|
||||||
get_url:
|
get_url:
|
||||||
url: 'https://weechat.org/files/scripts/{{ item }}'
|
url: 'https://weechat.org/files/scripts/{{ item }}'
|
||||||
dest: "{{ weechat.home_directory }}/{{ weechat_plugin_languages[item.split('.',1)[-1]] }}/{{ item }}"
|
dest: "{{ weechat.home_directory }}/.weechat/{{ weechat_plugin_languages[item.split('.',1)[-1]] }}/{{ item }}"
|
||||||
with_items: '{{ weechat.plugins }}'
|
with_items: '{{ weechat.plugins }}'
|
||||||
|
|
||||||
- name: symlinking plugins to autoload
|
- name: symlinking plugins to autoload
|
||||||
file:
|
file:
|
||||||
src: "{{ weechat.home_directory }}/{{ weechat_plugin_languages[item.split('.',1)[-1]] }}/{{ item }}"
|
src: "{{ weechat.home_directory }}/.weechat/{{ weechat_plugin_languages[item.split('.',1)[-1]] }}/{{ item }}"
|
||||||
dest: "{{ weechat.home_directory }}/{{ weechat_plugin_languages[item.split('.',1)[-1]] }}/autoload/{{ item }}"
|
dest: "{{ weechat.home_directory }}/.weechat/{{ weechat_plugin_languages[item.split('.',1)[-1]] }}/autoload/{{ item }}"
|
||||||
state: link
|
state: link
|
||||||
with_items: '{{ weechat.plugins }}'
|
with_items: '{{ weechat.plugins }}'
|
||||||
|
|
|
@ -9,6 +9,9 @@
|
||||||
- include_tasks: "install-{{ ansible_os_family|lower }}.yml"
|
- include_tasks: "install-{{ ansible_os_family|lower }}.yml"
|
||||||
when: weechat.install | bool
|
when: weechat.install | bool
|
||||||
|
|
||||||
|
- include_tasks: configure_custom_config.yml
|
||||||
|
when: weechat.use_custom_config | bool
|
||||||
|
|
||||||
- include_tasks: configure_plugins.yml
|
- include_tasks: configure_plugins.yml
|
||||||
when: weechat.install_plugins | bool
|
when: weechat.install_plugins | bool
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ weechat_plugin_languages:
|
||||||
lua: lua
|
lua: lua
|
||||||
|
|
||||||
# version management
|
# version management
|
||||||
playbook_version_number: 2055 # should be over ninethousand
|
playbook_version_number: 2056 # should be over ninethousand
|
||||||
playbook_version_path: 'role-weechat_roles-ansible_github.com.version'
|
playbook_version_path: 'role-weechat_roles-ansible_github.com.version'
|
||||||
|
|
||||||
# default values
|
# default values
|
||||||
|
@ -18,6 +18,11 @@ _weechat:
|
||||||
autostart: false
|
autostart: false
|
||||||
install_plugins: false
|
install_plugins: false
|
||||||
user: "{{ ansible_user_id }}"
|
user: "{{ ansible_user_id }}"
|
||||||
home_directory: "{{ ansible_env.HOME | default('/home/{{ weechat.user }}') }}/.weechat"
|
home_directory: "{{ ansible_env.HOME | default('/home/{{ weechat.user }}') }}"
|
||||||
plugins: []
|
plugins: []
|
||||||
gpg_id: '11E9DE8848F2B65222AA75B8D1820DB22A11534E'
|
gpg_id: '11E9DE8848F2B65222AA75B8D1820DB22A11534E'
|
||||||
|
use_custom_config: false
|
||||||
|
custom_config:
|
||||||
|
private_repo: false
|
||||||
|
gen_ssh_key_pair: true
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue