Konubinix' opinionated web of thoughts

Clk Maybe List

Fleeting

clk maybe list

Those are stuff that I wish I can do in the future but won’t commit for now. Most of them are fleeting note that still need to be precised. And I won’t work on them till I have a need (pragmatisme).

provide several examples of A: O: and F: in bash commands

to be disabled if asked to –disable-parameters-hints

document clk bash commands parameters

provide a wasm sandbox in a browser to play with clk without installing it

clk k8s detect tainted nodes

ktl get nodes -o json | jq -r '.items[].status.conditions[]|select(.status=="True")|.type'

provide –edit-command everywhere

  • Note prise le [2022-06-02 Thu 14:15]
    doit se faire non pas au niveau de la création de la commande mais au momnt de l’évaluation

    Car la commande cmd peut être mises dans x.y.cmd et dans a.b.cmd indifféremment.

provide sh(“something”) | sh(“something else”)

provide help in bash completion like helm does

redo call(internal=safe)

document CLK___* variables

provide boolean options, like git-annex, to be able to run clk command –not something –and somethingelse –or –not somethingelse

make @table stuff more user friendly

try harder to deal with the impact of renaming in aliases, parameters and flows

clk main/next command

to ease users find out what the next command is

  1. comme ça, clk describe dit par quelle commande commencer
  2. la commande indique les autres commandes à considérer, permettant de naviguer dans une succession d’aides cohérents
  3. clk describe –html pour en sortir une « doc » à publier
  4. publier une « doc » de clk comme ça (dogfooding)
    1. montrer echo
    2. puis alias
    3. puis parameter
    4. puis command create
    5. puis extension
  5. sortir dans la CI de clk l’html pour avoir le tuto dynamiquement généré
  6. dans un groupe, ajouter une section qui montre les sous commandes directes à regarder

add a test of reactivity. With 500 alias, completion should take less than 0.5s

clk flowdep graph detect cycles and deal with them

use snyk on clk

clk command –flow-continue to go on after error

clk k8s deal with several clusters

clk command create python some.command

clk flowdep graph –flatten

pass clk -a through external commands

eval: vault: generic with dynamicprovider and a command to configure it

make eval: not accept any command

Or it might be a security flaw where people provide extensions with parameters that call arbitrary commands.

resource based flow

In addition to the classical command flow, I wish I could have a more makefile-ish way of specifying the flow.

A command could indicate the resources it creates and the resources it needs. A resource could be an abstaction of the form.

class Resource:
    def exists():
        pass

And I could create more than simple file based resources.

Like a port resource.

class PortResource(Resource):
    def __init__(self, port):
        self.port = port
    def exists(self):
        return lib.is_port_available(self.port)

Then, I could have a command that is run only if the resource is not fulfilled.

@command(provides=[PortResource(5432)])
def start_postgres():
    pass

I could provide a resource command line handler

clk resource set postgre PortResource 5432
clk resource flow postgre
@command(provides=[FileResource("CMakeLists.txt")], needs=[FileResource("somesourceoftruth.yml")])
def generate():
    pass

@command(provides=[FileResource("Makefile")], needs=[FileResource("CMakeLists.txt")])
def configure():
    pass

@command(needs=[FileResource("Makefile")])
def build():
    pass

But then, changing from makefile to ninja would imply to change the resources as well?

auto exclusive extensions

In case several extensions provides the same features