diff --git a/gitattributesdb b/gitattributesdb index c35886c..987750d 100755 --- a/gitattributesdb +++ b/gitattributesdb @@ -4,8 +4,6 @@ # Darren 'Tadgy' Austin # Licensed under the terms of the GNU General Public License version 3. -# shellcheck disable=SC2317 - # Defaults. DB_FILE=".gitattributesdb" # Database file, relative to the repository root. DB_EXTRA=".gitattributesdb-extra" # List of base64 encoded paths (one per line) to also store/restore attributes for. @@ -175,7 +173,7 @@ store_attributes() { # Function to restore path attributes from the database. restore_attributes() { - local COUNT=0 ID FMT PATHNAME PREV_WARN=0 WARN=0 + local COUNT=0 ID PATHNAME PREV_WARN=0 WARN=0 # Informational message. log "Restoring path attributes from database" @@ -211,16 +209,11 @@ restore_attributes() { # Restore {a,m}times (and ACLs on Linux). if [[ "$PLATFORM" == "Linux" ]]; then - # BusyBox touch doesn't support nanosecond accuracy, so work around it. - FMT="%Y-%m-%d %H:%M:%S" - touch --help 2>&1 | grep BusyBox >/dev/null 2>&1 || { - FMT+=".%N" - } - touch -m -d "$(date -d "@${DB_MTIMES[$ID]}" +"$FMT" 2>/dev/null)" -- "$PATHNAME" 2>/dev/null || { + touch -m -d "$(date -d "@${DB_MTIMES[$ID]}" +'%Y-%m-%d %H:%M:%S.%N' 2>/dev/null)0" -- "$PATHNAME" 2>/dev/null || { warn "Failed to restore mtime: $PATHNAME" (( WARN++ )) } - touch -a -d "$(date -d "@${DB_ATIMES[$ID]}" +"$FMT" 2>/dev/null)" -- "$PATHNAME" 2>/dev/null || { + touch -a -d "$(date -d "@${DB_ATIMES[$ID]}" +'%Y-%m-%d %H:%M:%S.%N' 2>/dev/null)0" -- "$PATHNAME" 2>/dev/null || { warn "Failed to restore atime: $PATHNAME" (( WARN++ )) }