+# Normally syncing via chef is a bad idea because syncing might involve
+# an update of database functions which should not be done while an update
+# is ongoing. Therefore we sync in between update cycles. There is an
+# exception for slaves: they get DB function updates from the master, so
+# only the source code needs to be updated, which chef may do.
+git source_directory do
+ action node[:nominatim][:state] == "slave" ? :sync : :checkout
+ repository node[:nominatim][:repository]
+ revision node[:nominatim][:revision]
+ enable_submodules true
+ user "nominatim"
+ group "nominatim"
+ not_if { node[:nominatim][:state] != "slave" && File.exist?("#{source_directory}/README.md") }
+ notifies :run, "execute[compile_nominatim]", :immediately