X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/ec3604e73735e4b1f447f8dbac41d056e086505f..2d35f1b5842adc089e28a6332a2bbfc941e9d168:/scripts/dfs diff --git a/scripts/dfs b/scripts/dfs index d78d2bb..df87150 100755 --- a/scripts/dfs +++ b/scripts/dfs @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env sh # # Adapted from Eridan's "fs" (cleanup, enhancements and switch to bash/Linux) # JM, 10/12/2004 @@ -11,10 +11,11 @@ # ------------------------------------------------------------------------- # Decoding options # ------------------------------------------------------------------------- -USAGE="Usage: $0 [-h(elp)] | [-n(arrow mode)] | [-w(eb output)]" +USAGE="Usage: $0 [-h(elp)] | [-n(arrow mode)] | [-w(eb output) | --type=<fstype> | --exclude-type=<fstype>]" NARROW_MODE=0 WEB_OUTPUT=0 +DF_OPTIONS="" while [ $# -gt 0 ]; do case "$1" in @@ -31,6 +32,12 @@ NARROW_MODE=1 "-w" ) WEB_OUTPUT=1 ;; +--type=*) +DF_OPTIONS+=" $1" +;; +--exclude-type=*) +DF_OPTIONS+=" $1" +;; * ) echo $USAGE exit @@ -58,6 +65,9 @@ AWK_COMMAND="/usr/bin/env gawk" ;; esac +# Add additional df options +DF_COMMAND+=$DF_OPTIONS + # ------------------------------------------------------------------------- # Grabbing "df" result # ------------------------------------------------------------------------- @@ -107,7 +117,7 @@ fi # Computing mount point max length # ------------------------------------------------------------------------- MOUNT_POINT_MAX_LENGTH=` \ - echo $SORTED_FILE_SYSTEMS_INFO | $AWK_COMMAND -v PATTERN=$PATTERN \ + echo "$SORTED_FILE_SYSTEMS_INFO" | $AWK_COMMAND -v PATTERN=$PATTERN \ ' BEGIN { mount_point_length_max = 15; @@ -212,9 +222,9 @@ echo "$SORTED_FILE_SYSTEMS_INFO" | $AWK_COMMAND -v DEBUG=$DEBUG -v PATTERN=$PATT printf ("\n%s", narrow_margin); else printf ("%-*s", LEFT_COLUMN + 2, ""); - print " Used Free Total "; + print " Used Free Total "; if (! NARROW_MODE) - print ""; + print " "; } } @@ -352,7 +362,7 @@ $0 ~ PATTERN { # printf ("stars_number = %d\n", stars_number); printf ("|"); - for (i = 1; i <= stars_number; i++) + for (i = 1; i <= stars_number && i <= 49; i++) { printf ("%s", "*"); } @@ -364,22 +374,22 @@ $0 ~ PATTERN { if (total_size > 1 * t_bytes) printf ( \ - "| %3d%% %5.1f %5.1f Tb\n", \ + "| %3d%% %6.1f %6.1f Tb\n", \ percentage_occupied, free_size / t_bytes, total_size / t_bytes \ ); else if (total_size > 1 * g_bytes) printf ( \ - "| %3d%% %5.1f %5.1f Gb\n", \ + "| %3d%% %6.1f %6.1f Gb\n", \ percentage_occupied, free_size / g_bytes, total_size / g_bytes \ ); else if (total_size > 1 * m_byptes) printf ( \ - "| %3d%% %5.1f %5.1f Mb\n", \ + "| %3d%% %6.1f %6.1f Mb\n", \ percentage_occupied, free_size / m_bytes, total_size / m_bytes \ ); else printf ( \ - "| %3d%% %5.1f %5.1f Kb\n", \ + "| %3d%% %6.1f %6.1f Kb\n", \ percentage_occupied, free_size / k_bytes, total_size / k_bytes \ ); }