def getTimestamp(plugin, checksum): from fiji.updater.logic import PluginCollection, XMLFileReader if PluginCollection.getInstance().size() == 0: from java.io import FileInputStream from java.util.zip import GZIPInputStream print 'Reading db.xml.gz' XMLFileReader(GZIPInputStream(FileInputStream(dbPath)), 0) plugin = PluginCollection.getInstance().getPlugin(plugin) if plugin.current != None and checksum == plugin.current.checksum: return plugin.current.timestamp for version in plugin.previous.keySet(): if checksum == version.checksum: return version.timestamp
def getTimestamp(plugin, checksum): from fiji.updater.logic import PluginCollection, XMLFileReader plugins = PluginCollection() from java.io import FileInputStream from java.util.zip import GZIPInputStream print 'Reading db.xml.gz' XMLFileReader(plugins).read(None, GZIPInputStream(FileInputStream(dbPath)), 0) if plugin.startswith('precompiled/'): plugin = plugin[12:] plugin = plugins.getPlugin(plugin) if plugin == None: print 'Could not find plugin', plugin, 'in db.xml.gz' return None if plugin.current != None and checksum == plugin.current.checksum: return plugin.current.timestamp for version in plugin.previous.keySet(): if checksum == version.checksum: return version.timestamp
#!/bin/sh ''''exec "$(dirname "$0")"/ImageJ.sh --jython "$0" "$@" # (call again with fiji)''' from os import system from sys import argv from fiji.updater.logic import PluginCollection, XMLFileReader, XMLFileWriter from java.io import FileInputStream, FileOutputStream from java.lang.System import getProperty from java.util.zip import GZIPInputStream, GZIPOutputStream dbPath = getProperty('ij.dir') + '/db.xml.gz' plugins = PluginCollection() XMLFileReader(plugins).read(None, GZIPInputStream(FileInputStream(dbPath)), 0) for plugin in plugins: if plugin.current == None or not plugin.filename.endswith('.jar'): continue if len(argv) > 1: if not plugin.filename in argv[1:]: continue from ij import IJ IJ.debugMode = True print 'Handling', plugin dependencies = [dep.filename for dep in plugin.getDependencies()] seen = set() # dependencies have timestamps, so let's keep them intact when possible result = plugins.analyzeDependencies(plugin) for dependency in result:
from os import listdir, mkdir, remove, rmdir, system from os.path import isdir from re import compile from sys import argv, exit from sys.stderr import write from tempfile import mktemp from fiji.updater.logic import Checksummer, PluginCollection, \ XMLFileReader, XMLFileWriter from fiji.updater.util import StderrProgress, Util from java.io import FileInputStream, FileOutputStream from java.lang.System import getProperty from java.util.zip import GZIPInputStream, GZIPOutputStream dbPath = getProperty('ij.dir') + '/db.xml.gz' plugins = PluginCollection() XMLFileReader(plugins).read(None, GZIPInputStream(FileInputStream(dbPath))) def addPreviousVersion(plugin, checksum, timestamp): p = plugins.getPlugin(plugin) if p != None: if not p.hasPreviousVersion(checksum): p.addPreviousVersion(checksum, timestamp) prefix = '/var/www/update/' pattern = compile('^(.*)-([0-9]{14})$') def addPreviousVersions(path): write('Adding ' + path + '...\r') if isdir(prefix + path): names = listdir(prefix + path)
updateDirectory = argv[2] argv[1:3] = [] else: updateDirectory = '/var/www/update/' def stripPrecompiled(string): if string.startswith('precompiled/'): return string[12:] return string files = [stripPrecompiled(file) for file in argv[1:]] Updater.MAIN_URL = 'file:' + updateDirectory downloader = XMLFileDownloader() downloader.start() plugins = PluginCollection() progress = StderrProgress() checksummer = Checksummer(progress) if len(files) == 0: checksummer.updateFromLocal() else: if files[0] == '--auto': automatic = True files = files[1:] else: automatic = False checksummer.updateFromLocal(files) # check dependencies check = files needUpload = []
def stripPrecompiled(string): if string.startswith('precompiled/'): return string[12:] return string files = [stripPrecompiled(file) for file in argv[1:]] Updater.MAIN_URL = 'file:' + updateDirectory downloader = XMLFileDownloader() downloader.start() reader = XMLFileReader(downloader.getInputStream(), 0) progress = StderrProgress() checksummer = Checksummer(progress) plugins = PluginCollection.getInstance() if len(files) == 0: checksummer.updateFromLocal() else: if files[0] == '--auto': automatic = True files = files[1:] else: automatic = False checksummer.updateFromLocal(files) # check dependencies check = files needUpload = [] while len(check) > 0: implied = [] for file in check:
else: updateDirectory = '/var/www/update/' def stripPrecompiled(string): if string.startswith('precompiled/'): return string[12:] return string files = [stripPrecompiled(file) for file in argv[1:]] Updater.MAIN_URL = 'file:' + updateDirectory downloader = XMLFileDownloader() downloader.start() plugins = PluginCollection() progress = StderrProgress() checksummer = Checksummer(progress) if len(files) == 0: checksummer.updateFromLocal() else: if files[0] == '--auto': automatic = True files = files[1:] else: automatic = False checksummer.updateFromLocal(files) # check dependencies check = files needUpload = []