aboutsummaryrefslogtreecommitdiffstats
path: root/modules/git/manifests/snapshot.pp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/git/manifests/snapshot.pp')
-rw-r--r--modules/git/manifests/snapshot.pp24
1 files changed, 24 insertions, 0 deletions
diff --git a/modules/git/manifests/snapshot.pp b/modules/git/manifests/snapshot.pp
new file mode 100644
index 00000000..06473efe
--- /dev/null
+++ b/modules/git/manifests/snapshot.pp
@@ -0,0 +1,24 @@
+define git::snapshot( $source,
+ $refresh = '*/5',
+ $user = 'root',
+ $branch = 'master') {
+ include git::client
+ #TODO
+ # should handle branch -> clone -n + branch + checkout
+ # create a script
+ # Ideally, should be handled by vcsrepo
+ # https://github.com/bruce/puppet-vcsrepo
+ # once it is merged in puppet
+ exec { "/usr/bin/git clone -b ${branch} ${source} ${name}":
+ creates => $name,
+ user => $user
+ }
+
+ if ($refresh != '0') {
+ cron { "update ${name}":
+ command => "cd ${name} && /usr/bin/git pull -q && /usr/bin/git submodule --quiet update --init --recursive",
+ user => $user,
+ minute => $refresh
+ }
+ }
+}