# jx # Purpose These tools work with YAML descriptions of resources (E.g. files, users, containers, etc) for (de)serializing the state of the given resource. This enables more generically describing the state of a supported resource type, pipeling state transformations and enabling the use of other tools in that process. # Dependencies * Go >= 1.21.1 # Testing Testing the current version involves checking out main and building. ``` git clone https://gitea.rosskeen.house/doublejynx/jx.git make test make build ``` # Command-line # Update Resource state `jx apply decl-runner.yaml` Create the resources specified in a resource document HTTP endpoint. `jx apply http://localhost/resources` Convert a tar archive into resource definitions and apply them (extracts the contents of a tar). `jx apply https://gitea.rosskeen.house/doublejynx/jx/archive/v0.2.1.tar.gz` # Read resource state Read the state of an existing resource (URI) and generate a YAML representation of it. `jx import -resource file://COPYRIGHT` ![Import Resource](md-images/import-resource.gif) Import the contents of a tar archive into a resource document. `jx import ./test.tgz` Import resource documents from multiple sources. `jx import repo/packages/build.jx.yaml ./gopkgs.tar.gz` ![Import Doc](md-images/jx-import.gif) Read a resource document from an http endpoint. `jx import http://localhost/resources` # Diff resource documents ![Diff Resources](md-images/jx-diff.gif) # Examples Resources: * [file](examples/file.yaml) [schema](internal/resource/schemas/file.jsonschema) * [http](examples/http.yaml) [schema](internal/resource/schemas/http.jsonschema) * [user](examples/user.yaml) [schema](internal/resource/schemas/user.jsonschema) * [package](examples/package.yaml) [schema](internal/resource/schemas/package.jsonschema) * [container](examples/container.yaml) [schema](internal/resource/schemas/container.jsonschema) * [network_route](examples/network_route.yaml) [schema](internal/resource/schemas/network_route.jsonschema)