On Thu, 2015-12-10 at 13:51 +0000, Ian Jackson wrote: > There is a fair amount of option parsing clobber here that will be > relevant shortly.
How dangerous is this script if you just run it e.g. without with_test? Specifically, would it nuke an existing database? > > Signed-off-by: Ian Jackson <ian.jack...@eu.citrix.com> > --- > mg-schema-create | 61 > +++++++++++++++++++++++++++++++++++++++++++++++ > mg-schema-test-database | 2 +- > 2 files changed, 62 insertions(+), 1 deletion(-) > create mode 100755 mg-schema-create > > diff --git a/mg-schema-create b/mg-schema-create > new file mode 100755 > index 0000000..54f1c76 > --- /dev/null > +++ b/mg-schema-create > @@ -0,0 +1,61 @@ > +#!/bin/bash > + > +# This is part of "osstest", an automated testing framework for Xen. > +# Copyright (C) 2009-2015 Citrix Inc. > +# > +# This program is free software: you can redistribute it and/or modify > +# it under the terms of the GNU Affero General Public License as > published by > +# the Free Software Foundation, either version 3 of the License, or > +# (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU Affero General Public License for more details. > +# > +# You should have received a copy of the GNU Affero General Public > License > +# along with this program. If not, see <http://www.gnu.org/licenses/>. > + > + > +# Usages: > +# > +# ./mg-schema-create [<options>] > +# > +# Database must already exist. (Ie, mg-schema-create does not > +# do CREATE DATABASE.) > +# > +# When setting up a production database, mg-schema-create should > +# be run *AS THE ROLE USER* who is to own all the resources. > +# > +# Options: > +# > +# -q don't print progress messages > + > +set -e > +set -o posix > +set -o pipefail > + > +progress () { printf "%s\n" "$*"; } > +progress=progress > +quietopt='' > + > +while [ $# != 0 ]; do > + arg=$1; shift > + case "$arg" in > + -q) > + progress=: > + quietopt=-q > + ;; > + *) > + echo >&2 "bad usage ($arg)"; exit 127 > + ;; > + esac > +done > + > +. ./cri-getconfig > + > +$progress "Populating database..." > + > +$(get_psql_cmd) $quietopt -f schema/initial.sql > + > +$progress "Database set up." > diff --git a/mg-schema-test-database b/mg-schema-test-database > index c68b1d2..3616c4d 100755 > --- a/mg-schema-test-database > +++ b/mg-schema-test-database > @@ -391,7 +391,7 @@ END > psql_do <<END > CREATE DATABASE $dbname; > END > - $(withtest get_psql_cmd) -q -f schema/initial.sql > + withtest ./mg-schema-create -q > > printf ".\n" > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel