;ò òiýDc@sWdkZdkZdkZdkZdkZdkZdkZdkZdkZdk Z y dk Z Wne j onXdZ dZ dZdefd„ƒYZdfd„ƒYZdefd „ƒYZd efd „ƒYZd efd „ƒYZdefd„ƒYZdefd„ƒYZdfd„ƒYZedjo eƒZndS(Nsapplication/gatosgatosgato graph/algorithm toolsConfigurationExceptioncBs tZdZd„Zd„ZRS(s( to report configuration errors cCsti|ƒ||_dS(N(s Exceptions__init__sselfsmessage(sselfsmessage((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pys__init__:s cCs9t|dƒod|ii|ifSn |iiSdS(Nsmessages%s: %s(shasattrsselfs __class__s__name__smessage(sself((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pys__repr__>s(s__name__s __module__s__doc__s__init__s__repr__(((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pysConfigurationException6s  s configureOScBsbtZdZed„Zd„Zd„Zd„Zd„Zd„Z d„Z d„Z d „Z RS( s9 system configuration for gato file type support cCs)tiitidƒ|_||_dS(s- creates configurator object iN(sosspathsabspathssyssargvsselfs myExecutables DialogMaster(sselfs DialogMaster((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pys__init__IscCstdƒ‚dS(s] check, if already configured, returns true, if this executable is installed s&base class method should not be calledN(sConfigurationException(sself((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pyscheckQscCstdƒ‚dS(s9 ask user, if she/he likes configuration s&base class method should not be calledN(sConfigurationException(sself((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pysaskUserInstallWscCstdƒ‚dS(s: ask user, if she/he likes uninstallation s&base class method should not be calledN(sConfigurationException(sself((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pysaskUserUninstall]scCstdƒ‚dS(s) do system configuration s&base class method should not be calledN(sConfigurationException(sself((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pysconfigureSystemcscCstdƒ‚dS(s+ do system unconfiguration s&base class method should not be calledN(sConfigurationException(sself((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pysunconfigureSystemiscCs-|iƒ o |iƒo|iƒndS(N(sselfschecksaskUserInstallsconfigureSystem(sself((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pys runInstalloscCs,|iƒo |iƒo|iƒndS(N(sselfschecksaskUserUninstallsunconfigureSystem(sself((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pys runUninstallsscCs™tii|ƒ oti|ƒntii|tii|iƒƒ}tii|ƒoti |ƒnt i |i|ƒtii |ƒ|_dS(s7 installs this binary to another place N( sosspathsexistssmakedirssjoinsbasenamesselfs myExecutables newLocationsremovesshutilscopy2sabspath(sselfspaths newLocation((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pys installBinaryws$( s__name__s __module__s__doc__sNones__init__schecksaskUserInstallsaskUserUninstallsconfigureSystemsunconfigureSystems runInstalls runUninstalls installBinary(((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pys configureOSDs         sconfigureUnsupportedcBs(tZdZd„ZZZd„ZRS(s some tips and exit cCstS(N(sNone(sx((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pysˆscCsdtiGHdS(s sunsupported operating system %sN(ssyssplatform(sself((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pys runInstallŠs(s__name__s __module__s__doc__schecksconfigureSystemsaskUserInstalls runInstall(((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pysconfigureUnsupported„s s configureUNIXcBs”tZdZed„Zd„Zd„Zd„Zdei fd„ƒYZ d„Z dei fd „ƒYZ d „Z d „Zd „Zd „ZRS(s6 linux configuration expands mailcap file cCsvti||ƒtiidƒ otdƒ‚ntii tiddƒ|_ tii tiddƒ|_ dS(sF find script location, configuration file location... sHOMEs"could not determine home directorys.mailcaps .mime.typesN( s configureOSs__init__sselfs DialogMastersossenvironshas_keysConfigurationExceptionspathsjoins mailcapFilesmime_typesFile(sselfs DialogMaster((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pys__init__•s cCs3|iƒ|_|iƒ|_|io|iSdS(s N(sselfs check_mailcapscache_check_mailcapscheck_mime_typesscache_check_mime_types(sself((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pyscheck¡scCsAti|itiƒ odSnt|idƒ}xnoú|iƒ}| oPn|ddjoq>n|i ƒ}x0|ddjo|d |iƒi ƒ}q~W|i dƒ}t ti |d ƒ\}}|tjoCtii|i d ƒdƒo#tii|i d ƒd|iƒodSq7q>WdSd S( s isris#iÿÿÿÿs\s;is N(sossaccesssselfs mailcapFilesR_OKsfilesmailcapsreadlineslinesstripsrstripssplitsentriessmapsstringsmimeTypes viewCommands gatoMimeTypespathsexistsssamefiles myExecutable(sselfsmailcapsmimeTypes viewCommandsentriessline((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pys check_mailcap¨s(  S c Cstti|itiƒ odSnt|idƒ}x5no-|iƒ}| oPn|ddjoq>n|i ƒ}xH|ddjo6|iƒ}|djoPn|d |i ƒ}q~Wh}t idƒ}|i|ƒ}xF|D]>} | \}}|dd jo|dd!}n|||WdSdS(s isris#iÿÿÿÿs\ss(\w+)=((?:"[^"]*")|(?:[^"\s]*))s"stypesapplication/gatosextssgatoN(sossaccesssselfsmime_typesFilesR_OKsfiles mime_typessreadlineslinesstripsnewLinesrstrips mime_dictsrescompileskv_pairsfindallskv_pairsskvskeysvaluesget( sselfs mime_dictskeysnewLinesvalueskv_pairsslines mime_typesskv_pairskv((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pyscheck_mime_typesÆs<     , saskUserInstallDialogcBsGtZdZed„Zd„Zd„Zd„Zd„Zd„Z RS(sF dialog for system file manipulation of linux systems cCs,| o d}ntii|||ƒdS(NsSystem Configuration(stitlestkSimpleDialogsDialogs__init__sselfsmaster(sselfsmasterstitle((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pys__init__òs c Csïd}ti|ddƒid|ddƒtiƒ|_|iidƒti |ddd|id dd |i ƒid|ddƒti |dd d|id d d |i ƒid|dd ƒ|d7}ti |ƒ|_ |i idtiid ƒƒ||i _d|i _|i id|dddtiƒti|ddd |iddƒ|_|iid|dddd ƒ|d7}ti|ddƒid|ddƒtiƒ|_|iidƒti |ddd|id dƒid|ddƒti |dd d|id d ƒid|dd ƒ|d7}ti|ddƒid|ddƒtiƒ|_|iidƒti |ddd|id dƒid|ddƒti |dd d|id d ƒid|dd ƒdS(s istextsInstall Gato to another place?srowscolumnisYessvariablesvaluescommandsNois~/binsstickys search...spadys columnspansadd gato mime typesadd gato to .mailcapN(srowsTkintersLabelsmastersgridsIntVarsselfsinstallQssets RadiobuttonsenablePathEntrysdisablePathEntrysEntrysinstallPsinsertsosspaths expandusers rowLocations colLocationsEWsButtonsaskInstallPrefixssearchPsmimeQsmailcapQ(sselfsmastersrow((sD/mnt/gmirror/ports/math/py-gato/work/Gato/GatoSystemConfiguration.pysbody÷sF%   "  % %cCsB|iid|iid|iidtiƒti|id} | \}}|dd jo|dd!}n|||