def cmdUpdate(self, pkg, flag): if pkg == None: # Query for all installed packages prog_list = db_wrapper.get_applications(mydb) else: # Query db for requested package prog_list = (True, pkg ) #print(prog_list[1]) print("Checking for updates") for p in prog_list[1]: print(p + ":") result = db_wrapper.get_app_version(mydb, p) if flag.keep_going or (result[0] == True and result[1] != []) : if result[1] != []: pkg_version = result[1][0] else: pkg_version = "N/A" pkg_current = "Not found" else: print("{0:15s} {1:10s} {2:10s}").format(p, "N/A", "Not found") continue # Check if new version has been checked "recently" # TODO: Define check frequency in settings.py if result[1] != []: last_checked = date.fromtimestamp(float(result[1][1])) today = date.fromtimestamp(time.time()) # Check for new versions only once a day # if flag.force or (today - last_checked ) > timedelta(days=1): # pass # Check if out of date # download new version if available # set out-of-date # Download updates if they are available and !(flag.no_execute) if not flag.no_execute: prog = app(p, mydb, appLogFileName) if prog.checkUpdates(): prog.dlUpdates()
#!/usr/bin/env python import wpm_db import db_wrapper import time mydb = wpm_db.db("dbFile", "dbLog") # Test Operations on Application Table print("\nTest Operations on Application Table") print("Unique App Insert Test", db_wrapper.add_app(mydb, "App", "1.0", "http://test_app.com", "http://test_app.com/dl", True)) print("Unique App Insert Test", db_wrapper.add_app(mydb, "latestApp", "1.2.3", "http://test.com", "http://test.com/dl")) print(db_wrapper.get_applications(mydb)) print("Non-Unique App Insert Test", db_wrapper.add_app(mydb, "latestApp", "1.2.3", "http://test.com", "http://test.com/dl")) print("Get Version Test", db_wrapper.get_app_version(mydb, "latestApp")) print("Get URLs Test", db_wrapper.get_app_urls(mydb, "latestApp")) print("Get UninstallFirst Flag - True", db_wrapper.get_app_uninstallFirst(mydb, "App")) print("Get UninstallFirst Flag - False", db_wrapper.get_app_uninstallFirst(mydb, "latestApp")) print("Get URLs Original", db_wrapper.get_app_urls(mydb, "latestApp")) db_wrapper.update_main_url(mydb, "latestApp", "http://newTest.com/index.php") print("After Change main URL", db_wrapper.get_app_urls(mydb, "latestApp")) db_wrapper.update_download_url(mydb, "latestApp", "http://newTest.com/dl") print("After Change dl URL", db_wrapper.get_app_urls(mydb, "latestApp")) print("Update Version", db_wrapper.add_update_file(mydb, "latestApp", "1.5")) print("Get Version", db_wrapper.get_app_version(mydb, "latestApp")) # Test Operations on Dependency Table print("\nTest Operations on Dependency Table") print("Add Dependencies", db_wrapper.add_dependencies(mydb, "App", ["latestApp", "latestApp"])) print("Get Dependency Name", db_wrapper.get_app_dependencies(mydb, "App")) print("Add Dependencies - Error", db_wrapper.add_dependencies(mydb, "App", ["DNE"]))
def cmdInfo(self, pkg, flag): if pkg == None: # Query for all installed packages prog_list = db_wrapper.get_applications(mydb) else: # Query db for requested package prog_list = (True, pkg ) #print(prog_list[1]) # Print header to the package table print("") print("{0:15s} {1:10s} {2:10s}").format("Name", "Version", "Up-to-date?") print("{0:15s} {1:10s} {2:10s}").format("----", "-------", "-----------") for p in prog_list[1]: result = db_wrapper.get_app_version(mydb, p) pkg_current = "Y" if flag.keep_going or (result[0] == True and result[1] != []) : if result[1] != []: pkg_version = result[1][0] else: pkg_version = "N/A" pkg_current = "Not found" else: print("{0:15s} {1:10s} {2:10s}").format(p, "N/A", "Not found") continue # Check if new version has been checked "recently" # TODO: Define check frequency in settings.py if result[1] != []: last_checked = date.fromtimestamp(float(result[1][1])) today = date.fromtimestamp(time.time()) # Check for new versions only once a day if flag.force or (today - last_checked ) > timedelta(days=1): pass # Check if out of date # download new version if available # set out-of-date # Download updates if they are available and !(flag.no_execute) if not flag.no_execute: prog = app(p, mydb, appLogFileName) if prog.checkUpdates(): pkg_current = "Y" else: pkg_current = "N" #print(prog.getExeURLs()) #prog.dlUpdates() else: # If version has been checked already... pkg_current = "N" # if out of date and !(flag.no_execute): #prog.dlUpdates() # Display installed packages, version and up to date status print("{0:15s} {1:10s} {2:10s}").format(p, pkg_version, pkg_current) print("")