Counterpoint
Artifact Content
Not logged in

Artifact 420f792a9add98480a7a58cbf6a85df297c8e7ce:

Attachment "bloat.awk" to wiki page [Bloat measurement] added by onys 2012-03-05 15:04:52.
#!/bin/awk -f

BEGIN {
  print "\nName of command and number of command line options:\n"

  gnu = "cat tac nl od base64"
  gnu = gnu " fmt pr fold"
  gnu = gnu " head tail split csplit"
  gnu = gnu " wc sum cksum md5sum sha1sum"
  gnu = gnu " sort uniq comm ptx tsort"
  gnu = gnu " cut paste join"
  gnu = gnu " tr expand unexpand"
  gnu = gnu " ls dir vdir dircolors"
  gnu = gnu " cp dd install mv rm shred"
  gnu = gnu " mkdir rmdir unlink mkfifo mknod ln link readlink"
  gnu - gnu " chgrp chmod chown touch"
  gnu = gnu " df du stat sync"
  gnu = gnu " yes"
  gnu = gnu " expr"
  gnu = gnu " tee"
  gnu = gnu " dirname basename pathchk"
  gnu = gnu " stty printenv tty"
  gnu = gnu " id logname whoami groups users who"
  gnu = gnu " date uname hostid"
  gnu = gnu " chcon runcon"
  gnu = gnu " env nice nohup su"
  gnu = gnu " sleep"
  gnu = gnu " factor seq"
   
  max = split (gnu,commands," ")
   
  for (i = 1; i <= max; i++) {
    options = 0;
    cmd = commands[i] " --help"
    while ((cmd | getline) > 0) {
      if ($0 ~ /^Usage:/) name = $2;
      if ($0 ~ /^ +-/) options++
    }
    close(cmd);
    print name ": " options;
    total = total + options;
  }
  print "\nNumber of commands: " max "\n"
  print "Total number of options: " total
  print "  without counting --version and --help: " total - (max * 2) "\n"
  print "Average per command: " total / max
  print "  without counting --version and --help: " (total / max) - 2 "\n"
}