Re: git-repack made my pack 317x larger...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



(I might complan a little less if git-repack would take -adlf rather
than insisting on -a -d -l -f.  Is that a deliberate choice or has just
nobody stepped up to revamp the option parsing?)

getopt is our friend, indeed.

(http://www.hmug.org/man/1/getopt.php)

The following code fragment shows how one might process the arguments for
    a command that can take the options -a and -b, and the option -o, which
    requires an argument.

          args=`getopt abo: $*`
          # you should not use `getopt abo: "$@"` since that would parse
          # the arguments differently from what the set command below does.
          if [ $? != 0 ]
          then
                  echo 'Usage: ...'
                  exit 2
          fi
          set -- $args
          # You cannot use the set command with a backquoted getopt directly,
          # since the exit code from getopt would be shadowed by those of set,
          # which is zero by definition.
          for i
          do
                  case "$i"
                  in
                          -a|-b)
                                  echo flag $i set; sflags="${i#-}$sflags";
                                  shift;;
                          -o)
                                  echo oarg is "'"$2"'"; oarg="$2"; shift;
                                  shift;;
                          --)
                                  shift; break;;
                  esac
          done
          echo single-char flags: "'"$sflags"'"
          echo oarg is "'"$oarg"'"

    This code will accept any of the following as equivalent:

          cmd -aoarg file file
          cmd -a -o arg file file
          cmd -oarg -a file file
          cmd -a -oarg -- file file
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux