#!/bin/bash

show_dirty_and_writeback() {
  grep -e Dirty: -e Writeback: /proc/meminfo \
    | sed "s/\([0-9]\+\)[0-9][0-9][0-9] kB/   \1 MB/"
}

if [ "$1" = "watch" -o "$1" = "-w" ]; then
  export -f show_dirty_and_writeback
  watch --interval 1 show_dirty_and_writeback
  exit 0
fi

sync
echo 3 > /proc/sys/vm/drop_caches

if [ "$1" = "clearswap" -o "$1" = "-c" ]; then
  (swapoff -a; swapon -a) & top
fi
