summaryrefslogtreecommitdiff
path: root/lib/spack/llnl/util/tty/__init__.py
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2014-03-12 22:24:47 -0400
committerTodd Gamblin <tgamblin@llnl.gov>2014-03-14 16:21:15 -0700
commit9d01df9e8aca7e1ddd88d9c9b1f42ca048878635 (patch)
treeb406cd2a6960fa8af784d2d44adf9234754db6d4 /lib/spack/llnl/util/tty/__init__.py
parent03ee31e0e8cf7c58eb4aafc6912e698c0a23427e (diff)
downloadspack-9d01df9e8aca7e1ddd88d9c9b1f42ca048878635.tar.gz
spack-9d01df9e8aca7e1ddd88d9c9b1f42ca048878635.tar.bz2
spack-9d01df9e8aca7e1ddd88d9c9b1f42ca048878635.tar.xz
spack-9d01df9e8aca7e1ddd88d9c9b1f42ca048878635.zip
Moving utilities to a common LLNL package.
Diffstat (limited to 'lib/spack/llnl/util/tty/__init__.py')
-rw-r--r--lib/spack/llnl/util/tty/__init__.py95
1 files changed, 95 insertions, 0 deletions
diff --git a/lib/spack/llnl/util/tty/__init__.py b/lib/spack/llnl/util/tty/__init__.py
new file mode 100644
index 0000000000..afc4b59a63
--- /dev/null
+++ b/lib/spack/llnl/util/tty/__init__.py
@@ -0,0 +1,95 @@
+##############################################################################
+# Copyright (c) 2013, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Written by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://scalability-llnl.github.io/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License (as published by
+# the Free Software Foundation) version 2.1 dated February 1999.
+#
+# 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 terms and
+# conditions of the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+import sys
+from llnl.util.tty.color import *
+
+debug = False
+verbose = False
+indent = " "
+
+def msg(message, *args):
+ cprint("@*b{==>} %s" % cescape(message))
+ for arg in args:
+ print indent + str(arg)
+
+
+def info(message, *args, **kwargs):
+ format = kwargs.get('format', '*b')
+ cprint("@%s{==>} %s" % (format, cescape(str(message))))
+ for arg in args:
+ print indent + str(arg)
+
+
+def verbose(message, *args):
+ if verbose:
+ info(message, *args, format='c')
+
+
+def debug(*args):
+ if debug:
+ info("Debug: " + message, *args, format='*g')
+
+
+def error(message, *args):
+ info("Error: " + str(message), *args, format='*r')
+
+
+def warn(message, *args):
+ info("Warning: " + str(message), *args, format='*Y')
+
+
+def die(message, *args):
+ error(message, *args)
+ sys.exit(1)
+
+
+def get_number(prompt, **kwargs):
+ default = kwargs.get('default', None)
+ abort = kwargs.get('abort', None)
+
+ if default is not None and abort is not None:
+ prompt += ' (default is %s, %s to abort) ' % (default, abort)
+ elif default is not None:
+ prompt += ' (default is %s) ' % default
+ elif abort is not None:
+ prompt += ' (%s to abort) ' % abort
+
+ number = None
+ while number is None:
+ ans = raw_input(prompt)
+ if ans == str(abort):
+ return None
+
+ if ans:
+ try:
+ number = int(ans)
+ if number < 1:
+ msg("Please enter a valid number.")
+ number = None
+ except ValueError:
+ msg("Please enter a valid number.")
+ elif default is not None:
+ number = default
+ return number