chore: import verified syly2 maintenance baseline without embedded credentials
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Register the six supplied legacy JARs in a dedicated Maven repository."""
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import subprocess
|
||||
import sys
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
os.umask(0o077)
|
||||
run = Path(sys.argv[1]).resolve()
|
||||
source = run / 'source'
|
||||
repo = Path.home() / '.local/share/syly2-build/m2'
|
||||
base = Path.home() / '.local/opt/syly2-build'
|
||||
env = dict(os.environ, JAVA_HOME=str(base / 'corretto-8.512.09.1'))
|
||||
env['PATH'] = env['JAVA_HOME'] + '/bin:' + env['PATH']
|
||||
mvn = base / 'apache-maven-3.9.11/bin/mvn'
|
||||
artifacts = [
|
||||
('com.oracle', 'ojdbc14', '10.2.0.4.0', 'jar/ojdbc14/ojdbc14/10.2.0.4.0/ojdbc14-10.2.0.4.0.jar'),
|
||||
*[('com.ckfinder', name, '2.4', f'jar/ckfinder/ckfinder/{name}/2.4/{name}-2.4.jar') for name in [
|
||||
'CKFinder-updateByAlexander', 'CKFinderPlugin-FileEditor',
|
||||
'CKFinderPlugin-ImageResize', 'CKFinderPlugin-Watermark',
|
||||
]],
|
||||
('com.artofsolving', 'jodconverter', '3.0-beta-4', 'src/main/webapp/WEB-INF/lib/jodconverter-3.0-beta-4.jar'),
|
||||
]
|
||||
evidence = []
|
||||
poms = run / 'artifacts/local-poms'
|
||||
poms.mkdir(exist_ok=True)
|
||||
for group, artifact, version, relative in artifacts:
|
||||
jar = source / relative
|
||||
original_pom = jar.with_suffix('.pom')
|
||||
if original_pom.is_file():
|
||||
pom = original_pom
|
||||
else:
|
||||
project = ET.Element('project', xmlns='http://maven.apache.org/POM/4.0.0')
|
||||
for tag, text in [('modelVersion', '4.0.0'), ('groupId', group), ('artifactId', artifact), ('version', version), ('packaging', 'jar')]:
|
||||
ET.SubElement(project, tag).text = text
|
||||
pom = poms / f'{artifact}-{version}.pom'
|
||||
ET.ElementTree(project).write(pom, encoding='utf-8', xml_declaration=True)
|
||||
log = run / 'logs' / f'install-{artifact}.log'
|
||||
with log.open('w') as output:
|
||||
result = subprocess.run([
|
||||
str(mvn), '-B', '-ntp', f'-Dmaven.repo.local={repo}',
|
||||
'org.apache.maven.plugins:maven-install-plugin:3.1.4:install-file',
|
||||
f'-Dfile={jar}', f'-DpomFile={pom}',
|
||||
f'-DgroupId={group}', f'-DartifactId={artifact}', f'-Dversion={version}', '-Dpackaging=jar',
|
||||
], cwd=run, env=env, stdout=output, stderr=subprocess.STDOUT, timeout=300)
|
||||
if result.returncode:
|
||||
raise RuntimeError(f'Installation failed: {artifact}; see {log}')
|
||||
evidence.append({'coordinates': f'{group}:{artifact}:{version}', 'source': relative, 'sha256': hashlib.sha256(jar.read_bytes()).hexdigest()})
|
||||
print('Installed', evidence[-1]['coordinates'], flush=True)
|
||||
(run / 'artifacts/private-libs.json').write_text(json.dumps(evidence, indent=2) + '\n')
|
||||
Reference in New Issue
Block a user