James Shubin
0222a682fc
lang: core: embedded: provisioner: Not sure we need this package
...
Seems to cause some issues. Remove it for now.
2024-10-29 18:53:36 -04:00
James Shubin
1cd4af5838
lang: core: embedded: provisioner: Keep this message separate
...
Don't autogroup it with others.
2024-10-29 16:58:06 -04:00
James Shubin
d1aaf6e82b
lang: core: embedded: provisioner: Handle spurious failures
...
Not sure why this happen, I think it's just random network blips. Simple
retry should be used for now.
2024-10-29 16:58:06 -04:00
James Shubin
52a71f9515
lang: core: embedded: provisioner: Add unused repo generation
...
I was playing around with generating repo's, but they didn't turn out to
be needed at this time. Committing this anyways for future reference.
2024-10-29 16:58:06 -04:00
James Shubin
3c665174cc
lang: core: embedded: provisioner: Implement handoff
...
Here's a good first way to implement handoff. What's particularly
elegant about handoff here, is that this is the first form of it I know,
where handoff happens between a provisioning tool and a configuration
management tool and those are the same tool! As a result, this can allow
for some really elegant integration, and the end-user never has to deal
with the combinatorial explosion of the N * M scenario of gluing each
provisioning tool to each different configuration management tool.
We'll have other forms of handoff in the future, but this simple
approach is useful already.
2024-10-29 16:58:06 -04:00
James Shubin
93eb8b2b76
lang: core: embedded: provisioner: Host an available deploy
...
This makes the current deploy available. This is likely not useful when
this is used from the embedded provisioner cli tool, since it would
contain cli functions that won't run, but it is useful when it's used as
a library.
2024-10-29 16:42:15 -04:00
James Shubin
1692235498
lang: core: embedded: provisioner: Log output of post
...
This is useful for debugging and for knowing what we really did to the
machine.
2024-10-29 16:42:15 -04:00
James Shubin
a6bcd4b92b
lang: core: embedded: provisioner: Reduce amount of log noise
...
We don't need to refresh the leases so often.
2024-10-29 16:42:15 -04:00
James Shubin
d065cddf5e
lang: core: embedded: provisioner: Remove old package
...
Doesn't seem to be used for anything at the moment.
2024-10-29 16:42:15 -04:00
James Shubin
b140b2dfeb
util: Move executable path finding into a helper function
2024-10-29 16:41:37 -04:00
James Shubin
583f90dc7b
util: distro: Rename functions to avoid golang stutter warning
2024-10-25 02:56:12 -04:00
James Shubin
10f82c6566
lang: core: list: Add a concat function
...
It works with arbitrary numbers of arguments too!
2024-10-18 10:02:29 -04:00
James Shubin
3d11b2caaf
lang: core: deploy: Add a function to help in obtaining bootstrap deps
...
This should make it easier to implement handoff.
2024-10-15 20:54:33 -04:00
James Shubin
f8037a1f99
lang: types: Add a small helper function for common type conversions
2024-10-15 20:53:39 -04:00
James Shubin
d24149518c
util: distro: Refactor family and distro code
...
I hate writing abstraction code like this, but I'm hoping it will be
useful.
2024-10-15 20:36:50 -04:00
James Shubin
a8c8f09aa3
gapi: Plumb through a URI mechanism
...
This is at least a stop-gap until we redo the whole filesystem API mess.
I think golang is partly to blame because they don't have proper API's
merged yet.
2024-10-13 16:40:50 -04:00
James Shubin
b03fdeccae
lang: interfaces: Nil input means no args
2024-10-07 00:00:19 -04:00
James Shubin
6c12e8a29b
lang: gapi: The module path needs separate rebasing
...
If we're using a module path which doesn't share the same root, rebase
it separately.
2024-10-07 00:00:19 -04:00
James Shubin
310452542b
lang: gapi: Rebase to the common path prefix
...
When the modules dir is not within the main base, we don't correctly
choose the common base path. As a result, we should choose something
common for our internal path representation.
2024-10-05 01:02:03 -04:00
James Shubin
c937280664
engine: local, lang: core: local: Add a pool function
...
This adds a new local API for pool allocation, and with it a
corresponding function in the "local" import.
2024-10-04 22:37:39 -04:00
James Shubin
898b58e3e7
lang: core: strings: Add a substring function named substr
2024-10-03 13:49:08 -04:00
James Shubin
74119a0a53
lang: core: strings, util: Add left and right padding functions
...
Golang didn't want these in the standard library, but they are useful.
2024-10-03 13:49:08 -04:00
James Shubin
d6914d3437
lang: core: net: Improve formatting of the mac functions
2024-10-03 13:49:08 -04:00
James Shubin
fdfa03685c
lang: core: net: Add is_mac function
2024-10-02 14:31:20 -04:00
James Shubin
65f26769ae
lang: core: net: Add a cidr to mask function
...
And tidy things up slightly to remove buggy tests.
2024-09-28 22:54:06 -04:00
James Shubin
6397c8f930
lang: Clean up import logs
...
We get a lot of useless noise here, make it neater.
2024-09-28 21:56:53 -04:00
James Shubin
562138cb74
lang: core: os: Add expand_home function
...
Simple helper that works with ~/foo/ or ~james/foo/ type patterns.
2024-09-25 20:31:18 -04:00
James Shubin
29eebd0d07
lang: core: Move template to golang namespace
...
I don't think this template function should be in any way authoritative,
so let's namespace it.
2024-09-13 15:51:24 -04:00
James Shubin
9a5f6a5bd3
lang: core, funcs: Use the correct zero type
...
I wasn't using the correct contained type here.
2024-09-10 23:23:00 -04:00
James Shubin
2e774215e4
lang: core: deploy: Add a function to get the binary path
...
Useful for bootstrapping new machines.
2024-09-10 23:22:53 -04:00
James Shubin
118f266211
lang: core: local: Add a new vardir function
...
This gives us a function to return a created vardir folder. It is not
locally namespaced, and a future function will have to namespace one to
each scope.
2024-09-09 18:04:18 -04:00
James Shubin
b88ac4603f
lang: interfaces Add CallableFunc interface
...
Add a new interface for callable functions. This will likely be useful
for future versions of the function engine and for the "timeless" work.
2024-09-09 15:49:57 -04:00
James Shubin
1a39472734
lang: core: embedded: provisioner: Sometimes this is used
...
We need better overview of all the PXE/netboot stuff, probably we should
read a spec, but until an expert comes along, we'll have to proceed
incrementally.
2024-09-03 14:48:38 -04:00
James Shubin
a0972c0752
lang, engine: Add a metaparam for catching accidental dollar signs
...
Let's make our life easier for users!
2024-08-22 20:41:48 -04:00
James Shubin
8dc0d44513
lang: Add an extra fail scenario to our test suite
...
Let's us write tests for Validate failures.
2024-08-22 20:12:59 -04:00
James Shubin
8594b6e2a9
lang: funcs: Hint the struct_lookup functions better
...
If we have static information, use it to help unification.
2024-08-21 19:00:51 -04:00
James Shubin
82cac572ca
lang: core: fmt: Allow type unification variables for format
...
This allows some simple cases.
2024-08-21 19:00:50 -04:00
James Shubin
da4f69cd87
lang: ast, core: fmt: Allow unification variables for fmt
...
This lets us pass through unification variables into the fmt function. I
hope this doesn't break anything, but it's worth trying for now.
2024-08-21 18:52:24 -04:00
James Shubin
e6cb776eb6
lang: ast, core: fmt: Catch invalid nil signatures
...
We accidentally had a bad error triggered.
2024-08-21 18:50:11 -04:00
James Shubin
7557114b4e
lang: ast: Don't send empty ord names for partials
...
We would accidentally send some empty partials, woops! This reinforces
my belief that we should never pre-allocate list size unless we notice a
performance issue.
2024-08-21 18:00:44 -04:00
James Shubin
001e1a5da0
lang: Remove some error wrapping
...
Makes errors cleaner to read. The extra context wasn't very helpful.
2024-08-18 19:07:27 -04:00
James Shubin
6f3c3c318b
lang: core: Shorten functions with wrapper
...
This demonstrates how to write a function with the wrapper. Note that
you must not include Init if you're not calling the nested wrapper
function.
2024-08-18 18:29:01 -04:00
James Shubin
654e376be7
lang: core: Add list and map packages
...
Put the common functionality for those types in there.
2024-08-18 18:28:26 -04:00
James Shubin
211121cdca
lang: funcs: Use correct constant
2024-08-18 17:31:58 -04:00
James Shubin
7596f5b572
lang: core: os: Add family functions and variables
...
Make it easier to do os-specific stuff.
2024-08-07 17:30:15 -04:00
James Shubin
8e9c3b6c1e
lang: funcs: vars: Include system package variables in the scope
2024-08-07 17:30:13 -04:00
James Shubin
a93c98402a
lang: ast: Add better logging about scope issues
...
This may help out programmers who aren't sure what's going on.
2024-08-07 17:17:57 -04:00
James Shubin
b04ee4ba22
lang: ast: Pass through the data field for vars
2024-08-07 17:17:57 -04:00
James Shubin
65b104ea55
lang: ast: Split off helpers into util file
2024-08-07 17:17:57 -04:00
James Shubin
4abcd9cf01
lang: core: Quiet down the template function by default
...
We don't need to know this most of the time.
2024-08-01 20:54:55 -04:00