From 897a2d12a668cffcc3f6d1a97807ae6edeea5881 Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Tue, 9 Oct 2012 08:43:54 -0500
Subject: LinHES-config: timezip.py  do not overwrite most settings if a value
 is already present.

-several formating changes and cleanup
---
 abs/core/LinHES-config/PKGBUILD   |   4 +-
 abs/core/LinHES-config/timezip.py | 298 ++++++++++++++++++++++++--------------
 2 files changed, 189 insertions(+), 113 deletions(-)

diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD
index df69f79..ebbabdc 100755
--- a/abs/core/LinHES-config/PKGBUILD
+++ b/abs/core/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=2.3
-pkgrel=169
+pkgrel=170
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev LinHes-config )
 pkgdesc="Install and configure your system"
 depends=('bc' 'libstatgrab'  'mysql-python' 'expect' 'curl' 'dnsutils' 'parted'
@@ -137,7 +137,7 @@ md5sums=('59e18e35359bebcd9d639c5e5b5d290d'
          '2a7f3b34e522acfd08283b86c8926aba'
          '36f5017e25c200354a954b17819aa1b2'
          '689b01f7636e09b2f9657c6ce6006ee7'
-         '38d17b5415c9fce98923a1b136a3fbe0'
+         '54d68963d5560489dd9e642a7c600540'
          'a6faa20d905e2fd92ce79acab044b759'
          '8ba06c2ce6129371548cc360ccca27f8'
          '5f890ea9bda6aef652d2560ca19dac07'
diff --git a/abs/core/LinHES-config/timezip.py b/abs/core/LinHES-config/timezip.py
index 89b95de..82efefc 100755
--- a/abs/core/LinHES-config/timezip.py
+++ b/abs/core/LinHES-config/timezip.py
@@ -23,6 +23,8 @@ except ImportError:
             raise RuntimeError("Neither the json or simplejson module is available.\nUse the --unsafe option to use python eval() as an ad-hoc json decoder")
 
 
+def no_update(data):
+    print "*  not updating %s, because a value is already present" %data
 
 
 
@@ -79,16 +81,23 @@ def printvars():
     print "installdb:" + installdb
     print "hostname: " + thishostname
     print "BEhostname:" + BEhostname
-    print "zipcode:" + zipcode
+    #print "zipcode:" + zipcode
     print "timezone:" + tz
     print "timezone region:" + tz_region
     print "timezone subregion:" + tz_subregion
     print "nfsip:" + nfsip
-    print "nfstoggle:" + nfstoggle
+    #print "nfstoggle:" + nfstoggle
     print "nfsmount:"  + nfsmount
-    print "hobbitclient:" + hobbitclient
+    #print "hobbitclient:" + hobbitclient
     print "windowmanager:" + windowmanager
     print "windowmanager style:" + wmstyle
+    print "Gallery Dir:" + gallerydir
+    print "Music dir:" + musicdir
+    print "Music template:" + filenametemplate
+    print "-----------------------------------"
+    print "\n\n\n"
+
+
 # connect
 def selectvars():
 
@@ -98,168 +107,197 @@ def selectvars():
     global tz_region
     global tz_subregion
     global nfsip
-    global nfstoggle
+    #global nfstoggle
     global nfsmount
-    global hobbitclient
+    #global hobbitclient
     global windowmanager
     global wmstyle
+    global musicdir
+    global gallerydir
+    global filenametemplate
 
     db = MySQLdb.connect(host=masterdb, user="mythtv", passwd="[REDACTED] db="mythconverg")
     # create a cursor
     cursor = db.cursor()
     # execute SQL statement
-    cursor.execute("select hostname from settings where value='BackendServerIP' and data=(%s)",(masterdb))
-    result = cursor.fetchone()
+
     try:
+        cursor.execute("select hostname from settings where value='BackendServerIP' and data=(%s)",(masterdb))
+        result = cursor.fetchone()
         BEhostname=result[0]
     except TypeError:
         BEhostname=""
 
-    cursor.execute("select data from settings where value='HostZipcode' and hostname=(%s)",(BEhostname))
-    result = cursor.fetchone()
-    try:
-        zipcode =  result[0]
-    except TypeError:
-        zipcode=""
-
-    cursor.execute("select data from settings where value='HostCentralNFSIP' and hostname=(%s)",(BEhostname))
-    result = cursor.fetchone()
     try:
+        cursor.execute("select data from settings where value='HostCentralNFSIP' and hostname=(%s)",(BEhostname))
+        result = cursor.fetchone()
         nfsip=result[0]
     except TypeError:
         nfsip=""
 
-    cursor.execute("select data from settings where value='HostHaveCentralNFS' and hostname=(%s)",(BEhostname))
-    result = cursor.fetchone()
-    try:
-        nfstoggle=result[0]
-    except TypeError:
-        nfstoggle=""
+    #cursor.execute("select data from settings where value='HostHaveCentralNFS' and hostname=(%s)",(BEhostname))
+    #result = cursor.fetchone()
+    #try:
+        #nfstoggle=result[0]
+    #except TypeError:
+        #nfstoggle=""
+
 
-    cursor.execute("select data from settings where value='HostNFSmountpoint' and hostname=(%s)",(BEhostname))
-    result = cursor.fetchone()
     try:
+        cursor.execute("select data from settings where value='HostNFSmountpoint' and hostname=(%s)",(BEhostname))
+        result = cursor.fetchone()
         nfsmount=result[0]
     except TypeError:
         nfsmount=""
 
-    cursor.execute("select data from settings where value='HostTimeZonetemp' and hostname=(%s)",(BEhostname))
-    #cursor.execute("select data from settings where value='HostTimeZone' and hostname=(%s)",(BEhostname))
-    result = cursor.fetchone()
+
     try:
+        #cursor.execute("select data from settings where value='HostTimeZonetemp' and hostname=(%s)",(BEhostname))
+        cursor.execute("select data from settings where value='HostTimeZone' and hostname=(%s)",(BEhostname))
+        result = cursor.fetchone()
         tz=result[0]
     except TypeError:
-        tz=""
+        tz = ""
 
     if tz == "":
         tz,tz_region, tz_subregion = geo_locate()
     else:
-        cursor.execute("select data from settings where value='HostTimeZoneRegion' and hostname=(%s)",(BEhostname))
-        result = cursor.fetchone()
         try:
+            cursor.execute("select data from settings where value='HostTimeZoneRegion' and hostname=(%s)",(BEhostname))
+            result = cursor.fetchone()
             tz_region=result[0]
         except TypeError:
             tz_region=""
 
         tempsubregion="HostTimeZoneRegion_" + tz_region
-
-        cursor.execute("select data from settings where value=%s and hostname=(%s)",(tempsubregion,BEhostname))
-        result = cursor.fetchone()
         try:
+            cursor.execute("select data from settings where value=%s and hostname=(%s)",(tempsubregion,BEhostname))
+            result = cursor.fetchone()
             tz_subregion=result[0]
         except TypeError:
             tz_subregion=""
 
 
 ###############
-    if  ( thishostname != BEhostname ):
-        cursor.execute("select data from settings where value='GlobalServiceHobbitserver'")
-        result = cursor.fetchone()
-        try:
-            hobbitclient=result[0]
-        except:
-            hobbitclient="1"
-    else:
-            hobbitclient="1"
+    #if  ( thishostname != BEhostname ):
+        #cursor.execute("select data from settings where value='GlobalServiceHobbitserver'")
+        #result = cursor.fetchone()
+        #try:
+            #hobbitclient=result[0]
+        #except:
+            #hobbitclient="1"
+    #else:
+            #hobbitclient="1"
+
 
 
-    cursor.execute("select data from settings where value='HostWindowManager' and hostname=(%s)",(BEhostname))
-    result = cursor.fetchone()
     try:
+        cursor.execute("select data from settings where value='HostWindowManager' and hostname=(%s)",(BEhostname))
+        result = cursor.fetchone()
         windowmanager=result[0]
     except TypeError:
-        windowmanager="default"
+        windowmanager=""
+
 
-    cursor.execute("select data from settings where value='HostEnhancedWMStyle' and hostname=(%s)",(BEhostname))
-    result = cursor.fetchone()
     try:
+        cursor.execute("select data from settings where value='HostEnhancedWMStyle' and hostname=(%s)",(BEhostname))
+        result = cursor.fetchone()
         wmstyle=result[0]
     except TypeError:
-        wmstyle="0"
+        wmstyle=""
+
+
+    try:
+        cursor.execute("select data from settings where value='MusicLocation' and hostname=(%s)",(BEhostname))
+        result = cursor.fetchone()
+        musicdir=result[0]
+    except TypeError:
+        musicdir=""
+
+
+    try:
+        cursor.execute("select data from settings where value='FilenameTemplate' and hostname=(%s)",(BEhostname))
+        result = cursor.fetchone()
+        filenametemplate=result[0]
+    except TypeError:
+        filenametemplate=""
+
+
+    try:
+        cursor.execute("select data from settings where value='GalleryDir' and hostname=(%s)",(BEhostname))
+        result = cursor.fetchone()
+        gallerydir=result[0]
+    except TypeError:
+        gallerydir=""
 
 
 def insertvars():
 
     db = MySQLdb.connect(host=installdb, user="mythtv", passwd="[REDACTED] db="mythconverg")
     cursor = db.cursor()
-#inserting the zipcode
-    cursor.execute("select * from settings where value='HostZipcode' and hostname=(%s)",(thishostname))
-    result = cursor.fetchone()
-    if ( zipcode!="" ):
-        if (result == None):
-            cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostZipcode',(%s),(%s))",(zipcode,thishostname))
-            print "inserting zipcode"
-        else:
-            cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostZipcode'",(zipcode,thishostname))
-            print "updating zipcode"
+##inserting the zipcode
+    #cursor.execute("select * from settings where value='HostZipcode' and hostname=(%s)",(thishostname))
+    #result = cursor.fetchone()
+    #if ( zipcode!="" ):
+        #if (result == None):
+            #cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostZipcode',(%s),(%s))",(zipcode,thishostname))
+            #print "inserting zipcode"
+        #else:
+            #cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostZipcode'",(zipcode,thishostname))
+            #print "updating zipcode"
 
 #inserting the timezone
-    cursor.execute("select *  from settings where value='HostTimeZone' and hostname=(%s)",(thishostname))
-    result = cursor.fetchone()
+
     if ( tz != ""):
-         if (result == None):
+        cursor.execute("select *  from settings where value='HostTimeZone' and hostname=(%s)",(thishostname))
+        result = cursor.fetchone()
+        if (result == None):
             cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostTimeZone',(%s),(%s))",(tz,thishostname))
             print "inserting timezone"
-         else:
+        else:
             cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostTimeZone'",(tz,thishostname))
             print "updating timezone"
 
-    cursor.execute("select *  from settings where value='HostTimeZoneRegion' and hostname=(%s)",(thishostname))
-    result = cursor.fetchone()
-    if ( tz != ""):
-         if (result == None):
+        cursor.execute("select *  from settings where value='HostTimeZoneRegion' and hostname=(%s)",(thishostname))
+        result = cursor.fetchone()
+        if (result == None):
             cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostTimeZoneRegion',(%s),(%s))",(tz_region,thishostname))
             print "inserting timezone region"
-         else:
+        else:
             cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostTimeZoneRegion'",(tz_region,thishostname))
             print "updating timezone region"
 
-    tempsubregion="HostTimeZoneRegion_" + tz_region
-    cursor.execute("select *  from settings where value=%s and hostname=(%s)",(tempsubregion,thishostname))
-    result = cursor.fetchone()
-    if ( tz != ""):
-         if (result == None):
+        tempsubregion="HostTimeZoneRegion_" + tz_region
+
+        cursor.execute("select *  from settings where value=%s and hostname=(%s)",(tempsubregion,thishostname))
+        result = cursor.fetchone()
+        if (result == None):
             cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ((%s),(%s),(%s))",(tempsubregion,tz_subregion,thishostname))
             print "inserting timezone subregion"
-         else:
-            cursor.execute("update settings set data=(%s) where hostname=(%s) and value=(%s)",(tempsubregion,tz_subregion,thishostname))
+        else:
+            cursor.execute("update settings set data=(%s) where hostname=(%s) and value=(%s)",(tz_subregion,thishostname,tempsubregion))
             print "updating timezone subregion"
 
 
-#start of NFSIP
-    cursor.execute("select data from settings where value='HostCentralNFSIP' and hostname=(%s)",(thishostname))
-    result = cursor.fetchone()
+##start of NFSIP
+
     if ( nfsip != ""):
+        cursor.execute("select data from settings where value='HostCentralNFSIP' and hostname=(%s)",(thishostname))
+        result = cursor.fetchone()
         if (result == None):
             cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostCentralNFSIP',(%s),(%s))",(nfsip,thishostname))
             print "inserting nfsip"
+        else:
+            no_update("HostCentralNFSIP")
+            #cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostCentralNFSIP'",(nfsip,thishostname))
+            #print "updating nfsip"
 
-    if (nfstoggle != ""):
-        cursor.execute("select data from settings where value='HostHaveCentralNFS' and hostname=(%s)",(thishostname))
-        result = cursor.fetchone()
-        if (result == None):
-            cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostHaveCentralNFS',(%s),(%s))",(nfstoggle,thishostname))
-            print "inserting nfstoggle"
+    #if (nfstoggle != ""):
+        #cursor.execute("select data from settings where value='HostHaveCentralNFS' and hostname=(%s)",(thishostname))
+        #result = cursor.fetchone()
+        #if (result == None):
+            #cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostHaveCentralNFS',(%s),(%s))",(nfstoggle,thishostname))
+            #print "inserting nfstoggle"
 
     if ( nfsmount !="") :
         cursor.execute("select data from settings where value='HostNFSmountpoint' and hostname=(%s)",(thishostname))
@@ -267,37 +305,72 @@ def insertvars():
         if (result == None):
             cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostNFSmountpoint',(%s),(%s))",(nfsmount,thishostname))
             print "inserting nfsmountpoint"
+        else:
+            no_update("nfsmount")
+            #cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostNFSmountpoint'",(nfsmount,thishostname))
+            #print "updating nfsmount"
 
-#hobbitclient
-    cursor.execute("select *  from settings where value='HostServiceHobbitclient' and hostname=(%s)",(thishostname))
-    result = cursor.fetchone()
-    if ( hobbitclient != ""):
-         if (result == None):
-            cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostServiceHobbitclient',(%s),(%s))",(hobbitclient,thishostname))
-            print "inserting hobbitcleint"
-         else:
-            cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostServiceHobbitclient'",(hobbitclient,thishostname))
-            print "updating hobbitclient"
 
     #windowmanager
-    cursor.execute("select *  from settings where value='HostWindowManager' and hostname=(%s)",(thishostname))
-    result = cursor.fetchone()
-    if (result == None):
-        cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostWindowManager',(%s),(%s))",(windowmanager,thishostname))
-        print "inserting windowmanager"
-    else:
-        cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostWindowManager'",(windowmanager,thishostname))
-        print "updating windowmanager"
+    if windowmanager != "":
+        cursor.execute("select *  from settings where value='HostWindowManager' and hostname=(%s)",(thishostname))
+        result = cursor.fetchone()
+        if (result == None):
+            cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostWindowManager',(%s),(%s))",(windowmanager,thishostname))
+            print "inserting windowmanager"
+        else:
+            no_update("windowmanager")
+            #cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostWindowManager'",(windowmanager,thishostname))
+            #print "updating windowmanager"
+
+
+    if wmstyle != "" :
+        cursor.execute("select *  from settings where value='HostEnhancedWMStyle' and hostname=(%s)",(thishostname))
+        result = cursor.fetchone()
+        if (result == None):
+            cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostEnhancedWMStyle',(%s),(%s))",(wmstyle,thishostname))
+            print "inserting windowmanager style"
+        else:
+            no_update("wm_style")
+            #cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostEnhancedWMStyle'",(wmstyle,thishostname))
+            #print "updating windowmanager style"
+
+#music and gallery
+
+    if ( musicdir != "" ):
+        cursor.execute("select * from settings where value='MusicLocation' and hostname=(%s)",(thishostname))
+        result = cursor.fetchone()
+        if (result == None):
+            cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('MusicLocation',(%s),(%s))",(musicdir,thishostname))
+            print "inserting musicdir"
+        else:
+            no_update("musicdir")
+            #cursor.execute("update settings set data=(%s) where hostname=(%s) and value='MusicLocation'",(musicdir,thishostname))
+            #print "updating musicdir"
+
+    if ( filenametemplate != "" ):
+        cursor.execute("select * from settings where value='FilenameTemplate' and hostname=(%s)",(thishostname))
+        result = cursor.fetchone()
+        if (result == None):
+            cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('FilenameTemplate',(%s),(%s))",(filenametemplate,thishostname))
+            print "inserting filenametemplate"
+        else:
+            no_update("filenametemplate")
+            #cursor.execute("update settings set data=(%s) where hostname=(%s) and value='FilenameTemplate'",(filenametemplate,thishostname))
+            #print "updating filenametemplate"
+
+    if ( gallerydir != "" ):
+        cursor.execute("select * from settings where value='GalleryDir' and hostname=(%s)",(thishostname))
+        result = cursor.fetchone()
+        if (result == None):
+            cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('GalleryDir',(%s),(%s))",(gallerydir,thishostname))
+            print "inserting gallerydir"
+        else:
+            no_update("gallerydir")
+            #cursor.execute("update settings set data=(%s) where hostname=(%s) and value='GalleryDir'",(gallerydir,thishostname))
+            #print "updating gallerydir"
 
 
-    cursor.execute("select *  from settings where value='HostEnhancedWMStyle' and hostname=(%s)",(thishostname))
-    result = cursor.fetchone()
-    if (result == None):
-        cursor.execute("INSERT INTO  settings (value,data,hostname) VALUES ('HostEnhancedWMStyle',(%s),(%s))",(wmstyle,thishostname))
-        print "inserting windowmanager style"
-    else:
-        cursor.execute("update settings set data=(%s) where hostname=(%s) and value='HostEnhancedWMStyle'",(wmstyle,thishostname))
-        print "updating windowmanager style"
 
 
 def main(argv):
@@ -310,8 +383,11 @@ def main(argv):
     global tz
     global tz_region
     global tz_subregion
-    global nfsip
-    global hobbitclient
+    #global nfsip
+    #global hobbitclient
+    global musicdir
+    global gallerydir
+    global filenametemplate
 
     try:
         opts, args = getopt.getopt(argv, "hm:d:n:", ["help", "masterdb=", "installdb=" , "hostname=" ] )
-- 
cgit v0.12

