The branch, frodo has been updated
       via  2d922ad8c9d0b9fc32a5f3361c3749281839e107 (commit)
      from  afdbd514635af42d4d346ce7d7190a2591180a25 (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=2d922ad8c9d0b9fc32a5f3361c3749281839e107

commit 2d922ad8c9d0b9fc32a5f3361c3749281839e107
Author: Martijn Kaijser <[email protected]>
Date:   Thu Jun 6 12:57:42 2013 +0200

    [service.xbmc.versioncheck] 0.1.7

diff --git a/service.xbmc.versioncheck/.gitignore 
b/service.xbmc.versioncheck/.gitignore
index fa0349c..ebbb77a 100644
--- a/service.xbmc.versioncheck/.gitignore
+++ b/service.xbmc.versioncheck/.gitignore
@@ -3,3 +3,4 @@
 .pydevproject
 pysrc
 *.pyc
+.settings
diff --git a/service.xbmc.versioncheck/addon.xml 
b/service.xbmc.versioncheck/addon.xml
index 2c124f8..a68c138 100644
--- a/service.xbmc.versioncheck/addon.xml
+++ b/service.xbmc.versioncheck/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="service.xbmc.versioncheck"
        name="XBMC Version Check"
-      version="0.1.6"
+      version="0.1.7"
       provider-name="Team XBMC">
     <requires>
         <import addon="xbmc.addon" version="12.0.0"/>
diff --git a/service.xbmc.versioncheck/changelog.txt 
b/service.xbmc.versioncheck/changelog.txt
index 621bc46..07b8cf4 100644
--- a/service.xbmc.versioncheck/changelog.txt
+++ b/service.xbmc.versioncheck/changelog.txt
@@ -1,5 +1,9 @@
+v0.1.7
+- Update with 13.0 Gotham_alpha4
+
 v0.1.6
 - Update with 12.2 Frodo stable
+- Added Linux full system upgrade
 
 v0.1.5
 - Update with 13.0 Gotham_alpha3
@@ -14,4 +18,4 @@ v0.1.2
 - Add notification for Ubuntu users checking through apt command
 
 v0.1.1
-- Initial version
\ No newline at end of file
+- Initial version
diff --git a/service.xbmc.versioncheck/lib/aptdeamonhandler.py 
b/service.xbmc.versioncheck/lib/aptdeamonhandler.py
index af50163..0123127 100644
--- a/service.xbmc.versioncheck/lib/aptdeamonhandler.py
+++ b/service.xbmc.versioncheck/lib/aptdeamonhandler.py
@@ -90,7 +90,7 @@ class AptdeamonHandler:
 
     def upgrade_system(self):
         try:
-            log("Installing new version")
+            log("Upgrading system")
             if self.aptclient.upgrade_system(wait=True) == "exit-success":
                 return True
         except Exception as error:
diff --git a/service.xbmc.versioncheck/lib/common.py 
b/service.xbmc.versioncheck/lib/common.py
index 6bf8c15..5579e6f 100644
--- a/service.xbmc.versioncheck/lib/common.py
+++ b/service.xbmc.versioncheck/lib/common.py
@@ -48,9 +48,14 @@ def message_upgrade_success():
                                                               __icon__))
 
 def message_restart():
-    if xbmcgui.Dialog().yesno(__addonname__, __localize__(32014)):
+    if dialog_yesno(32014):
         xbmc.executebuiltin("RestartApp")
 
+def dialog_yesno(line1 = 0, line2 = 0):
+    return xbmcgui.Dialog().yesno(__addonname__,
+                                  __localize__(line1),
+                                  __localize__(line2))
+
 def upgrade_message(msg, upgrade):
     # Don't show while watching a video
     while(xbmc.Player().isPlayingVideo() and not xbmc.abortRequested):
@@ -67,17 +72,14 @@ def upgrade_message(msg, upgrade):
                             __localize__(32001),
                             __localize__(32002))
         # sets check to false which is checked on startup
-        if xbmcgui.Dialog().yesno(__addonname__,
-                                  __localize__(32009),
-                                  __localize__(32010)):
+        if dialog_yesno(32009, 32010):
             __addon__.setSetting("versioncheck_enable", 'false')
         # set first run to false to only show a popup next startup / every two 
days
         __addon__.setSetting("versioncheck_firstrun", 'false')
     # Show notification after firstrun
     elif not xbmc.abortRequested:
-        log(__localize__(32001) + '' + __localize__(32002))
         if upgrade:
