Skip to content

Instantly share code, notes, and snippets.

View linux-china's full-sized avatar

Libing Chen linux-china

View GitHub Profile
@linux-china
linux-china / viper_util.go
Last active April 10, 2024 05:13
Replace place holders in Golang Viper
// after viper read config, replace all placeholders with values
func ReplacePlaceHolders() {
r, _ := regexp.Compile("\\${[a-zA-Z0-9.: _]+}")
replacer := func(placeHolder []byte) []byte {
name := string(placeHolder)
name = name[2 : len(name)-1]
index := strings.Index(name, ":")
if index != -1 {
defaultValue := name[index+1:]
@linux-china
linux-china / JUnit5ExampleTest.java
Created January 5, 2024 01:39
Run JUnit 5 Tests with JBang
//usr/bin/env jbang "$0" "$@" ; exit $?
//JAVA 21
//DEPS org.junit.jupiter:junit-jupiter-engine:5.10.1
//DEPS org.junit.platform:junit-platform-console:1.9.3
//DEPS org.assertj:assertj-core:3.25.1
package com.example;
import org.junit.jupiter.api.Test;
import org.junit.platform.console.options.CommandLineOptions;
@linux-china
linux-china / Dockerfle
Created May 13, 2022 17:56
Build Docker image for JBang script with Java 17
FROM linuxchina/jbang-action as builder
ARG mainClass="Hello2.java"
RUN mkdir -p /opt/app/out
WORKDIR /opt/app
COPY $mainClass /opt/app
RUN jbang export portable -O out/app.jar $mainClass
@linux-china
linux-china / Dockerfile
Last active May 13, 2022 18:21
Build Docker image for JBang script with GraalVM native-image
FROM linuxchina/jbang-action:0.94.0-graal-java17-22.1.0 as builder
ARG mainClass="Hello2.java"
RUN mkdir -p /opt/app/out
WORKDIR /opt/app
COPY $mainClass /opt/app
RUN jbang export portable --native -O out/main $mainClass
@linux-china
linux-china / JfrOverRSocketController.java
Created May 4, 2022 22:33
JfrOverRSocketController.java
import jdk.jfr.consumer.RecordingStream;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.stereotype.Controller;
import reactor.core.publisher.Flux;
import java.time.Duration;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
@Controller
@linux-china
linux-china / jbang-catalog-schema.json
Created December 15, 2021 20:00
JSON Schema file for JBang's jbang-catalog.json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "JBang catalogs JSON Schema",
"description": "JSON Schema for jbang-catalog.json",
"type": "object",
"properties": {
"aliases": {
"description": "aliases",
"type": "object",
"additionalProperties": {
@linux-china
linux-china / template.sh
Created June 6, 2021 22:22
A Bash Template(cheat sheet) is very Useful
#!/usr/bin/env bash
# https://medium.com/codex/a-bash-template-cheat-sheet-is-very-useful-f8207b442e78
set -Eeuo pipefail
# Define variables
readonly dir="$(dirname "$0")"
# Usage or Help message
usage() {
@linux-china
linux-china / HelloIoUring.java
Created April 22, 2021 19:21
Hello io_uring testing with Netty
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS io.netty.incubator:netty-incubator-transport-native-io_uring:0.0.5.Final:linux-x86_64
import io.netty.incubator.channel.uring.IOUring;
public class HelloIoUring {
public static void main(String[] args) {
IOUring.ensureAvailability();
System.out.println("Hello io_uring!");
}
@linux-china
linux-china / graalvm.yml
Last active October 21, 2022 13:00
Github actions for GraalVM native image build on Windows, Mac and Linux. Please adjust 'demo-cli' to final name.
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: GraalVM Native Image build
on:
push:
branches: [ master ]
tags: [ '*' ]
@linux-china
linux-china / Cargo.toml
Created November 14, 2020 05:02
multipass shell completion
[package]
name = "multipass"
version = "0.1.0"
authors = ["linux_china <libing.chen@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
clap = { version = "3.0.0-beta.2", features = ["yaml"] }