diff --git a/importers/gpx-tracks b/importers/gpx-tracks index 6f8a82b..40fb990 100755 --- a/importers/gpx-tracks +++ b/importers/gpx-tracks @@ -15,13 +15,16 @@ case "$@" in -h|--help) usage && exit 0;; esac [ -z "$gpx_directory" ] && usage && exit 1 [ -z "$target_database" ] && usage && exit 1 -tmp="$(mktemp -d diogenes.XXXXX -p /tmp)/$(basename $target_database)" +# we write to a temporary location to make the replace option atomic (if on the same device) +tmp_dir="$(mktemp -d diogenes.XXXXX -p /tmp)" +tmp="$tmp_dir/$(basename $target_database)" # recursive scan and import while IFS= read -d '' -r file; do spatialite_xml_load -d "$tmp" -x "$file" done < <(find "$gpx_directory" -name '*.gpx' -print0) -mv $tmp $target_database +mv -f "$tmp" "$target_database" +rm -rf "$tmp_dir" # TODO: Create virtual joined table