diff options
Diffstat (limited to 'lib/garbage.sh')
-rw-r--r-- | lib/garbage.sh | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/lib/garbage.sh b/lib/garbage.sh deleted file mode 100644 index a6f1a3d..0000000 --- a/lib/garbage.sh +++ /dev/null @@ -1,76 +0,0 @@ -# pro-archman -# lib/garbage.sh -# Functions for garbage collection -# -# Copyright (C) 2013 Patrick "P. J." McDermott -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -[ "x${_GARBAGE_SM+set}" = 'xset' ] && return 0 -_GARBAGE_SM=1 - -use locale -use output -use dir - -collect_garbage() -{ - local cur_time= - local garbage= - local gar_time= - local dirs= - local file= - - info_v "$(get_msg 'collecting_garbage')" - - # NB: The %s format conversion specifier is not specified by POSIX, but - # it is supported by the GNU and BusyBox implementations of date. - cur_time=$(date '+%s') - - for garbage in "${base_dir}/.db/garbage/"*; do - if [ ! -f "${garbage}" ]; then - continue - fi - gar_time=${garbage##*/} - if [ ${cur_time} -lt ${gar_time} ]; then - break - fi - while read -r dirs file; do - info_v "$(get_msg 'collecting_garbage_file')" "${file}" - rm -f "${base_dir}/${file}" - while [ ${dirs} -gt 0 ]; do - file="${file%/*}" - try_rmdir "${base_dir}/${file}" - dirs=$(($dirs - 1)) - done - done <"${garbage}" - rm -f "${garbage}" - done -} - -mark_pool_garbage() -{ - local file="${1}" - local time= - - info_v "$(get_msg 'marking_garbage_file')" "${file}" - - # NB: The %s format conversion specifier is not specified by POSIX, but - # it is supported by the GNU and BusyBox implementations of date. - time=$(date '+%s') - time=$(($time + $conf_pool_gc_delay)) - - mkdir -p "${base_dir}/.db/garbage" - printf '2 %s\n' "${file}" >>"${base_dir}/.db/garbage/${time}" -} |