Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "automatic"
}
69 changes: 67 additions & 2 deletions cli/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,13 +1,78 @@
import org.apache.tools.ant.filters.ReplaceTokens
import java.util.*

plugins {
id("groovy")
id("io.micronaut.application") version "4.6.2"
id("com.gradleup.shadow") version "8.3.9"
id("org.graalvm.buildtools.native") version "0.10.6"
}

group = "org.justserve"
version = "0.0.8-SNAPSHOT"
version = project.properties["justserveCliVersion"]!!

repositories {
mavenCentral()
}

dependencies {
annotationProcessor("org.projectlombok:lombok")
annotationProcessor("info.picocli:picocli-codegen")
annotationProcessor("io.micronaut.serde:micronaut-serde-processor")
annotationProcessor("io.micronaut.validation:micronaut-validation")
implementation("io.micronaut.validation:micronaut-validation")
implementation("info.picocli:picocli")
implementation("info.picocli:picocli-jansi-graalvm:1.2.0")
implementation("org.fusesource.jansi:jansi:2.4.2")
implementation("info.picocli:picocli-shell-jline3:4.7.6")
implementation("org.jline:jline:3.30.5")
implementation("io.micronaut.picocli:micronaut-picocli")
implementation("org.simplejavamail:simple-java-mail:8.12.6")
implementation("io.micronaut.serde:micronaut-serde-jackson")
implementation("io.micronaut:micronaut-http-client")
implementation("org.simplejavamail:simple-java-mail:8.12.6")
implementation("org.jsoup:jsoup:1.21.2")
implementation(project(":core"))
testImplementation("net.datafaker:datafaker:2.5.1")
testImplementation("org.apache.commons:commons-lang3:3.20.0")
testImplementation(project(path = ":core", configuration = "testArchives"))
compileOnly("org.projectlombok:lombok")
runtimeOnly("ch.qos.logback:logback-classic")
runtimeOnly("org.yaml:snakeyaml")
}


application {
mainClass = "org.justserve.JustServeCommand"
}
java {
sourceCompatibility = JavaVersion.toVersion("21")
targetCompatibility = JavaVersion.toVersion("21")
}

tasks.withType<ProcessResources> {
val props = Properties()
file("gradle.properties").inputStream().use { props.load(it) }
file("../gradle.properties").inputStream().use { props.load(it) }
filesMatching("**/application.yml") {
filter(mapOf("tokens" to props), ReplaceTokens::class.java)
}
}

micronaut {
testRuntime("spock2")
processing {
incremental(true)
annotations("org.justserve.*")
}
}

tasks.named<io.micronaut.gradle.docker.NativeImageDockerfile>("dockerfileNative") {
jdkVersion = "21"
}

