summaryrefslogtreecommitdiff
path: root/deps/gyp/test/actions/src/subdir1/counter.py
diff options
context:
space:
mode:
Diffstat (limited to 'deps/gyp/test/actions/src/subdir1/counter.py')
-rwxr-xr-xdeps/gyp/test/actions/src/subdir1/counter.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/deps/gyp/test/actions/src/subdir1/counter.py b/deps/gyp/test/actions/src/subdir1/counter.py
new file mode 100755
index 0000000000..d888f2e803
--- /dev/null
+++ b/deps/gyp/test/actions/src/subdir1/counter.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+
+# Copyright (c) 2010 Google Inc. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import sys
+import time
+
+output = sys.argv[1]
+persistoutput = "%s.persist" % sys.argv[1]
+
+count = 0
+try:
+ count = open(persistoutput, 'r').read()
+except:
+ pass
+count = int(count) + 1
+
+if len(sys.argv) > 2:
+ max_count = int(sys.argv[2])
+ if count > max_count:
+ count = max_count
+
+oldcount = 0
+try:
+ oldcount = open(output, 'r').read()
+except:
+ pass
+
+# Save the count in a file that is undeclared, and thus hidden, to gyp. We need
+# to do this because, prior to running commands, some build systems deletes
+# any declared outputs, so we would lose our count if we just wrote to the
+# given output file.
+open(persistoutput, 'w').write('%d' % (count))
+
+# Only write the given output file if the count has changed.
+if int(oldcount) != count:
+ open(output, 'w').write('%d' % (count))
+ # Sleep so the next run changes the file time sufficiently to make the build
+ # detect the file as changed.
+ time.sleep(1)
+
+sys.exit(0)