diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2009-07-29 14:33:14 +0100 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2009-07-29 14:33:14 +0100 |
commit | 64b04685b6fd029f2f70f7017bfd51d26ccb0d11 (patch) | |
tree | 5d525e2b58e5a9b27ea3096a0047770446baaf29 /bitbake | |
parent | 231b5f67844da39949e04ae53557cea04aacffdd (diff) | |
download | poky-64b04685b6fd029f2f70f7017bfd51d26ccb0d11.tar.gz |
bitbake: Add a --revisions-changed commandline option to indicate when floating srcrevs have changed
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'bitbake')
-rwxr-xr-x | bitbake/bin/bitbake | 3 | ||||
-rw-r--r-- | bitbake/lib/bb/cooker.py | 3 | ||||
-rw-r--r-- | bitbake/lib/bb/fetch/__init__.py | 23 |
3 files changed, 28 insertions, 1 deletions
diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake index f3294106ef..842ba0441e 100755 --- a/bitbake/bin/bitbake +++ b/bitbake/bin/bitbake | |||
@@ -108,6 +108,9 @@ Default BBFILES are the .bb files in the current directory.""" ) | |||
108 | parser.add_option( "-P", "--profile", help = "profile the command and print a report", | 108 | parser.add_option( "-P", "--profile", help = "profile the command and print a report", |
109 | action = "store_true", dest = "profile", default = False ) | 109 | action = "store_true", dest = "profile", default = False ) |
110 | 110 | ||
111 | parser.add_option( "", "--revisions-changed", help = "Set the exit code depending on whether upstream floating revisions have changed or not", | ||
112 | action = "store_true", dest = "revisions_changed", default = False ) | ||
113 | |||
111 | options, args = parser.parse_args(sys.argv) | 114 | options, args = parser.parse_args(sys.argv) |
112 | 115 | ||
113 | configuration = BBConfiguration(options) | 116 | configuration = BBConfiguration(options) |
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 1f31d1203a..b0692431bb 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -612,6 +612,9 @@ class BBCooker: | |||
612 | # initialise the parsing status now we know we will need deps | 612 | # initialise the parsing status now we know we will need deps |
613 | self.updateCache() | 613 | self.updateCache() |
614 | 614 | ||
615 | if self.configuration.revisions_changed: | ||
616 | sys.exit(bb.fetch.fetcher_compare_revisons(self.configuration.data)) | ||
617 | |||
615 | if self.configuration.parse_only: | 618 | if self.configuration.parse_only: |
616 | bb.msg.note(1, bb.msg.domain.Collection, "Requested parsing .bb files only. Exiting.") | 619 | bb.msg.note(1, bb.msg.domain.Collection, "Requested parsing .bb files only. Exiting.") |
617 | return 0 | 620 | return 0 |
diff --git a/bitbake/lib/bb/fetch/__init__.py b/bitbake/lib/bb/fetch/__init__.py index 39a8180a89..a97138d271 100644 --- a/bitbake/lib/bb/fetch/__init__.py +++ b/bitbake/lib/bb/fetch/__init__.py | |||
@@ -97,13 +97,34 @@ def fetcher_init(d): | |||
97 | bb.msg.debug(1, bb.msg.domain.Fetcher, "Keeping SRCREV cache due to cache policy of: %s" % srcrev_policy) | 97 | bb.msg.debug(1, bb.msg.domain.Fetcher, "Keeping SRCREV cache due to cache policy of: %s" % srcrev_policy) |
98 | elif srcrev_policy == "clear": | 98 | elif srcrev_policy == "clear": |
99 | bb.msg.debug(1, bb.msg.domain.Fetcher, "Clearing SRCREV cache due to cache policy of: %s" % srcrev_policy) | 99 | bb.msg.debug(1, bb.msg.domain.Fetcher, "Clearing SRCREV cache due to cache policy of: %s" % srcrev_policy) |
100 | pd.delDomain("BB_URI_HEADREVS") | 100 | pd.renameDomain("BB_URI_HEADREVS", "BB_URI_HEADREVS_PREVIOUS") |
101 | else: | 101 | else: |
102 | bb.msg.fatal(bb.msg.domain.Fetcher, "Invalid SRCREV cache policy of: %s" % srcrev_policy) | 102 | bb.msg.fatal(bb.msg.domain.Fetcher, "Invalid SRCREV cache policy of: %s" % srcrev_policy) |
103 | # Make sure our domains exist | 103 | # Make sure our domains exist |
104 | pd.addDomain("BB_URI_HEADREVS") | 104 | pd.addDomain("BB_URI_HEADREVS") |
105 | pd.addDomain("BB_URI_HEADREVS_PREVIOUS") | ||
105 | pd.addDomain("BB_URI_LOCALCOUNT") | 106 | pd.addDomain("BB_URI_LOCALCOUNT") |
106 | 107 | ||
108 | def fetcher_compare_revisons(d): | ||
109 | """ | ||
110 | Compare the revisions in the persistant cache with current values and | ||
111 | return true/false on whether they've changed. | ||
112 | """ | ||
113 | |||
114 | pd = persist_data.PersistData(d) | ||
115 | data = pd.getKeyValues("BB_URI_HEADREVS") | ||
116 | data2 = pd.getKeyValues("BB_URI_HEADREVS_PREVIOUS") | ||
117 | |||
118 | changed = False | ||
119 | for key in data: | ||
120 | if key not in data2 or data2[key] != data[key]: | ||
121 | bb.msg.debug(1, bb.msg.domain.Fetcher, "%s changed" % key) | ||
122 | changed = True | ||
123 | return True | ||
124 | else: | ||
125 | bb.msg.debug(2, bb.msg.domain.Fetcher, "%s did not change" % key) | ||
126 | return False | ||
127 | |||
107 | # Function call order is usually: | 128 | # Function call order is usually: |
108 | # 1. init | 129 | # 1. init |
109 | # 2. go | 130 | # 2. go |