Note that since argparse is in python-2.7 this works there too (without
the change to the shabang - !#/usr/bin/python).
I tested this on a rhel7 with python-2.7
On Wed, 28 Nov 2018, John Kacur wrote:
> The purpose of this change was to create a -h, or --help option.
> The following changes were made.
>
> 1. pflags is now python3 only, since it uses argparse.
> 2. The handling of pids or process names is improved, instead of a
> command separated list (without spaces), the more standard unix way of
> space separated command line arguements are used.
>
> This is explained in the help
>
> ./pflags -h
> usage: pflags [-h] [pid [pid ...]]
>
> Print process flags
>
> positional arguments:
> pid a list of pids or names
>
> optional arguments:
> -h, --help show this help message and exit
>
> Signed-off-by: John Kacur <jkacur(a)redhat.com>
> ---
> pflags | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/pflags b/pflags
> index abfcfe9e9ec1..a1667fc06131 100755
> --- a/pflags
> +++ b/pflags
> @@ -1,4 +1,4 @@
> -#! /usr/bin/python
> +#! /usr/bin/python3
> # -*- python -*-
> # -*- coding: utf-8 -*-
> # print process flags
> @@ -14,8 +14,9 @@
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> # General Public License for more details.
>
> -from __future__ import print_function
> +
> import procfs, re, fnmatch, sys
> +import argparse
> from functools import reduce
> from six.moves import map
>
> @@ -38,8 +39,13 @@ def main(argv):
> global ps
> ps = procfs.pidstats()
>
> + parser = argparse.ArgumentParser(description='Print process flags')
> + parser.add_argument('pid', nargs='*', help='a list of pids or
names')
> + args = parser.parse_args()
> +
> if (len(argv) > 1):
> - pids = reduce(lambda i, j: i + j, list(map(thread_mapper,
argv[1].split(","))))
> + pids = args.pid
> + pids = reduce(lambda i, j: i + j, list(map(thread_mapper, pids)))
> else:
> pids = list(ps.processes.keys())
>
> --
> 2.19.1
>
>