Support '--ask' option to 'repoman commit'.
authorMichał Górny <gentoo@mgorny.alt.pl>
Sun, 11 Jul 2010 22:14:39 +0000 (00:14 +0200)
committerZac Medico <zmedico@gentoo.org>
Sun, 11 Jul 2010 22:21:13 +0000 (15:21 -0700)
bin/repoman
man/repoman.1

index f14dc453398c2c88a8d8acd71b4e1a444a7e67e3..3532c4b2b6f5122e14c001eb449bad0835275fe8 100755 (executable)
@@ -52,6 +52,7 @@ from repoman import utilities
 from repoman.herdbase import make_herd_base
 from _emerge.Package import Package
 from _emerge.RootConfig import RootConfig
+from _emerge.userquery import userquery
 import portage.checksum
 import portage.const
 import portage.dep
@@ -163,6 +164,9 @@ def ParseArgs(args, qahelp):
        parser.description += "\nDistributed under the terms of the GNU General Public License v2"
        parser.description += "\nmodes: " + " | ".join(map(green,mode_keys))
 
+       parser.add_option('-a', '--ask', dest='ask',
+               help='Request a confirmation before commiting')
+
        parser.add_option('-m', '--commitmsg', dest='commitmsg',
                help='specify a commit message on the command line')
 
@@ -2276,6 +2280,10 @@ else:
                commitmessage += ", RepoMan options: --force"
        commitmessage += ")"
 
+       if options.ask and userquery('Commit changes?', True) != 'Yes':
+               print("* aborting commit.")
+               sys.exit(1)
+
        if vcs in ('cvs', 'svn') and (myupdates or myremoved):
                myfiles = myupdates + myremoved
                if not myheaders and "sign" not in repoman_settings.features:
index aec8b7adbcc1c5347440ca708c0c7e9b4d8f5dd0..362e6e5382cf8b2a943ea31fac543f6083d1b6de 100644 (file)
@@ -12,6 +12,9 @@ checks the quality of ebuild repositories.
 Note: \fBrepoman commit\fR only works \fIinside local\fR cvs, git, or subversion repositories.
 .SH OPTIONS
 .TP
+\fB-a\fR, \fB--ask\fR
+Request a confirmation before commiting
+.TP
 \fB--force\fR
 Force commit to proceed, regardless of QA issues. For convenience, this option
 causes the most time consuming QA checks to be skipped. The commit message will