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

ライセンス

MIT

やること

  • 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
ライセンス
mit
ダウンロード
184
所有者