diff --git a/src/commands/backup.zsh b/src/commands/backup.zsh index f15dba1..bd7f745 100644 --- a/src/commands/backup.zsh +++ b/src/commands/backup.zsh @@ -39,13 +39,8 @@ function __tsm::commands::backup::session() { return 1 fi - local session_dump - session_dump="$(__tsm::helpers::dump)" || return $status - - local filename="$(__tsm::utils::filename).$(__tsm::utils::random).txt" - [[ -n "$session_file" ]] && filename="${session_file:A:t:r}.${filename}" - - builtin print -- "$session_dump" > "${TSM_BACKUPS_DIR}/$filename" \ + local filename="${session_file:A:t:r}.$(__tsm::utils::datetime::ctime "$session_file").$(__tsm::utils::random).txt" + command cp -f "$session_file" "${TSM_BACKUPS_DIR}/$filename" >/dev/null \ && __tsm::commands::backup::clean } diff --git a/src/setup.zsh b/src/setup.zsh index 7d0d9dc..5c13056 100644 --- a/src/setup.zsh +++ b/src/setup.zsh @@ -5,6 +5,7 @@ emulate -LR zsh zmodload zsh/parameter zmodload zsh/datetime +zmodload -F zsh/stat b:zstat setopt extended_glob setopt typeset_silent diff --git a/src/utils/datetime.zsh b/src/utils/datetime.zsh index bf27bc2..06ba149 100644 --- a/src/utils/datetime.zsh +++ b/src/utils/datetime.zsh @@ -5,3 +5,8 @@ function __tsm::utils::datetime() { # then it's definitely not mine. Don't be a PITA. builtin printf "%s.%03d" "$(builtin strftime "%Y-%m-%dT%H:%M:%S" $epochtime[1])" "$(($epochtime[2] / 1000000))" } + +# Return the creation time of a file +function __tsm::utils::datetime::ctime() { + builtin zstat -F "%Y-%m-%dT%H:%M:%S" +ctime "$1" +}