-            return xbmcgui.Dialog().yesno(__addonname__, __localize__(msg))
+            return dialog_yesno(msg)
         else:
             xbmc.executebuiltin("XBMC.Notification(%s, %s, %d, %s)" 
%(__addonname__,
                                                                   
__localize__(32001) + '' + __localize__(32002),
diff --git a/service.xbmc.versioncheck/lib/shellhandlerapt.py 
b/service.xbmc.versioncheck/lib/shellhandlerapt.py
index d745a96..f539fee 100644
--- a/service.xbmc.versioncheck/lib/shellhandlerapt.py
+++ b/service.xbmc.versioncheck/lib/shellhandlerapt.py
@@ -31,19 +31,21 @@ class ShellHandlerApt:
 
     def __init__(self, usesudo=False):
         self.sudo = usesudo
-
-
-    def _check_versions(self, package):
+        installed, candidate = self._check_versions("xbmc", False)
+        if not installed:
+            # there is no package installed via repo, so we exit here
+            log("No installed package found, exiting")
+            import sys
+            sys.exit(0)
+
+    def _check_versions(self, package, update=True):
         _cmd = "apt-cache policy " + package
 
-        if not self._update_cache():
+        if update and not self._update_cache():
             return False, False
 
         try:
-            if self.sudo:
-                result = check_output('echo \'%s\' | sudo -S %s' 
%(self._getpassword(), _cmd), shell=True).split("\n")
-            else:
-                result = check_output([_cmd], shell=True).split("\n")
+            result = check_output([_cmd], shell=True).split("\n")
         except Exception as error:
             log("ShellHandlerApt: exception while executing shell command %s: 
%s" %(_cmd, error))
             return False, False
@@ -51,6 +53,10 @@ class ShellHandlerApt:
         if result[0].replace(":", "") == package:
             installed = result[1].split()[1]
             candidate = result[2].split()[1]
+            if installed == "(none)":
+                installed = False
+            if candidate == "(none)":
+                candiate = False
             return installed, candidate
         else:
             log("ShellHandlerApt: error during version check")
@@ -102,10 +108,11 @@ class ShellHandlerApt:
     def upgrade_system(self):
         _cmd = "apt-get upgrade -y"
         try:
+            log("Upgrading system")
             if self.sudo:
-                x = check_output('echo \'%s\' | sudo -S %s' %(pwd, cmd), 
shell=True)
+                x = check_output('echo \'%s\' | sudo -S %s' 
%(self._getpassword(), _cmd), shell=True)
             else:
-                x = check_output(cmd.split())
+                x = check_output(_cmd.split())
         except Exception as error:
             log("Exception while executing shell command %s: %s" %(_cmd, 
error))
             return False
diff --git a/service.xbmc.versioncheck/lib/versions.py 
b/service.xbmc.versioncheck/lib/versions.py
index 8c1de62..50c40bb 100644
--- a/service.xbmc.versioncheck/lib/versions.py
+++ b/service.xbmc.versioncheck/lib/versions.py
@@ -83,8 +83,10 @@ def compare_version(version_installed, versionlist):
                     oldversion = True
                     log("Version available  %s" %versionlist_prealpha[0])
 
+        log("Nothing to see here, move along. Running a latest non stable 
release")
         # Nothing to see here, move along
     else:
+        log("Nothing to see here, move along. Running a stable release")
         # Nothing to see here, move along
         pass
     return oldversion, msg
\ No newline at end of file
diff --git a/service.xbmc.versioncheck/resources/language/English/strings.po 
b/service.xbmc.versioncheck/resources/language/English/strings.po
index 89cc8d6..3df5d56 100644
--- a/service.xbmc.versioncheck/resources/language/English/strings.po
+++ b/service.xbmc.versioncheck/resources/language/English/strings.po
@@ -73,7 +73,7 @@ msgid "Do you want to restart Xbmc to finish the upgrade?"
 msgstr ""
 
 msgctxt "#32015"
-msgid "Do you want to check for a new version?"
+msgid "Do you want to check the repository for a new version?"
 msgstr ""
 
 msgctxt "#32020"
@@ -86,4 +86,8 @@ msgstr ""
 
 msgctxt "#32022"
 msgid "Please enter your password"
+msgstr ""
+
+msgctxt "#32023"
+msgid "Linux: Upgrade complete system"
 msgstr ""
\ No newline at end of file
diff --git a/service.xbmc.versioncheck/resources/settings.xml 
b/service.xbmc.versioncheck/resources/settings.xml
index f4efe60..b72c184 100644
--- a/service.xbmc.versioncheck/resources/settings.xml
+++ b/service.xbmc.versioncheck/resources/settings.xml
@@ -2,5 +2,6 @@
 <settings>
     <category label="32020">
         <setting label="32021" type="bool" id="versioncheck_enable" 
default="true"/>
+        <setting label="32023" type="bool" id="upgrade_system" 
default="false"/>
     </category>
 </settings>
diff --git a/service.xbmc.versioncheck/resources/versions.txt 
b/service.xbmc.versioncheck/resources/versions.txt
index 6229d4e..b564de2 100644
--- a/service.xbmc.versioncheck/resources/versions.txt
+++ b/service.xbmc.versioncheck/resources/versions.txt
@@ -140,6 +140,13 @@
                 "major": "13",
                 "minor": "0",
                 "tag": "prealpha",
+                "revision": "20130531-0ccc594",
+                "extrainfo": "alpha4"
+            },
+            {
+                "major": "13",
+                "minor": "0",
+                "tag": "prealpha",
                 "revision": "20130430-e8fe5cf",
                 "extrainfo": "alpha3"
             },
diff --git a/service.xbmc.versioncheck/service.py 
b/service.xbmc.versioncheck/service.py
index 977f583..fd89677 100644
--- a/service.xbmc.versioncheck/service.py
+++ b/service.xbmc.versioncheck/service.py
@@ -21,7 +21,7 @@
 import platform
 import xbmc
 import lib.common
-from lib.common import log
+from lib.common import log, dialog_yesno
 from lib.common import upgrade_message as _upgrademessage
 
 __addon__        = lib.common.__addon__
@@ -43,7 +43,7 @@ class Main:
             elif sys.argv[0] and sys.argv[1] == 'started':
                 if xbmc.getCondVisibility('System.Platform.Linux'):
                     packages = ['xbmc']
-                    # _versionchecklinux(packages)
+                    _versionchecklinux(packages)
                 else:
                     oldversion, msg = _versioncheck()
                     if oldversion:
@@ -65,7 +65,9 @@ def _versioncheck():
 
 
 def _versionchecklinux(packages):
-    if (platform.dist()[0] == "Ubuntu" or platform.dist()[0] == "Debian"):
+    if platform.dist()[0].lower() in ['ubuntu', 'debian', 'linuxmint']:
+        handler = False
+        result = False
         try:
             # try aptdeamon first
             from lib.aptdeamonhandler import AptdeamonHandler
@@ -73,25 +75,35 @@ def _versionchecklinux(packages):
         except:
             # fallback to shell
             # since we need the user password, ask to check for new version 
first
-            if _upgrademessage(32015, True):
-                from lib.shellhandlerapt import ShellHandlerApt
-                sudo = True
-                handler = ShellHandlerApt(sudo)
+            from lib.shellhandlerapt import ShellHandlerApt
+            sudo = True
+            handler = ShellHandlerApt(sudo)
+            if dialog_yesno(32015):
+                pass
+            elif dialog_yesno(32009, 32010):
+                log("disabling addon by user request")
+                __addon__.setSetting("versioncheck_enable", 'false')
+                return
 
+        if handler:
+            if handler.check_upgrade_available(packages[0]):
+                if _upgrademessage(32012, True):
+                    if __addon__.getSetting("upgrade_system") == "false":
+                        result = handler.upgrade_package(packages[0])
+                    else:
+                        result = handler.upgrade_system()
+                    if result:
+                        from lib.common import message_upgrade_success, 
message_restart
+                        message_upgrade_success()
+                        message_restart()
+                    else:
+                        log("Error during upgrade")
+        else:
+            log("Error: no handler found")
     else:
         log("Unsupported platform %s" %platform.dist()[0])
         sys.exit(0)
 
-    if handler:
-        if handler.check_upgrade_available(packages[0]):
-            if _upgrademessage(32012, True):
-                if handler.upgrade_package(packages[0]): 
-                    from lib.common import message_upgrade_success, 
message_restart
-                    message_upgrade_success()
-                    message_restart()
-    else:
-        log("Error: no handler found")
-
 
 
 if (__name__ == "__main__"):

-----------------------------------------------------------------------

Summary of changes:
 service.xbmc.versioncheck/.gitignore               |    1 +
 service.xbmc.versioncheck/addon.xml                |    2 +-
 service.xbmc.versioncheck/changelog.txt            |    6 ++-
 service.xbmc.versioncheck/lib/aptdeamonhandler.py  |    2 +-
 service.xbmc.versioncheck/lib/common.py            |   14 +++---
 service.xbmc.versioncheck/lib/shellhandlerapt.py   |   27 +++++++----
 service.xbmc.versioncheck/lib/versions.py          |    2 +
 .../resources/language/English/strings.po          |    6 ++-
 service.xbmc.versioncheck/resources/settings.xml   |    1 +
 service.xbmc.versioncheck/resources/versions.txt   |    7 +++
 service.xbmc.versioncheck/service.py               |   46 ++++++++++++-------
 11 files changed, 77 insertions(+), 37 deletions(-)


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to