const path = require('path'); const compareVersions = require('compare-versions'); module.exports = { tags: async (tln) => [], options: async (tln) => [], dotenvs: async (tln) => [], inherits: async (tln) => [], depends: async (tln) => [], env: async (tln, env) => { env.DOCKER_COMPOSE_HOME = env.TLN_COMPONENT_HOME; env.PATH = [env.TLN_COMPONENT_HOME, env.PATH].join(path.delimiter); }, steps: async (tln) => [ { id: 'install', filter: '', builder: async (tln, script) => { const id = script.env.TLN_COMPONENT_ID; const home = script.env.TLN_COMPONENT_HOME; const {name, version} = tln.unpackId(id); if (version && tln.canInstallComponent(tln, id, home)) { let v = version; if (compareVersions.compare(version, '2.0.0', '>=')) { v = 'v' + version; } script.set(tln.getDownloadScript(tln, { linux: { name: `docker-compose`, opts: null, url: `https://github.com/docker/compose/releases/download/${v}/docker-compose-Linux-x86_64`, cmd: 'mv docker-compose-Linux-x86_64 docker-compose && chmod +x ./docker-compose', keep: true }, darwin: { name: `docker-compose`, opts: null, url: `https://github.com/docker/compose/releases/download/${v}/docker-compose-Darwin-x86_64`, cmd: 'mv docker-compose-Darwin-x86_64 docker-compose && chmod +x ./docker-compose', keep: true }, win32: { name: `docker-compose.exe`, opts: null, url: `https://github.com/docker/compose/releases/download/${v}/docker-compose-Windows-x86_64.exe`, cmd: null, keep: true } })); } } } ], components: async (tln) => require('./components.js') }