source: lliurex-up/trunk/fuentes/lliurex-up-cli/usr/sbin/lliurex-upgrade @ 3405

Last change on this file since 3405 was 3405, checked in by jrpelegrina, 4 years ago

WIP in new cli

  • Property svn:executable set to *
File size: 3.6 KB
Line 
1#!/usr/bin/env python
2
3from clint import arguments
4from clint.textui import puts, indent, colored
5import lliurex.lliurexup
6import os
7import sys
8import commands
9import time
10
11class LliurexUpCli:
12        def __init__(self):
13                self.lliurexcore = lliurex.lliurexup.LliurexUpCore()
14
15       
16        def initActionsScript(self):
17                command=self.lliurexcore.initActionsScript()
18                try:
19                        os.system(command)
20
21                except Exception as e:
22                        print e         
23
24        def checkLliurexUp(self):
25
26                is_lliurexup_updated=self.lliurexcore.isLliurexUpIsUpdated()
27
28                if not is_lliurexup_updated:
29                        print ("  [Lliurex-up]: Updating Lliurex-up")
30                        is_lliurexup_installed=self.lliurexcore.installLliurexUp()
31                        print ("  [Lliurex-up]: Lliurex-up is now udpate and will be reboot now" )
32                        time.sleep(3)
33                        os.execv("lliurex-upgrade",sys.argv)   
34
35                else:
36                        print ("  [Lliurex-up]: Lliurex-up is updated.Nothing to do")   
37
38
39        def checkMirror(self):
40
41                is_mirror_updated=self.lliurexcore.lliurexMirrorIsUpdated()
42
43                if is_mirror_updated !=None:
44                        is_mirror_running=self.lliurexcore.lliurexMirrorIsRunning()
45
46                        if is_mirror_updated['action']=='update':
47                                if not is_mirror_running:
48                                        response=raw_input(' [LLiurex-up]: Do you want update mirror (yes/no): ').lower()
49                                        if response.startswith('y'):
50                                                print("  [Lliurex-up]: Updating mirror. Wait a moment please")
51                                                command='lliurex-mirror update llx16'
52                                                os.system(command)
53                                        else:
54                                                print("  [Lliurex-up]: Mirror update.Nothing to do")           
55                else:
56                        print("  [Lliurex-up]: Nothing to do with mirror")
57
58       
59        def checkingInitialFlavourToInstall(self):
60
61                print ("Checking flavour")
62
63        def     getPackagesToUpdate(self):
64                self.packages=self.lliurexcore.getPackagesToUpdate()
65
66
67        def preActionsScript(self):
68                command=self.lliurexcore.preActionsScript()
69                try:
70                        os.system(command)
71
72                except Exception as e:
73                        print e
74
75        def distUpgrade(self):
76                command=self.lliurexcore.distUpgradeProcess()
77                try:
78                        os.system(command)
79                except Exception as e:
80                        print e
81
82        def postActionsScript(self):
83                command=self.lliurexcore.postActionsScript()
84                try:
85                        os.system(command)
86                except Exception as e:
87                        print e                                 
88
89
90
91        def main(self):
92
93                print("  [Lliurex-up]: Checking system")
94                self.initActionsScript()
95                print("  [Lliurex-up]: Checking Lliurex-up version")
96                self.checkLliurexUp()
97                print("  [Lliurex-up]: Checking if mirror is updated")
98                self.checkMirror()
99                print("  [Lliurex-up]: Checking LliurexVersion from local repository")
100                version_update=self.lliurexcore.getLliurexVersionLocal()
101                print("  [Lliurex-up]: Checking LliurexVersion from lliurex.net")
102                version_available=self.lliurexcore.getLliurexVersionLliurexNet()
103
104                print("  [Lliurex-up]: Checking if installation of flavour is required")
105                self.checkingInitialFlavourToInstall():
106
107                print("  [Lliurex-up]: Checking for new updates")
108                self.getPackagesToUpdate()
109
110                if len(self.packages)>0:
111                        print("  [Lliurex-up]:List of packages to update")
112                        for item in self.packages:
113                                print item + ": " + packages[item]["candidate"]
114
115                        response=raw_input(' [LLiurex-up]: Do you want to udpate the system(yes/no)): ').lower()
116                        if response.startswith('y'):
117                                print("  [Lliurex-up]: Preparin system to update")
118                                self.preActionsScript()
119                                print("  [Lliurex-up]: Downloading and installing packages")
120                                self.distUpgrade()
121                                print("  [Lliurex-up]: Ending the update")
122                                self.postActionsScript()
123                                print("  [Lliurex-up]: The system is now update")
124
125                        else:
126                                return 0               
127
128                else:
129                        print("  [Lliurex-up]: Your systems is updated. Nothing to do")         
130                        return 0                       
131
132
133
134
135if __name__ == '__main__':
136        if os.geteuid() != 0:
137                print "You need be root!"
138                sys.exit(1)
139
140        lliurexupcli = LliurexUpCli()
141        lliurexupcli.main()
Note: See TracBrowser for help on using the repository browser.