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 \
 						);
 		}