93 lines
3.3 KiB
Groovy
93 lines
3.3 KiB
Groovy
apply plugin: 'elasticsearch.build'
|
|
/* We don't use the 'application' plugin because it builds a zip and tgz which
|
|
* we don't want. */
|
|
|
|
description = 'Command line interface to Elasticsearch that speaks SQL'
|
|
|
|
dependencies {
|
|
compile "org.jline:jline:3.3.1"
|
|
compile project(':x-pack-elasticsearch:sql:shared-client')
|
|
compile project(':x-pack-elasticsearch:sql:cli-proto')
|
|
compile project(':x-pack-elasticsearch:sql:shared-proto')
|
|
|
|
runtime "org.fusesource.jansi:jansi:1.16"
|
|
runtime "org.elasticsearch:jna:4.4.0-1"
|
|
}
|
|
|
|
dependencyLicenses {
|
|
mapping from: /cli-proto.*/, to: 'elasticsearch'
|
|
mapping from: /shared-client.*/, to: 'elasticsearch'
|
|
mapping from: /shared-proto.*/, to: 'elasticsearch'
|
|
ignoreSha 'cli-proto'
|
|
ignoreSha 'shared-client'
|
|
ignoreSha 'shared-proto'
|
|
}
|
|
|
|
forbiddenApisMain {
|
|
// does not depend on core, so only jdk and http signatures should be checked
|
|
signaturesURLs = [this.class.getResource('/forbidden/jdk-signatures.txt')]
|
|
}
|
|
|
|
jar {
|
|
// Bundle all dependencies into the jar.
|
|
from {
|
|
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
|
|
configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
|
|
}
|
|
// Make the jar "executable" with `java -jar`
|
|
manifest {
|
|
attributes 'Main-Class': 'org.elasticsearch.xpack.sql.cli.Cli'
|
|
}
|
|
}
|
|
|
|
// Needed so we can launch graphviz if it is installed
|
|
project.compactProfile = 'full'
|
|
|
|
thirdPartyAudit.excludes = [
|
|
'org.apache.sshd.client.SshClient',
|
|
'org.apache.sshd.client.auth.keyboard.UserInteraction',
|
|
'org.apache.sshd.client.channel.ChannelShell',
|
|
'org.apache.sshd.client.channel.ClientChannel',
|
|
'org.apache.sshd.client.channel.ClientChannelEvent',
|
|
'org.apache.sshd.client.future.AuthFuture',
|
|
'org.apache.sshd.client.future.ConnectFuture',
|
|
'org.apache.sshd.client.future.OpenFuture',
|
|
'org.apache.sshd.client.session.ClientSession',
|
|
'org.apache.sshd.common.Factory',
|
|
'org.apache.sshd.common.channel.PtyMode',
|
|
'org.apache.sshd.common.config.keys.FilePasswordProvider',
|
|
'org.apache.sshd.common.util.io.NoCloseInputStream',
|
|
'org.apache.sshd.common.util.io.NoCloseOutputStream',
|
|
'org.apache.sshd.server.Command',
|
|
'org.apache.sshd.server.Environment',
|
|
'org.apache.sshd.server.ExitCallback',
|
|
'org.apache.sshd.server.SessionAware',
|
|
'org.apache.sshd.server.Signal',
|
|
'org.apache.sshd.server.SshServer',
|
|
'org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider',
|
|
'org.apache.sshd.server.scp.ScpCommandFactory$Builder',
|
|
'org.apache.sshd.server.session.ServerSession',
|
|
'org.apache.sshd.server.subsystem.sftp.SftpSubsystemFactory$Builder',
|
|
'org.mozilla.universalchardet.UniversalDetector'
|
|
]
|
|
|
|
task run {
|
|
description = 'Run the CLI and connect to elasticsearch running on 9200'
|
|
dependsOn 'assemble'
|
|
doLast {
|
|
List command = [new File(project.javaHome, 'bin/java').absolutePath]
|
|
if ('true'.equals(System.getProperty('debug', 'false'))) {
|
|
command += '-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000'
|
|
}
|
|
command += ['-jar', jar.archivePath.absolutePath]
|
|
logger.info("running the cli with: ${command}")
|
|
|
|
new ProcessBuilder(command)
|
|
.redirectOutput(ProcessBuilder.Redirect.INHERIT)
|
|
.redirectInput(ProcessBuilder.Redirect.INHERIT)
|
|
.redirectError(ProcessBuilder.Redirect.INHERIT)
|
|
.start()
|
|
.waitFor()
|
|
}
|
|
}
|