graalvmNative.binaries {
named("main") {
imageName.set("justserve")
buildArgs.add("--color=always")
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package org.justserve.cli;
package org.justserve;

import io.micronaut.configuration.picocli.PicocliRunner;
import org.justserve.cli.command.*;
import org.justserve.cli.util.JustServeVersionProvider;
import org.justserve.command.*;
import org.justserve.util.JustServeVersionProvider;
import picocli.CommandLine.Command;
import picocli.CommandLine.ParameterException;
import picocli.jansi.graalvm.AnsiConsole;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.justserve.cli.command;
package org.justserve.command;

import io.micronaut.http.HttpResponse;
import io.micronaut.http.HttpStatus;
Expand All @@ -12,8 +12,9 @@

import java.util.UUID;

import static org.justserve.cli.util.JustServePrinter.printError;
import static org.justserve.cli.util.JustServePrinter.printNormal;
import static org.justserve.util.JustServePrinter.printError;
import static org.justserve.util.JustServePrinter.printNormal;


@Slf4j
@Command(name = "assignOrgToProject", description = "Assigns an organization to a project", mixinStandardHelpOptions = true)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.justserve.cli.command;
package org.justserve.command;

import io.micronaut.context.annotation.Value;
import io.micronaut.core.annotation.NonNull;
Expand All @@ -10,7 +10,7 @@
import java.io.PrintWriter;
import java.util.Optional;

import static org.justserve.cli.util.JustServePrinter.printError;
import static org.justserve.util.JustServePrinter.printError;
import static picocli.CommandLine.Help.Ansi.AUTO;

@Command
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.justserve.cli.command;
package org.justserve.command;

import io.micronaut.core.annotation.ReflectiveAccess;
import org.justserve.cli.util.JustServeVersionProvider;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;

Expand All @@ -20,7 +19,7 @@
* @author Jonathan Zollinger
* @version 0.0.1
*/
@Command(mixinStandardHelpOptions = true, versionProvider = JustServeVersionProvider.class)
@Command(mixinStandardHelpOptions = true, versionProvider = org.justserve.util.JustServeVersionProvider.class)
@SuppressWarnings("checkstyle:VisibilityModifier")
public class CommonOptionsMixin {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.justserve.cli.command;
package org.justserve.command;

public interface ConsoleOutput {
ConsoleOutput NOOP = new ConsoleOutput() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.justserve.cli.command;
package org.justserve.command;

import io.micronaut.http.HttpResponse;
import io.micronaut.http.client.exceptions.HttpClientResponseException;
Expand All @@ -10,12 +10,13 @@
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;

import static org.justserve.cli.util.JustServePrinter.printError;
import static org.justserve.cli.util.JustServePrinter.printNormal;
import static org.justserve.util.JustServePrinter.printError;
import static org.justserve.util.JustServePrinter.printNormal;

@Command(name = "getTempPassword", description = "get a temporary password for a user")
public class GetTempPassword extends BaseCommand implements Runnable {


@Email
@Option(names = {"-e", "--email"}, description = "email for the user whose temporary password will be generated")
String email;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.justserve.cli.command;
package org.justserve.command;

import io.micronaut.core.annotation.Nullable;
import io.micronaut.http.HttpResponse;
Expand All @@ -17,8 +17,8 @@
import java.util.*;
import java.util.stream.Collectors;

import static org.justserve.cli.util.JustServePrinter.printError;
import static org.justserve.cli.util.JustServePrinter.printNormal;
import static org.justserve.util.JustServePrinter.printError;
import static org.justserve.util.JustServePrinter.printNormal;

@Slf4j
@Command(name = "makeOrgAdmin", description = "make a user an admin for the provided organization(s). " +
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.justserve.cli.command;
package org.justserve.command;

import io.micronaut.http.HttpResponse;
import io.micronaut.http.HttpStatus;
Expand All @@ -7,12 +7,12 @@
import jakarta.inject.Provider;
import jakarta.mail.MessagingException;
import lombok.extern.slf4j.Slf4j;
import org.justserve.cli.util.JustServeEmailParserError;
import org.justserve.client.ProjectClient;
import org.justserve.model.GetProjectRequest;
import org.justserve.model.Project;
import org.justserve.model.ReassignProjectRequest;
import org.justserve.util.EmailParser;
import org.justserve.util.JustServeEmailParserError;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;

Expand All @@ -23,8 +23,8 @@
import java.util.Set;
import java.util.UUID;

import static org.justserve.cli.util.JustServePrinter.printError;
import static org.justserve.cli.util.JustServePrinter.printNormal;
import static org.justserve.util.JustServePrinter.printError;
import static org.justserve.util.JustServePrinter.printNormal;

@Slf4j
@Command(name = "unReassignProjects", description = "Reassigns projects from an email file to a user", mixinStandardHelpOptions = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.justserve.cli.util.JustServeEmailParserError;

import java.io.ByteArrayInputStream;
import java.io.IOException;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.justserve.cli.util;
package org.justserve.util;

public class JustServeEmailParserError extends Exception {
public JustServeEmailParserError(String message) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.justserve.cli.util;
package org.justserve.util;

import org.fusesource.jansi.Ansi;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package org.justserve.cli.util;
package org.justserve.util;

import io.micronaut.context.annotation.Value;
import picocli.CommandLine;

import static org.justserve.cli.util.JustServePrinter.styleEmphasis;
import static org.justserve.cli.util.JustServePrinter.styleTitle;
import static org.justserve.util.JustServePrinter.styleEmphasis;
import static org.justserve.util.JustServePrinter.styleTitle;

public class JustServeVersionProvider implements CommandLine.IVersionProvider {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,8 @@ micronaut:
application:
name: justserve-cli
version: "@justserveCliVersion@"
http:
services:
justserve:
url: https://www.justserve.org
client:
read-timeout: 20s
justserve:
token: ${:i-need-to-be-defined}
jackson:
deserialization:
ACCEPT_EMPTY_STRING_AS_NULL_OBJECT: true
logger:
levels:
# org.justserve.auth.JustServeClientFilter: DEBUG
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package org.justserve.cli.command

import io.micronaut.configuration.picocli.PicocliRunner
import io.micronaut.context.ApplicationContext
import org.justserve.JustServeCommand
import org.justserve.JustServeSpec
import org.justserve.cli.JustServeCommand
import spock.lang.Execution
import spock.lang.Shared

Expand All @@ -21,7 +21,7 @@ class BaseCommandSpec extends JustServeSpec {

def setupSpec() {
def props = new Properties()
new File('gradle.properties').withInputStream { stream ->
new File('../gradle.properties').withInputStream { stream ->
props.load(stream)
}
ansi = "\\u001B\\[[;\\d]*m"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package org.justserve.cli.command

import io.micronaut.context.ApplicationContext
import net.datafaker.Faker
import org.justserve.TestUser
import spock.lang.Execution
import spock.lang.Retry
import spock.lang.Shared
import spock.lang.Unroll

import static org.spockframework.runtime.model.parallel.ExecutionMode.SAME_THREAD
Expand All @@ -14,13 +11,6 @@ import static org.spockframework.runtime.model.parallel.ExecutionMode.SAME_THREA
@Retry

class GetTempPasswordSpec extends BaseCommandSpec {
@Shared
TestUser readOnlyUser

def setupSpec() {
readOnlyUser = new TestUser(new Faker(Locale.of("en-us")))
readOnlyUser.uuid = createUser(readOnlyUser).body().getId()
}

@Unroll("getting temp password with '#flag' and '#email' returns ")
def "commands to query temporary password should behave as expected with or without authentication"() {
Expand Down
Loading
Loading