<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wg-wrap.git/pkg/wgconf/wgconf.go, branch main</title>
<subtitle>wg-wrap runs commands in network namespaces configured with userspace wireguard tunnels.
</subtitle>
<id>https://git.theodohertyfamily.com/wg-wrap.git/atom?h=main</id>
<link rel='self' href='https://git.theodohertyfamily.com/wg-wrap.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.theodohertyfamily.com/wg-wrap.git/'/>
<updated>2026-06-05T02:38:44Z</updated>
<entry>
<title>refactor: simplify architecture and improve documentation</title>
<updated>2026-06-05T02:38:44Z</updated>
<author>
<name>James O'Doherty</name>
<email>james@theodohertyfamily.com</email>
</author>
<published>2026-06-05T02:38:44Z</published>
<link rel='alternate' type='text/html' href='https://git.theodohertyfamily.com/wg-wrap.git/commit/?id=66b782e261f1cd928ad6a8482788a65fb484db45'/>
<id>urn:sha1:66b782e261f1cd928ad6a8482788a65fb484db45</id>
<content type='text'>
- Extract orchestration logic from `internal/cli` into a new `internal/manager` package for better composability.
- Migrate technical implementation details from README.md to package-level godoc strings.
- Rewrite README.md to be more user-centric, focusing on quick start and usage.
- Add comprehensive documentation for exported structs and fields across the project.
- Verify all changes with `go fmt`, `go vet`, `golangci-lint`, and full E2E test suite.
</content>
</entry>
<entry>
<title>feat(cli,parser): support custom profile names and overhaul WireGuard .conf parser for robustness</title>
<updated>2026-05-29T23:30:26Z</updated>
<author>
<name>James O'Doherty</name>
<email>james@theodohertyfamily.com</email>
</author>
<published>2026-05-29T23:30:26Z</published>
<link rel='alternate' type='text/html' href='https://git.theodohertyfamily.com/wg-wrap.git/commit/?id=b1b68a4aa441d9ce39d05f85338e371a704dd601'/>
<id>urn:sha1:b1b68a4aa441d9ce39d05f85338e371a704dd601</id>
<content type='text'>
- CLI:
  - Add optional `[name]` argument to `wg-wrap profile import &lt;path&gt; [name]` to allow overriding the imported profile name. If not provided, it falls back to the derived filename.
  - Update `README.md` command documentation to reflect custom profile names and list the `wg-wrap profile stop &lt;name&gt;` subcommand.
  - Expand `internal/cli/profile_test.go` to cover derived vs custom-named profile imports.

- WG Configuration Parser:
  - Overhaul `pkg/wgconf/wgconf.go` to support case-insensitivity on section headers (e.g. `[peer]`, `[interface]`) and key names (e.g. `privatekey`, `allowedips`).
  - Implement robust trailing comment stripping (both `#` and `;`) while preserving inline comment-like characters in cryptographic keys (e.g. `key-with-hash-inside#123`) using whitespace-padded match logic.
  - Clean up and normalize leading/trailing spaces/tabs on parsed keys, values, and list elements (e.g. `AllowedIPs` and `DNS` fields).
  - Gracefully ignore unrecognized keys (e.g. `MTU`, `ListenPort`, `PresharedKey`) without returning errors.
  - Add comprehensive tests in `pkg/wgconf/wgconf_test.go` covering inline/block comments, formatting variations, unrecognized keys, and case-insensitivity.
</content>
</entry>
<entry>
<title>refactor: unify path management and complete profile management system</title>
<updated>2026-05-22T20:17:55Z</updated>
<author>
<name>James O'Doherty</name>
<email>james@theodohertyfamily.com</email>
</author>
<published>2026-05-22T20:17:55Z</published>
<link rel='alternate' type='text/html' href='https://git.theodohertyfamily.com/wg-wrap.git/commit/?id=135f6edbd9389bc4783f13c26aed0a74d3c8aca0'/>
<id>urn:sha1:135f6edbd9389bc4783f13c26aed0a74d3c8aca0</id>
<content type='text'>
- Create internal/paths package for unified config and runtime directory resolution
- Implement robust WireGuard config parsing in pkg/wgconf
- Implement profile management subcommands: list, import, configure, delete, stop
- Fix namespace pinning path collisions (separating .ns files from pids directories)
- Implement and verify namespace unpinning logic
- Fix linting errors and improve error handling across the project
</content>
</entry>
</feed>
