Commit b1c537bf authored by Seblu's avatar Seblu
Browse files

introduce ask and confirm function

parent ad726495
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -135,8 +135,8 @@ def c_del(parser, args):
            out("You will delete %s v%s in repository %s" % (img.name,
                                                             img.version,
                                                             repo.config.name))
            if raw_input("Are you sure (yes)" ) != "yes":
                raise Exception("Abort")
            if not confirm():
                raise Exception("Aborted!")
        repo.delete(img.name, img.version)

def c_extract(parser, args):
@@ -232,8 +232,8 @@ def c_move(parser, args):
                                                        srcimg.version,
                                                        srcrepo.config.name,
                                                        dstrepo.config.name))
            if raw_input("Are you sure (yes) " ) != "yes":
                raise Exception("Abort")
            if not confirm():
                raise Exception("Aborted!")
        arrow("Moving %s v%s from repository %s to %s" % (srcimg.name,
                                                          srcimg.version,
                                                          srcrepo.config.name,
+17 −0
Original line number Diff line number Diff line
@@ -108,3 +108,20 @@ def arrow(message, inclevel=None, level=None, fd=sys.stdout, endl=os.linesep):
        out("   #light##green#=>#reset# %s" % message)
    # restore old on one shot level
    arrowlevel(level = old_level)

def ask(message, fd=sys.stdout, endl=""):
    '''
    Ask a question on stdin
    '''
    out(message, fd=fd, endl=endl, flush=True)
    return raw_input()

def confirm(message=None, ans=None, fd=sys.stdout, endl=""):
    '''
    Ask a question on stdin
    '''
    if ans is None:
        ans = "yes"
    if message is None:
        message = "#u##l##w#Are you sure?#R# (%s) " % ans
    return ask(message, fd, endl) == ans