73 lines
2.0 KiB
Markdown
73 lines
2.0 KiB
Markdown
# 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)
|