Steve Linabery <[email protected]> writes: > Added command line options -y|--assumeyes to force operation. > If not provided, prompt user for confirmation to proceed. > --- > bin/aeolus-cleanup | 16 +++++++++++++--- > docs/man1/aeolus-cleanup.1 | 3 +++ > 2 files changed, 16 insertions(+), 3 deletions(-) > > diff --git a/bin/aeolus-cleanup b/bin/aeolus-cleanup > index eadc2ed..546d828 100755 > --- a/bin/aeolus-cleanup > +++ b/bin/aeolus-cleanup > @@ -19,18 +19,19 @@ usage() > cat << EOF > > USAGE: > -aeolus-cleanup [-d|--debug] [-h|--help] [-v|--verbose] [-s|--savedata] > [-p|--profile] > +aeolus-cleanup [-d|--debug] [-h|--help] [-v|--verbose] [-s|--savedata] > [-y|--assumeyes] [-p|--profile] > > OPTIONS: > -h | --help Show this message. > -d | --debug Debug logging mode. > -v | --verbose Verbose logging mode. > -s | --savedata Do not delete existing data. > + -y | --assumeyes Assume yes; assume that the answer to any question > which would be asked is yes. > -p | --profile Name of profile to use. A comma separated list can be > used to specify multiple profiles. > EOF > } > > -args=`getopt -o :hdvsp: --long help,debug,verbose,savedata,profile -- "$@"` > +args=`getopt -o :hdvsyp: --long > help,debug,verbose,savedata,assumeyes,profile -- "$@"` > if test $? != 0 > then > usage > @@ -39,6 +40,7 @@ fi > > SAVE_DATA=false > PUPPET_NODE='default' > +ASSUME_YES=false > > eval set -- $args > while true ; do > @@ -46,13 +48,21 @@ while true ; do > -h|--help) usage ; exit 1 ; shift ;; > -d|--debug) LOGLEVEL="--debug" ; shift ;; > -v|--verbose) LOGLEVEL="--verbose" ; shift ;; > - -s|--savedata) SAVE_DATA=true ; shift ;; > + -s|--savedata) SAVE_DATA=true ; shift ;; > + -y|--assumeyes) ASSUME_YES=true ; shift ;; > -p|--profile) PUPPET_NODE=$2 ; shift ; shift ;; > --) shift ; break ;; > *) usage ; exit 1 ;; > esac > done > > +if [ $ASSUME_YES != true ]; then > + read -p "aeolus-cleanup will delete local aeolus installations. Are you > sure you wish to proceed? [y/N]"
Add a colon and extra space at the end here, otherwise the user input gets jammed right up against the closing ']'. Also it feels "off" to me somehow having the input so far off to the right in the terminal, maybe break this into two lines: echo "aeolus-cleanup will delete local aeolus installations." read -p "Are you sure you wish to proceed? [y/N]: " Then you'd get: aeolus-cleanup will delete local aeolus installations. Are you sure you wish to proceed? [y/N]: y instead of: aeolus-cleanup will delete local aeolus installations. Are you sure you wish to proceed? [y/N]y (For comparison, here's some similar output from yum) Total download size: 19 M Is this ok [y/N]: y > + if [[ $REPLY != "y" && $REPLY != "Y" ]]; then > + exit > + fi > +fi > + > export FACTER_AEOLUS_ENABLE_HTTPS=true > export FACTER_AEOLUS_ENABLE_SECURITY=false > export FACTER_AEOLUS_SAVE_DATA=$SAVE_DATA > diff --git a/docs/man1/aeolus-cleanup.1 b/docs/man1/aeolus-cleanup.1 > index 1c2c71a..7a10852 100644 > --- a/docs/man1/aeolus-cleanup.1 > +++ b/docs/man1/aeolus-cleanup.1 > @@ -20,6 +20,9 @@ Verbose logging mode. > \fB\-s\fR | \fB\-\-savedata\fR > Do not delete existing data. > .TP > +\fB\-y\fR | \fB\-\-assumeyes\fR > +Assume yes; assume that the answer to any question which would be asked is > yes. > +.TP > \fB\-p\fR | \fB\-\-profile\fR > Name of profile to use. A comma separated list can be used to specify > multiple profiles. > .SH "SEE ALSO" > -- > 1.7.7.6 The USAGE line in the manpage needs updated to include the new option as well. Besides that and the minor style nit above, looks good and works as advertised!
