diff options
Diffstat (limited to 'move-home-litter')
-rw-r--r-- | move-home-litter | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/move-home-litter b/move-home-litter new file mode 100644 index 0000000..5f3eba6 --- /dev/null +++ b/move-home-litter @@ -0,0 +1,48 @@ +#!/bin/bash + +# Copyright (c) 2006, 2009, 2014, 2016 Peter Palfrader <peter@palfrader.org> +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +set -e +set -u + +BASE="$HOME" +TGTDIR="$HOME/.litter" +WHITELIST="$HOME/.litter-whitelist" +RECENT="$HOME/recent" # make sure it's in the whitelist + +YESTERDAY="$(date -d '1 day ago' '+%F')" +TGT="$TGTDIR/$YESTERDAY" + +cd "$BASE" +mkdir -p "$TGT" + +find -mindepth 1 -maxdepth 1 ! -name '.*' -printf '%f\0' | + while read -d $'\0' fn; do + if grep -q -F -x "$fn" "$WHITELIST"; then + continue + fi + mv "$fn" "$TGT" +done +rmdir --ignore-fail-on-non-empty "$TGT" +if [ -e "$TGT" ] ; then + ln -s --relative --no-dereference -f "$TGT" "$RECENT" +fi |