summaryrefslogtreecommitdiff
path: root/manifests/changes.pp
diff options
context:
space:
mode:
authorMicah <micah@leap.se>2016-05-24 10:19:24 -0400
committerMicah <micah@leap.se>2016-05-24 10:19:24 -0400
commita0341282c3eef05cf19c10e10f783e3c5536c8b0 (patch)
tree59ffbcee037e3a3b6393dac5a16ca0545d233e91 /manifests/changes.pp
Squashed 'puppet/modules/git/' content from commit ba5dd8d
git-subtree-dir: puppet/modules/git git-subtree-split: ba5dd8d5c8e09d521ff49f1ebc753601e449f828
Diffstat (limited to 'manifests/changes.pp')
-rw-r--r--manifests/changes.pp33
1 files changed, 33 insertions, 0 deletions
diff --git a/manifests/changes.pp b/manifests/changes.pp
new file mode 100644
index 00000000..71112051
--- /dev/null
+++ b/manifests/changes.pp
@@ -0,0 +1,33 @@
+# Usage
+# git::changes { name:
+# cwd => "/path/to/git/"
+# user => "me",
+# ensure => {*assume-unchanged*, tracked}
+# }
+#
+
+define git::changes ( $cwd, $user, $ensure='assume-unchanged' ) {
+
+ case $ensure {
+ default: { err ( "unknown ensure value '${ensure}'" ) }
+
+ assume-unchanged: {
+ exec { "assume-unchanged ${name}":
+ command => "/usr/bin/git update-index --assume-unchanged ${name}",
+ cwd => $cwd,
+ user => $user,
+ unless => "/usr/bin/git ls-files -v | grep '^[ch] ${name}'",
+ }
+ }
+
+ tracked: {
+ exec { "track changes ${name}":
+ command => "/usr/bin/git update-index --no-assume-unchanged ${name}",
+ cwd => $cwd,
+ user => $user,
+ onlyif => "/usr/bin/git ls-files -v | grep '^[ch] ${name}'",
+ }
+ }
+ }
+}
+