[build] Fixing runtime check/save of last updated file for package data tarball

This commit is contained in:
Al
2015-08-08 17:15:57 -04:00
parent f38a53601b
commit 54aa6fe7df
4 changed files with 28 additions and 24 deletions

8
configure vendored
View File

@@ -592,6 +592,7 @@ PACKAGE_STRING='libpostal 0.1'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
ac_unique_file="src"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@@ -632,6 +633,7 @@ ac_header_list=
ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBPOSTAL_DATA_UPDATED_PATH
HAVE_STAT_FALSE
HAVE_STAT_TRUE
HAVE_DATE_STAT_FALSE
@@ -2993,6 +2995,7 @@ END
as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
fi
fi
case `pwd` in
*\ * | *\ *)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
@@ -11609,6 +11612,7 @@ CC="$lt_save_CC"
# Only expand once:
ac_config_headers="$ac_config_headers config.h"
@@ -12621,6 +12625,10 @@ else
fi
LAST_UPDATED_PATH=$srcdir/libpostal_data_last_updated
LIBPOSTAL_DATA_UPDATED_PATH=$LAST_UPDATED_PATH
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure

View File

@@ -50,4 +50,7 @@ AC_CONFIG_FILES([Makefile
AM_CONDITIONAL([HAVE_DATE_STAT], [date -r . >/dev/null 2>&1])
AM_CONDITIONAL([HAVE_STAT], [stat -f %Sm . >/dev/null 2>&1])
LAST_UPDATED_PATH=$srcdir/libpostal_data_last_updated
AC_SUBST([LIBPOSTAL_DATA_UPDATED_PATH], $LAST_UPDATED_PATH)
AC_OUTPUT

View File

@@ -1,5 +0,0 @@
ifeq ("$(wildcard $(LIBPOSTAL_DATA_LAST_UPDATED))", "")
LAST_MODIFIED_DATE = $(EPOCH_DATE)
else
LAST_MODIFIED_DATE = $(call get_last_modified,$(LIBPOSTAL_DATA_LAST_UPDATED))
endif

View File

@@ -26,43 +26,41 @@ LIBPOSTAL_S3_BUCKET_NAME = libpostal
LIBPOSTAL_S3_BUCKET_URL = http://$(LIBPOSTAL_S3_BUCKET_NAME).s3.amazonaws.com
LIBPOSTAL_DATA_FILE = libpostal_data.tar.gz
LIBPOSTAL_DATA_DIR = $(datadir)/libpostal/
EPOCH_DATE = Jan 1 00:00:00 1970
LIBPOSTAL_DATA_DIR = $(datadir)/libpostal/
LIBPOSTAL_DATA_LAST_UPDATED = $(LIBPOSTAL_DATA_DIR)libpostal_data_last_updated
LAST_MODIFIED_DATE = $(EPOCH_DATE)
if HAVE_DATE_STAT
USE_DATE_STAT = 1
define get_last_modified
$(shell date -d "@$$(shell cat $1)")
endef
else
if HAVE_STAT
USE_STAT = 1
define get_last_modified
$(shell date -r "$(shell cat $1)")
endef
else
$(error Cannot get file modification date on this platform);
endif
endif
$(eval include $(srcdir)/Makefile.LastModified)
libpostal_data_mkdir:
mkdir -p $(LIBPOSTAL_DATA_DIR)
libpostal_data.tar.gz: libpostal_data_mkdir
if [ `curl $(LIBPOSTAL_S3_BUCKET_URL)/$(LIBPOSTAL_DATA_FILE) -z "$(LAST_MODIFIED_DATE)" --silent --remote-time -o $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE) -w %{http_code}` = "200" ]; then \
libpostal_data_updated:
if [ ! -e @LIBPOSTAL_DATA_UPDATED_PATH@ ]; then \
echo "$(EPOCH_DATE)" > @LIBPOSTAL_DATA_UPDATED_PATH@; \
fi;
libpostal_data.tar.gz: libpostal_data_mkdir libpostal_data_updated
if [ $$(curl $(LIBPOSTAL_S3_BUCKET_URL)/$(LIBPOSTAL_DATA_FILE) -z "$$(cat @LIBPOSTAL_DATA_UPDATED_PATH@)" --silent --remote-time -o $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE) -w %{http_code}) = "200" ]; then \
if [ "x$(USE_DATE_STAT)" != "x" ]; then \
echo $$(date -d"$$(date -d "@$$(date -r $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE)) +%s") + 1 second" +%s) > $(LIBPOSTAL_DATA_LAST_UPDATED); \
echo $$(date -d "$$(date -d "@$$(date -r $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE) +%s)") + 1 second") > @LIBPOSTAL_DATA_UPDATED_PATH@; \
elif [ "x$(USE_STAT)" != "x" ]; then \
echo $$(date -r $$(stat -f %m $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE)) -v+1S +%s) > $(LIBPOSTAL_DATA_LAST_UPDATED); \
echo $$(date -r $$(stat -f %m $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE)) -v+1S) > @LIBPOSTAL_DATA_UPDATED_PATH@; \
fi; \
tar -xvzf $(LIBPOSTAL_DATA_DIR)$(LIBPOSTAL_DATA_FILE) -C $(LIBPOSTAL_DATA_DIR); \
fi;