]> git.openstreetmap.org Git - chef.git/blob - cookbooks/nominatim/templates/default/nominatim-update.erb
ed5decedf29659ab74143055b43e7c5d90474b32
[chef.git] / cookbooks / nominatim / templates / default / nominatim-update.erb
1 #!/bin/bash
2
3 # DO NOT EDIT - This file is being maintained by Chef
4
5 date "+%c === Starting Nominatim update cycle"
6
7 starttime=`date +%s`
8
9 <% if node.platform?("debian") -%>
10   # First update the importer and run the migrations.
11   if <%= @venvprefix %>pip list --outdated | fgrep -q nominatim-db; then
12     <%= @venvprefix %>pip install -U nominatim-db
13     if ! /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-refresh-db; then
14       date "+%c === Database refresh failed. Stopping updates."
15       exit 1
16     fi
17   fi
18   # Then only attempt to update the frontend.
19   if <%= @venvprefix %>pip list --outdated | fgrep -q nominatim-api; then
20     <%= @venvprefix %>pip install -U nominatim-api
21     systemctl reload nominatim
22   fi
23 <% else -%>
24   <% if node[:nominatim][:enable_git_updates] -%>
25   if /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-source; then
26
27     if ! /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-refresh-db; then
28       date "+%c === Database refresh failed. Stopping updates."
29       exit 1
30     fi
31
32     pushd <%= @builddir %>
33     make install
34
35     systemctl reload nominatim
36   fi
37   <% end -%>
38 <% end -%>
39
40 if ! /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-data; then
41   date "+%c === Data update failed. Stopping updates."
42   exit 1
43 fi
44
45 date "+%c === Nominatim update cycle finished"
46
47 # sleep a bit if updates take less than a minute
48 endtime=`date +%s`
49 elapsed=$((endtime - starttime))
50 if [[ $elapsed -lt 60 ]]; then
51   sleepy=$((60 - $elapsed))
52   date "+%c === Sleeping for ${sleepy}s..."
53   sleep $sleepy
54 fi