Last active
September 13, 2017 15:19
-
-
Save sbesson/e2d78a7825248e3f73cf to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env python | |
# Script to update Bio-Formats server-side | |
import urllib2 | |
import os | |
import shutil | |
DONWLOADS_URL = "http://downloads.openmicroscopy.org/bio-formats" | |
RELEASE = "5.1.4" | |
JARS = [ | |
"formats-api.jar", | |
"formats-bsd.jar", | |
"formats-common.jar", | |
"formats-gpl.jar", | |
"jai_imageio.jar", | |
"lwf-stubs.jar", | |
"mdbtools-java.jar", | |
"metakit.jar", | |
"ome-poi.jar", | |
"ome-xml.jar", | |
"specification.jar", | |
"turbojpeg.jar"] | |
artifact_url = DONWLOADS_URL + '/' + RELEASE + '/artifacts/' | |
server_dir = os.path.realpath("lib/server") | |
client_dir = os.path.realpath("lib/client") | |
backup_dir = os.path.realpath("lib/backup") | |
if not os.path.exists(backup_dir): | |
os.makedirs(backup_dir) | |
for jar in JARS: | |
# Backing up | |
server_jar = os.path.join(server_dir, jar) | |
client_jar = os.path.join(client_dir, jar) | |
backup_jar = os.path.join(backup_dir, jar) | |
print 'backing up %s to %s' % (server_jar, backup_jar) | |
shutil.copyfile(server_jar, backup_jar) | |
jar_url = artifact_url + jar | |
print "Downloading %s" % jar_url | |
f = urllib2.urlopen(jar_url) | |
data = f.read() | |
with open(server_jar, "wb") as f: | |
print "Copying to %s" % server_jar | |
f.write(data) | |
with open(client_jar, "wb") as f: | |
print "Copying to %s" % client_jar | |
f.write(data) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Coming back to this a year later. See https://github.com/sbesson/bio-formats-omero for an experimental solution (inspired by https://github.com/openmicroscopy/bio-formats-fiji).
The advantage of using Maven is the dependency management i.e. partly addressing/delegating the idempotency, catalog and checksum questions above.
Main drawbacks as mentioned in the README is this approach is currently based on the Bio-Formats POM rather than the OMERO POM. Thus:
If this turns out to be useful, a way to resolve the above might be to base the pom.xml on https://github.com/ome/pom-omero-client, clean
lib/server
andlib/client
in the clean phase and copyblitz
and the overriden Bio-Formats dependencies in thepackage
phase.