Skip to content

Instantly share code, notes, and snippets.

@BrianHicks
Last active December 18, 2015 14:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BrianHicks/5800476 to your computer and use it in GitHub Desktop.
Save BrianHicks/5800476 to your computer and use it in GitHub Desktop.
# create the repo
salty-repo:
file.directory:
- name: /opt/git-remote/salty
- require:
- file: git-remote-directory
cmd.run:
- name: "git init /opt/git-remote/salty --bare"
- unless: "test -e /opt/git-remote/salty/HEAD"
- require:
- file: salty-repo
# create hooks
salty-pre-receive:
file.managed:
- name: /opt/git-remote/salty/hooks/pre-receive
- mode: 755
- contents: |
#!/bin/bash
echo "pre-receive hook called"
- require:
- cmd: salty-repo
salty-post-receive:
file.managed:
- name: /opt/git-remote/salty/hooks/post-receive
- mode: 755
- contents: |
echo "post-receive hook called"
- require:
- cmd: salty-repo
{% for repo in salt["pillar.get"]("git-remote:repos", []) %}
{% set name = repo["name"] %}
{% set slug = name.replace(" ", "-").lower() %}
{% set path = "/opt/git-remote/" + slug %}
# create the repo
{{ slug }}-repo:
file.directory:
- name: {{ path }}
- require:
- file: git-remote-directory
cmd.run:
- name: "git init {{ path }} --bare"
- unless: "test -e {{ path }}/HEAD"
- require:
- file: {{ slug }}-repo
# create hooks
{% for hook, content in repo.get("hooks", {}).items() %}
{{ slug }}-{{ hook }}:
file.managed:
- name: {{ path }}/hooks/{{ hook }}
- mode: 755
- contents: |
{{ content|indent(6) }}
- require:
- cmd: {{ slug }}-repo
{% endfor %}{# for hooks #}
{% endfor %}{# for repo #}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment