#!/usr/bin/env python3 ############################################################################ # # MODULE: d.redraw # AUTHOR(S): Martin Landa # PURPOSE: Redraws the content of currently selected monitor # COPYRIGHT: (C) 2011-2015 by the GRASS Development Team # # This program is free software under the GNU General # Public License (>=v2). Read the file COPYING that # comes with GRASS for details. # ############################################################################# # %module # % description: Redraws the content of currently selected monitor. # % keyword: display # % keyword: graphics # % keyword: monitors # %end import os import sys from grass.script import core as grass from grass.script.utils import split def main(): mon = grass.gisenv().get("MONITOR", None) if not mon: grass.fatal( _("No graphics device selected. Use d.mon to select graphics device.") ) monCmd = grass.parse_command("d.mon", flags="g").get("cmd", None) if not monCmd or not os.path.isfile(monCmd): grass.fatal(_("Unable to open file '%s'") % monCmd) try: fd = open(monCmd, "r") cmdList = fd.readlines() grass.run_command("d.erase") for cmd in cmdList: if cmd.startswith("#"): continue grass.call(split(cmd)) except IOError as e: grass.fatal( _("Unable to open file '%s' for reading. Details: %s") % (monCmd, e) ) fd.close() # restore cmd file try: fd = open(monCmd, "w") fd.writelines(cmdList) except IOError as e: grass.fatal( _("Unable to open file '%s' for writing. Details: %s") % (monCmd, e) ) return 0 if __name__ == "__main__": options, flags = grass.parser() sys.exit(main())