diff --git a/.drone.star b/.drone.star index 8196162..bfbee8f 100644 --- a/.drone.star +++ b/.drone.star @@ -1,9 +1,46 @@ load("@this//:from-secret.star", "fromSecret") -load("@this//:print-secrets.star", "printSecrets") -load("@this//:print-secrets.star", "environment") -load("@this//:print-secrets.star", "export") -load("@this//:map.star", "map") +def environment(env): + return dict( + [(x.replace("-", "_").upper(), fromSecret(x)) for x in env] + ) +def map(fn, l): + return [fn(x) for x in l] +def secretToEnvironment(secret): + return secret.replace("-", "_").upper() +def echo(secret): + return 'echo "export {environment}=${environment}" >> ***filename*** # {secret}'.format( + secret = secret, + environment = secret.replace("-", "_").upper(), + ) +def echoSecret(secret): + return 'echo "export {environment}=???" >> ***filename*** # {secret}'.format( + secret = secret, + environment = secret.replace("-", "_").upper() + ) + +def export(secret): + return "export {toCaps}=${toCaps}".format( + toCaps = secretToEnvironment(secret), + ) +def printSecrets(filename, env, secretEnv): + + return { + "name": "print secrets", + "image": "appleboy/drone-ssh", + "environment": environment(env), + "settings": { + "envs": [x.replace("-", "_") for x in env ], + "host": fromSecret("ssh-host"), + "port": fromSecret("ssh-port"), + "username": fromSecret("ssh-user"), + "password": fromSecret("ssh-password"), + "script": [x.replace("***filename***", filename) for x in [ + "rm -f env-stack", + ] + map(echo, env) + + map(echoSecret, secretEnv)] + } + } def wait(delay, name): return { "name": name, diff --git a/drone-starlark/repos/print-secrets.star b/drone-starlark/repos/print-secrets.star index 430455a..10426c5 100644 --- a/drone-starlark/repos/print-secrets.star +++ b/drone-starlark/repos/print-secrets.star @@ -1,4 +1,5 @@ load("@this//:map.star", "map") +load("@this//:from-secret.star", "fromSecret") def environment(env): return dict( [(x.replace("-", "_").upper(), fromSecret(x)) for x in env]