James Shubin
d56896cb0d
lang: core: Simplify list and map lookup default functions
2025-02-26 19:59:47 -05:00
James Shubin
d579787bcd
lang: core: Simplify list and map lookup functions
2025-02-26 19:59:47 -05:00
James Shubin
37fffce9f5
lang: core: Simplify implementation of the "contains" function
2025-02-26 18:12:38 -05:00
James Shubin
d7ecc72b41
lang: ast, gapi, interfaces, parser: Print line numbers on error
...
This adds an initial implementation of printing line numbers on type
unification errors. It also attempts to print a visual position
indicator for most scenarios.
This patch was started by Felix Frank and finished by James Shubin.
Co-authored-by: Felix Frank <Felix.Frank.de@gmail.com >
2025-02-25 20:15:02 -05:00
James Shubin
f754bbbf90
git: Add more entries to gitignore file
2025-02-25 12:10:04 -05:00
Felix Frank
bb171ced86
misc: Add missing sudo invocation
2025-02-24 10:43:43 -05:00
Edward Toroshchyn
c25a2a257b
misc: Fix typos and spelling errors
2025-02-24 16:01:46 +01:00
Lourenço
1f90de31e7
lang: core: net: Add a new func for URL parsing
...
This is a first attempt to add a new function for URL parsing, using
go's net/url package and the simple API. This is still a barebones
implementation, there's possibility to expose more information. It also
includes simple tests.
2025-02-19 13:35:20 +01:00
Lourenço
b5384d1278
engine: resources: Adding logic for svc unit state
...
This is a small patch that adds logic for checking what's the state of
the unit file and making the CheckApply function more robust
2025-02-18 17:14:27 -05:00
James Shubin
d80ec4aaa7
engine: resources: Detect simple self-referential frags
...
It would be a likely mistake to create a self-referential frag, and mgmt
would spin forever updating the file... We probably don't want this, so
let's just catch this case in Validate.
Of course you could get around this with multiple files, and a fancier
search could statically check the graph, but the goal isn't to prevent
any bad code, since that's not likely to be possible.
2025-02-15 06:58:15 -05:00
James Shubin
5d63376087
modules: meta: Remove duplicate line
2025-02-13 06:33:47 -05:00
James Shubin
4fd6ced287
docs: Add new talks from Belgium, 2025
2025-02-10 10:34:53 -05:00
James Shubin
82489c3fe0
engine: resources: Add shell field to user resource
2025-02-07 18:08:25 -05:00
James Shubin
a064a87ecd
lang: Add a weird test case
...
Mark Smith was concerned we might not handle this case correctly. It
seems we do in fact catch this scenario, so it's not an issue. Yay!
2025-02-07 17:57:36 -05:00
James Shubin
f51a1200d1
util: Add a helper to get the users shell entry
2025-02-07 17:57:36 -05:00
James Shubin
ecd5a0f304
util, lang, etcd: Move the error type to our util package
...
We use this error in a lot of places, let's centralize it a bit.
2025-02-07 17:57:36 -05:00
James Shubin
096ef4cc66
engine: resources: Modernize the user resource
...
Do some small fixups like adding ctx and fixing obvious bugs.
2025-02-07 17:57:36 -05:00
James Shubin
7da98ef349
test: Rename the reflowed comments test to make it easier to find
...
This makes running one-of executions of this a bit easier.
2025-02-06 08:19:22 -05:00
hades
8cd7fa27e2
engine: resources: exec: Add a bit of documentation to exec res
2025-02-06 08:18:48 -05:00
James Shubin
134e2f1cd9
examples: lang: Add a new env example
2025-02-06 07:49:35 -05:00
Edward Toroshchyn
042ae02428
engine: resources: exec: Add tests to check env values
2025-02-06 07:14:12 -05:00
Edward Toroshchyn
1e33c1fdae
misc: Add vim syntax highlighting file
...
This is an extremely basic initial version of syntax highlighting, written just
so that I can edit the MCL files in vim and not cry.
The following features are supported:
- MCL keywords
- strings (including escape characters)
- comments
- built-in resources (as of 0.0.27)
2025-02-05 08:50:50 -05:00
James Shubin
bdc46648ff
modules: Add prometheus and grafana modules
...
These are really stubs, and need some more testing and integration, but
there were some people who expressed interest in this, so let's push it
early.
2025-02-03 04:46:44 -05:00
James Shubin
ab9c1d3d96
modules: cups: Fixup obvious missing bits
...
I didn't merge these parts because I have some other WIP code I was
working on. Might as well put this in now.
2025-02-02 01:51:41 -05:00
James Shubin
0fb546ad61
engine: resources: Make some svc cleanups
...
We would often actually drop the refresh because of bad checks.
2025-02-02 01:43:14 -05:00
James Shubin
7439d532c7
modules: dhcp: Include stub hosts file
...
Even if we don't have any hosts, we should still have a valid config.
2025-01-31 11:44:30 -05:00
James Shubin
de9c0adcc0
releases: Add release notes for 0.0.27
...
I did this build with: `make release` followed by:
GOTAGS='noaugeas' make release when the arm64 build failed.
2025-01-31 03:22:45 -05:00
James Shubin
e40819d617
modules: Add a small stub for CUPS
...
This is definitely not perfect, but it's a simple stub which we can
expand on.
0.0.27
2025-01-31 00:52:24 -05:00
James Shubin
7331d3a7ee
util: pprof: Improve pprof for ease of use
...
This makes it slightly cleaner.
2025-01-31 00:00:05 -05:00
James Shubin
95f353c6a4
modules: virtualization: Add some simpler helpers
...
You don't need much to build a vm host. Here's the start.
2025-01-30 23:04:12 -05:00
James Shubin
5044ef4e8a
engine: resources: Add a virt builder password selector
...
This is very helpful for debugging, particularly with broken Debian
installs.
2025-01-30 22:56:24 -05:00
James Shubin
3c61d088ab
test: Make sure to test the docs
...
I can't believe I forgot to enable this earlier.
2025-01-29 12:18:55 -05:00
James Shubin
315a493565
lang: Add a few more tests
2025-01-26 19:48:17 -05:00
James Shubin
6268b61a7d
lang: core: Lookup function (with default) can be more precise
2025-01-26 19:12:13 -05:00
James Shubin
3f202c6a7a
lang: core: Fix struct lookup corner case
...
We forgot to reject this corner case which could lead to a runtime error
since the expected type from the incoming struct would not match what
we're handling.
2025-01-26 19:12:13 -05:00
James Shubin
d46c43df5a
lang: core: Let lookup function specialize earlier
...
If we happen to know some information, we can specialize early and help
type unification solve things.
2025-01-26 18:21:54 -05:00
James Shubin
1538befc93
lang: ast, parser: Allow calling anonymous functions
...
I forgot to plumb this in through the parser. Pretty easy to add,
hopefully I didn't forget any weird corner scope cases here.
2025-01-26 17:21:11 -05:00
James Shubin
1af334f2ce
misc: Update to golang 1.23
...
The 1.22 version has some issues that makes it more difficult to
workaround, so we'll move right away to 1.23
2025-01-26 17:17:02 -05:00
James Shubin
d30ea571f1
misc: Update to golang 1.22
...
Ran:
go get -u ./...
go mod tidy
We also got rid of travis and simplified things a bit.
2025-01-26 17:16:40 -05:00
James Shubin
d30ff6cfae
legal: Remove year
...
Instead of constantly making these updates, let's just remove the year
since things are stored in git anyways, and this is not an actual modern
legal risk anymore.
2025-01-26 16:24:51 -05:00
James Shubin
1d3f2dbe3c
util: Add a pprof helper package
...
As it turns out, there are other helper packages out there. I wrote this
before I realized that, and it didn't take me that long anyways.
2025-01-24 03:06:31 -05:00
James Shubin
ca6e7ad432
lang: types, lang: core: strings: Add a new join_nonempty function
...
Along with a helper function for when we need a []string from a Value.
2025-01-24 00:07:23 -05:00
James Shubin
f92afe9ae4
modules: meta: Add a router meta module
...
Useful for setting up simple routers. Some auto-provisioning polish
would definitely help, but this is pretty useful already.
2025-01-18 01:22:33 -05:00
James Shubin
483cc22c32
lang: core: embedded: provisioner: Add IPXE support
...
This lets you boot from ipxe. You can run the ipxe shell from their
stock image or the netboot.xyz one. For the latter, press "m", then type
"dhcp" (machine is now pingable!) then type "route" to check the ip.
To boot type:
chain http://192.168.42.1:4280/menu.ipxe
and you're off!
Thanks to frebib for finding the workaround to the VFS bug. The answer
is you need to run the imgfree command to unblock the initrd.
2025-01-18 01:07:19 -05:00
James Shubin
2f3bd72491
lang: core: embedded: provisioner: Fix regression in Fedora 41
...
Unfortunately with Fedora 41 and DNF5, this breaks what our host machine
expects. So you now need dnf5+ to make this work, or you can revert this
commit.
2025-01-18 01:02:17 -05:00
James Shubin
6499fcb1e0
modules: dhcp: Support the authoritative setting
...
Quite useful if we plumb it all the way through!
2025-01-18 00:30:46 -05:00
James Shubin
12a0600d38
engine: resources: Improve hostname change message
...
Make it clearer where empty strings are, and that it already happened.
2025-01-17 23:58:26 -05:00
James Shubin
cace2bacb8
lang: core: embedded: provisioner: Add support for module path
...
This is needed for bigger code bases. Remember: this is consulted at the
deploy stage, and the deploy contains the entire tree (including
modules) of everything it needs to run. This is why you don't need to
add a --module-path arg when running mgmt in systemd with the "empty"
frontend.
2025-01-17 23:54:30 -05:00
James Shubin
05d440114a
lang: core: embedded: provisioner: Remove stale comment
2025-01-17 23:49:21 -05:00
James Shubin
b392285e1d
gapi, lang: gapi: Make dir to avoid errors
...
It seems we sometimes need to make the intermediate dir.
2025-01-17 23:32:13 -05:00