mnussbaum.base16-builder-ansible
base16-builder-ansible 
このロールは、Base16テーマを構築し、返します。Base16は、Vim、Bash、i3などのさまざまなアプリケーション用のテーマを生成するためのフレームワークで、Tomorrow NightやGruvboxなどのカラースキームを提供します。
このビルダーの目的は、幅広いアプリケーションにわたってBase16の色を簡単にインストールおよび更新できるようにすることです。AnsibleをBase16ビルダーとして使用することで、多くの柔軟性が得られます。テーマを生成し、それをスタンドアロンのファイルとして書き込むか、より大きな設定ファイルのテンプレートに埋め込むことができます。これは、一つの設定ファイルしか扱えないアプリケーション(i3など)に特に便利です。
このロールは、事前に生成されたカラースキームテンプレートをダウンロードするのではなく、動的に構築します。これにより、古いテンプレートリポジトリがまだ取り上げていないBase16カラースキームを利用でき、既存のカラースキームの最新バージョンを常に使用することができます。
現在、Base16のバージョン0.9.1を実装しています。
使用例
---
roles:
- mnussbaum.base16-builder-ansible
tasks:
# 単一のカラースキームとテンプレートを構築して変数に割り当てる
- base16_builder:
scheme: tomorrow-night
template: shell
register: base16_schemes
# 登録された結果をデバッグで一度印刷すると、特定のスキームとテンプレートにアクセスする方法を特定するのに役立ちます。
- debug:
var: base16_schemes
# 生成されたカラースキームをファイルに書き込むか、自分のテンプレートにレンダリングできます。
- copy:
content: "{{ base16_schemes['schemes']['tomorrow-night']['shell']['scripts']['base16-tomorrow-night.sh'] }}"
dest: /my/bash/profile/dir/tomorrow-night-shell.sh
# 単一のカラースキームの全テンプレートを構築
- base16_builder:
scheme: tomorrow-night
register: base16_schemes
# 単一のテンプレートの全カラースキームを構築
- base16_builder:
template: shell
register: base16_schemes
# すべてのテンプレートに対してすべてのカラースキームを構築
- base16_builder: {}
register: base16_schemes
# 一部の選択したテンプレートのすべてのカラースキームを構築
- base16_builder:
template:
- shell
- i3
- qutebrowser
register: base16_schemes
# 最新のカラースキームとテンプレートのソースファイルをダウンロードしますが、何も構築しません
- base16_builder:
update: yes
build: no
# 単一のテンプレートとスキームを更新して再構築
- base16_builder:
update: yes
scheme: tomorrow-night
template: shell
register: base16_schemes
# 自分のBase16カラースキームを作成し、マスタースキームリストに取り込まれる前に参照したい場合は、マスターリストをフォークし、自分のスキームへの参照を追加し、ここでスキームソースの引数としてフォークしたリストを使用できます。
- base16_builder:
scheme: my-brand-new-color-scheme
template: shell
schemes_source: http://github.com/my-user/my-schemes-source-fork
templates_source: http://github.com/my-user/my-templates-source-fork
オプション
scheme:
description:
- 特定のカラースキームの名前を設定すると、そのスキームのみを構築し、デフォルトのすべてを構築しないようにします。
- 単一のスキームを構築する方が、すべてを構築するよりもはるかに速いです。
required: false
type: string
default: すべてのスキームを構築
scheme_family:
description:
- 単一のリポジトリに存在するスキームのグループ名を設定すると、そのグループのスキームのみを構築します。
- これが未設定の場合、スキーム引数が渡されると、スキーム名がスキームファミリー名に含まれていることが期待されます。
required: false
type: string
default: すべてのスキームを構築
template:
description:
- 特定のテンプレートの名前やテンプレート名のリストを設定すると、それらのみを構築します。
- 数少ないテンプレートを構築する方が、すべてを構築するよりもはるかに速いです。
required: false
type: list
default: すべてのテンプレートを構築
cache_dir:
description:
- クローンしたスキーム、テンプレート、ソースデータを保存する親ディレクトリ
- すでに存在しない場合は作成されます。
required: false
type: string
default: 最初に利用可能な$XDG_CACHE_DIR、$HOME/.cache、またはプラットフォーム由来の一時ディレクトリ
schemes_source:
description:
- スキームを見つけるために使用されるGitリポジトリのURLまたはローカルディレクトリパス
required: false
type: string
default: https://github.com/chriskempson/base16-schemes-source
templates_source:
description:
- テンプレートを見つけるために使用されるGitリポジトリのURLまたはローカルディレクトリパス
required: false
type: string
default: https://github.com/chriskempson/base16-templates-source
update:
description:
- カラースキームとテンプレートソースをクローンまたはプルします。
- デフォルトではすべてのスキームとテンプレートを更新しますが、スキームとテンプレートの引数を尊重します。
required: false
type: bool
default: no
build:
description:
- "no"に設定して、カラースキームやテンプレートの構築を無効にします。
- ソースのみをダウンロードするために、updateと一緒に使用すると便利です。
required: false
type: bool
default: yes
依存関係
Python 3.5以上。2.7でも動作する可能性がありますが、未テストです。
Ansible
Pystache、これをインストールするには:
pip install pystache
インストール
このロールはansible-galaxy
を使用してインストールできます。ロールをインストールする方法については、ansible-galaxy
のドキュメントを参照してください。最も簡単なのは次のようにすることです:
$ ansible-galaxy install mnussbaum.base16-builder-ansible
ロールをインストールした後は、それを参照し、提供されているbase16_builder
モジュールを使用できます。以下はその非常に短い例です:
---
roles:
- mnussbaum.base16-builder-ansible
tasks:
- base16_builder:
scheme: tomorrow-night
template: shell
register: base16_schemes
ansible-galaxy
を使用したくない、または使用できない場合は、このリポジトリをクローンして、Ansibleロールパスに直接配置できます。
ロールをインストールする方法に関わらず、上記で述べたようにPystacheの依存関係もインストールすることを忘れないでください。
開発
このプロジェクトは、Pipenvを使用して依存関係をインストールします。テストを実行するには:
pip install --user pipenv
pipenv install --dev
pipenv run nose2
すべてのサポートされているPythonのバージョンに対してDockerコンテナ内でテストを実行することもできます:
./ci
ライセンス
やること
- gitプルの並列化
- Base16の未請求スキームも使用できるようにする
Builds and updates Base16 color schemes and templates so that you can install them into config files and render them into own dotfile templates
ansible-galaxy install mnussbaum.base16-builder-ansible