diff options
Diffstat (limited to 'release/scripts/sysinfo.py')
-rw-r--r-- | release/scripts/sysinfo.py | 287 |
1 files changed, 0 insertions, 287 deletions
diff --git a/release/scripts/sysinfo.py b/release/scripts/sysinfo.py deleted file mode 100644 index 3a671e7221e..00000000000 --- a/release/scripts/sysinfo.py +++ /dev/null @@ -1,287 +0,0 @@ -#!BPY - -""" -Name: 'System Information...' -Blender: 236 -Group: 'HelpSystem' -Tooltip: 'Information about your Blender environment, useful to diagnose problems.' -""" - -__author__ = "Willian P. Germano" -__url__ = ("blenderartists.org", "blenderartists.org") -__version__ = "1.1" -__bpydoc__ = """\ -This script creates a text in Blender's Text Editor with information -about your OS, video card, OpenGL driver, Blender and Python versions, -script related paths and more. - -If you are experiencing trouble running Blender itself or any Blender Python -script, this information can be useful to fix any problems or at least for -online searches (like checking if there are known issues related to your -video card) or to get help from other users or the program's developers. -""" - -# $Id$ -# -# -------------------------------------------------------------------------- -# sysinfo.py version 1.1 Mar 20, 2005 -# -------------------------------------------------------------------------- -# ***** BEGIN GPL LICENSE BLOCK ***** -# -# Copyright (C) 2004: Willian P. Germano, wgermano _at_ ig.com.br -# -# 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; either version 2 -# 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 General Public License for more details. -# -# You should have received a copy of the GNU 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. -# -# ***** END GPL LICENCE BLOCK ***** -# -------------------------------------------------------------------------- - -import Blender -import Blender.sys as bsys -from Blender.BGL import * -import sys - -Blender.Window.WaitCursor(1) -# has_textwrap = 1 # see commented code below -output_filename = "system-info.txt" -warnings = 0 -notices = 0 # non critical warnings - -def cutPoint(text, length): - "Returns position of the last space found before 'length' chars" - l = length - c = text[l] - while c != ' ': - l -= 1 - if l == 0: return length # no space found - c = text[l] - return l - -def textWrap(text, length = 70): - lines = [] - while len(text) > 70: - cpt = cutPoint(text, length) - line, text = text[:cpt], text[cpt + 1:] - lines.append(line) - lines.append(text) - return lines - -## Better use our own text wrap functions here -#try: -# import textwrap -#except: -# has_textwrap = 0 -# msg = sys.exc_info()[1].__str__().split()[3] -# Blender.Draw.PupMenu("Python error:|This script requires the %s module" %msg) - -version = Blender.Get('version') / 100.0 -header = "= Blender %s System Information =" % version -lilies = len(header)*"="+"\n" -header = lilies + header + "\n" + lilies - -output = Blender.Text.New(output_filename) - -output.write(header + "\n\n") - -output.write("%s\n\n" % Blender.Get('buildinfo')) - -output.write("Platform: %s\n========\n\n" % sys.platform) - -output.write("Python:\n======\n\n") -output.write("- Version: %s\n\n" % sys.version) -output.write("- Paths:\n\n") -for p in sys.path: - output.write(p + '\n') - -output.write("\n- Directories:") - -dirlist = [ - ['homedir', 'Blender home dir', 1], - ['scriptsdir', 'Default dir for scripts', 1], - ['datadir', 'Default "bpydata/" data dir for scripts', 1], - ['uscriptsdir', 'User defined dir for scripts', 0], - ['udatadir', 'Data dir "bpydata/" inside user defined dir', 0] -] - -has_dir = {} - -for dir in dirlist: - dirname, dirstr, is_critical = dir - dirpath = Blender.Get(dirname) - output.write("\n\n %s:\n" % dirstr) - if not dirpath: - has_dir[dirname] = False - if is_critical: - warnings += 1 - output.write(" <WARNING> -- not found") - else: - notices += 1 - output.write(" <NOTICE> -- not found") - else: - output.write(" %s" % dirpath) - has_dir[dirname] = True - -if not has_dir['homedir']: - outmsg = """ - -<WARNING> - Blender home dir not found! - This should probably be "<path>/.blender/" - where <path> is usually the user's home dir. - - Blender's home dir is where entries like: - folders scripts/, plugins/ and locale/ and - files .Blanguages and .bfont.ttf - are located. - - It's also where Blender stores the Bpymenus file - with information about registered scripts, so it - only needs to scan scripts dir(s) when they are - modified. -""" - output.write(outmsg) - -has_uconfdir = False -if has_dir['udatadir']: - uconfigdir = bsys.join(Blender.Get('udatadir'), 'config') - output.write("\n\n User defined config data dir:") - if bsys.exists(uconfigdir): - has_uconfdir = True - output.write(" %s" % uconfigdir) - else: - notices += 1 - output.write(""" - <NOTICE> -- not found. - bpydata/config/ should be inside the user defined scripts dir. - It's used by Blender to store scripts configuration data. - (Since it is on the user defined dir, a new Blender installation - won't overwrite the data.) -""") - -configdir = bsys.join(Blender.Get('datadir'), 'config') -output.write('\n\n Default config data "bpydata/config/" dir:\n') -if bsys.exists(configdir): - output.write(" %s" % configdir) -else: - warnings += 1 - output.write("""<WARNING> -- not found. - config/ should be inside the default scripts *data dir*. - It's used by Blender to store scripts configuration data - when <user defined scripts dir>/bpydata/config/ dir is - not available. -""") - -if has_uconfdir: - output.write(""" - -The user defined config dir will be used. -""") - -cvsdir = 'release/scripts' -if bsys.dirsep == '\\': cvsdir = cvsdir.replace('/','\\') -sdir = Blender.Get('scriptsdir') -if sdir and sdir.find(cvsdir) >= 0: - if has_uconfdir: - notices += 1 - output.write("\n\n<NOTICE>:\n") - else: - warnings += 1 - output.write("\n\n<WARNING>:\n") - output.write(""" -It seems this Blender binary is located in its cvs source tree. - -It's recommended that the release/scripts/ dir tree is copied -to your blender home dir. -""") - if not has_uconfdir: - output.write(""" -Since you also don't have a user defined scripts dir with the -bpydata/config dir inside it, it will not be possible to save -and restore scripts configuration data files, since writing -to a dir inside a cvs tree is not a good idea and is avoided. -""") - -missing_mods = [] # missing basic modules - -try: - from BPyBlender import basic_modules - for m in basic_modules: - try: exec ("import %s" % m) - except: missing_mods.append(m) - - if missing_mods: - outmsg = """ - -<WARNING>: - -Some expected modules were not found. -Because of that some scripts bundled with Blender may not work. -Please read the FAQ in the Readme.html file shipped with Blender -for information about how to fix the problem. -Missing modules: -""" - output.write(outmsg) - warnings += 1 - for m in missing_mods: - output.write('-> ' + m + '\n') - if 'BPyRegistry' in missing_mods: - output.write(""" -Module BPyRegistry.py is missing! -Without this module it's not possible to save and restore -scripts configuration data files. -""") - - else: - output.write("\n\n- Modules: all basic ones were found.\n") - -except ImportError: - output.write("\n\n<WARNING>:\n Couldn't find BPyBlender.py in scripts/bpymodules/ dir.") - output.write("\n Basic modules availability won't be tested.\n") - warnings += 1 - -output.write("\nOpenGL:\n======\n\n") -output.write("- Renderer: %s\n" % glGetString(GL_RENDERER)) -output.write("- Vendor: %s\n" % glGetString(GL_VENDOR)) -output.write("- Version: %s\n\n" % glGetString(GL_VERSION)) -output.write("- Extensions:\n\n") - -glext = glGetString(GL_EXTENSIONS) -glext = textWrap(glext, 70) - -for l in glext: - output.write(l + "\n") - -output.write("\n\n- Simplistic almost useless benchmark:\n\n") -t = Blender.sys.time() -nredraws = 10 -for i in range(nredraws): - Blender.Redraw(-1) # redraw all windows -result = Blender.sys.time() - t -output.write("Redrawing all areas %s times took %.4f seconds.\n" % (nredraws, result)) - -if warnings or notices: - output.write("\n%s%s\n" % (warnings*"#", notices*".")) - if warnings: - output.write("\n(*) Found %d warning" % warnings) - if (warnings > 1): output.write("s") # (blush) - output.write(", documented in the text above.\n") - if notices: - output.write("\n(*) Found %d notice" % notices) - if (notices > 1): output.write("s") # (blush) - output.write(", documented in the text above.\n") - -else: output.write("\n==\nNo problems were found (scroll up for details).") - -Blender.Window.WaitCursor(0) -exitmsg = "Done!|Please check the text %s in the Text Editor window" % output.name -Blender.Draw.PupMenu(exitmsg) |