{ stdenv , zsh , findutils , coreutils , makeWrapper , wombat , opossum }: stdenv.mkDerivation rec { name = "run-opossum-${version}"; version = "0.0.0"; buildInputs = [ makeWrapper ]; src = builtins.toFile name '' #!${zsh}/bin/zsh oversized() { l=$(du -BG -s -t 75 $BEUTEL | wc -l) [[ $l -ge 1 ]] } echo "Started $(date)" > $LOGFILE opossum &>> $LOGFILE wombat search "(not (seen or hidden)) and (not forced)" | \ xargs -r -n 1 -d '\n' -- wombat force \ &>> $LOGFILE find $BEUTEL -type f -iname '*.tgz.bak' -delete if oversized; then wombat search "(seen or hidden) and forced" | \ while (read file && oversized); do wombat reset $file find $BEUTEL -type f -iname '*.tgz.bak' -delete done wombat search "seen or hidden" | \ while (read file && oversized); do wombat delete $file size=$(du -BG $BEUTEL) done fi echo "Ended $(date)" >> $LOGFILE ''; phases = [ "buildPhase" "installPhase" ]; buildPhase = '' cp -prd --no-preserve=timestamps $src run-opossum ''; installPhase = '' mkdir -p $out/bin cp run-opossum.sh $out/bin chmod +x $out/bin/run-opossum wrapProgram $out/bin/run-opossum \ --prefix PATH : ${wombat}/bin \ --prefix PATH : ${opossum}/bin \ --prefix PATH : ${findutils}/bin \ --prefix PATH : ${coreutils}/bin \ --set BEUTEL $HOME/.beutel \ --set LOGFILE $HOME/.last_opossum.log ''; }