summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rwxr-xr-xlib/puppet/parsedfile.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/puppet/parsedfile.rb b/lib/puppet/parsedfile.rb
new file mode 100755
index 000000000..337932309
--- /dev/null
+++ b/lib/puppet/parsedfile.rb
@@ -0,0 +1,36 @@
+# A simple class that tells us when a file has changed and thus whether we
+# should reload it
+
+require 'puppet'
+
+module Puppet
+ class ParsedFile
+ # Determine whether the file has changed and thus whether it should
+ # be reparsed
+ def changed?
+ tmp = self.stamp
+ retval = false
+ if tmp != @stamp
+ retval = true
+ @stamp = tmp
+ end
+ @statted = Time.now
+
+ return retval
+ end
+
+ # Create the file. Must be passed the file path.
+ def initialize(file)
+ @file = file
+ unless FileTest.exists?(@file)
+ raise Puppet::DevError, "Can not use a non-existent file for parsing"
+ end
+ @stamp = self.stamp
+ @statted = Time.now
+ end
+
+ def stamp
+ File.stat(@file).ctime
+ end
+ end
+end