summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-12-27Release awwan v0.13.0 (2025-12-27)v0.13.0Shulhan
[NEW FEATURES] Add option "$noparse" for magic "#put" command. The "$noparse" option allow copying file without reading and parsing the input file. [CHORES] Fix "reuse lint" warnings due to embedded SPDX annotation. Fix field alignment on struct Statement.
2025-12-27all: update all dependencies and fix linter warningsShulhan
In the internal/, fix the "reuse lint" warnings due to embedded SPDX headers string that contains "\n" considered as invalid. Realign struct Statement based on fieldaligment check.
2025-10-03go.mod: update all dependenciesShulhan
2025-10-03all: add option "$noparse" for magic "#put" commandShulhan
The "$noparse" option allow copying file without reading and parsing the input file.
2025-06-29all: add task to deploy www-awwan from webhookShulhan
2025-06-29go.mod: update all dependenciesShulhan
This commit also test WebHook on SourceHut.
2025-04-19go.mod: update all dependenciesShulhan
2025-02-08Release awwan v0.12.3 (2025-02-08)v0.12.3Shulhan
This release mostly chores, updating the dependencies, linters, and fix on integration testing with mkosi and Arch Linux. [CHORE] The default linters now "go vet" and internal/cmd/gocheck. The gocheck is collection of static Analyzers that are not included in "go vet" from golang.org/x/tools. [CHORE] The replace directive on esbuild and golang.org/x/crypt in go.mod has been removed. Maintaining fork is not easy and take a lot of time. As we seen in crypto fork, we are 10 minor versions behind upstream. So now we are back to using upstream. [CHORE] The integration tests using mkosi and Arch Linux has been fixed and updated.
2025-02-08all: another fix for integration testsShulhan
In the mkosi 25.3 the environment variable $MKOSI_UID now using subuid, which return 0 if we have subuid "<user>:100000:65536". The mkosi.nspawn is not imported to the build directory, so we need to copy it from source.
2025-02-07internal/cmd/gocheck: internal lintersShulhan
The fieldalignment and shadow is a linter from golang.org/x/tools. This program actually have an API that can be used. The pakakeh.go/lib/goanalysis wrap those APIs into a single function call that can be run inside a main. This minimize and simplified our tools dependencies.
2025-02-07go.mod: update all dependenciesShulhan
2025-01-12all: update all dependenciesShulhan
2025-01-12all: update machine container setup with latest ArchShulhan
The latest mkosi use importctl instead of machinectl to import the image. There is an issue in mkosi.conf where build with Format=tar always get compressed using zstd, but importctl unable to import it, so we need to set CompressOutput=false. The home directory mode needs to be set to open 0755, because now its default to 0700, which makes the test failed to read file on others user's home. The pacman mirror changes to public one that is always available, geo.mirror.pkgbuild.com. The BUG_REPORT_URL in os-release for Arch changes which we need to modify because its included in the test-container.
2025-01-12go.mod: update all dependenciesShulhan
This changes remove the replace module and back to upstream. Maintaining fork is not easy and take a lot of time. As we seen in crypto fork, we are 10 minor version behind upstream.
2025-01-12make: replace linter golangci-lint with "go vet"Shulhan
We are not happy with this linter, it create an illussion of works rather than fixing real issues. The golangci-lint does not works on gotip and its become red herring and subjective rather than correctness.
2024-09-08Release awwan v0.12.2 (2024-09-08)v0.12.2Shulhan
=== Chores * all: replace licensing format to REUSE.toml Using ".reuse/dep5" has been deprecated since REUSE v3.2.0. * _wui: update wui submodule URL The wui submodule has been renamed to "pakakeh.ts".
2024-09-08_wui: update wui submodule URLShulhan
The wui submodule has been renamed to "pakakeh.ts".
2024-09-08all: replace licensing format to REUSE.tomlShulhan
Using ".reuse/dep5" has been deprecated since REUSE v3.2.0.
2024-09-08go.mod: update all dependenciesShulhan
2024-09-08_AUR: update gitignore and PKGBUILDShulhan
Move the local source to the bottom to help use test build on local easily.
2024-09-08all: fix linter warningsShulhan
2024-04-06Release awwan v0.12.1 (2024-04-05)v0.12.1Shulhan
This release replace module "share" with "pakakeh.go". In the "_wui", we use shared static assets from Cloud Storage. The idea is to minimize noise in the logs that does not related to page access and minimize binary size. In the "_ops", we use shared mkosi cache in user’s home ".cache". This is to minimize duplicate files and allow us to find or grep files without excluding certains directory. We also apply some recommendations from linters.
2024-04-06all: comply with linter recommendationsShulhan
2024-04-06all: update module "pakakeh.go" to latest releaseShulhan
2024-03-22_ops: use shared mkosi cache in user's home ".cache"Shulhan
This is to minimize duplicate files and allow us to find or grep files without excluding certains directory.
2024-03-22_wui: use shared static assets from Cloud StorageShulhan
The idea is to minimize noise in the logs that does not related to page access and minimize binary size.
2024-03-22all: replace module "share" with "pakakeh.go"Shulhan
The "share" project has been moved to SourceHut with new name "pakakeh.go".
2024-02-08Release awwan v0.12.0 (2024-02-08)v0.12.0Shulhan
=== Breaking changes * all: refactoring "env-set" arguments Previously, the "env-set" take the file argument as the last argument and optional. This changes move the file argument to the first argument so the bash completion can detect and print the completion for list of keys. While at it, fix handling key with quoted in EnvSet and EnvGet. * all: refactoring env-get command This changes the order of arguments of env-get command to pass the directory first before the key. The reason is to simplify auto-completion later from the command line. === New features * all: add command env-keys The "env-keys" command print list of environment variables under a directory. This command is internal, not documented, used by bash completion. * all: add bash completion script Using awwan from CLI now can automatically complete the arguments based on the command and current parameter number.
2024-02-08go.mod: update share moduleShulhan
2024-01-22bash-completion: add completion for range in local and play argumentShulhan
When user type the "local" or "play" command and the current input is the range, read the script file and print each line prefixed with line number. Implements: https://todo.sr.ht/~shulhan/awwan/10
2024-01-20completions: enable completion on first parameter in local and playShulhan
The first parameter of "local" and "play" command is the path to file to execute.
2024-01-16all: refactoring "env-set" argumentsShulhan
Previously, the "env-set" take the file argument as the last argument and optional. This changes move the file argument to the first argument so the bash completion can detect and print the completion for list of keys. While at it, fix handling key with quoted in EnvSet and EnvGet. Closes: https://todo.sr.ht/~shulhan/awwan/10
2024-01-16bash-completion: use command env-keys to show completion for env-getShulhan
After the env-get first parameter is filled, the file or directory, we can show possible completion for the second parameter by printing all keys under the path. References: https://todo.sr.ht/~shulhan/awwan/10
2024-01-16all: add command env-keysShulhan
The "env-keys" command print list of environment variables under a directory. This command is internal, not documented, used by bash completion.
2024-01-16all: refactoring env-get commandShulhan
This changes the order of arguments of env-get command to pass the directory first before the key. The reason is to simplify auto-completion later from the command line.
2024-01-16all: add bash completion scriptShulhan
While at it, set the AUR architecture to 'any' since Go can be build on all ArchLinux supported architecture; and update the url variable to official awwan website. References: https://todo.sr.ht/~shulhan/awwan/10
2024-01-06internal: update memfs for www-awwan and wuiShulhan
2024-01-06Release awwan v0.11.0 (2024-01-06)v0.11.0Shulhan
In this release we create https://tour.awwan.org where user can try and learn awwan using step-by-step tutorial. In the web-user interface (WUI) we add functionality to stop the local or SSH execution. === Breaking changes * all: make the magic line "#put:" use explicit source for encrypted file === New features * _wui: implement button to stop execution * all: implement HTTP API to stop local or play execution === Bug fixes * all: check script file is a directory * all: fix panic due to out of range when running "#require" statement === Enhancements * all: delete the execution response and context cancellation on finished * all: change the remote temporary directory to "~/.cache/awwan"
2024-01-06go.mod: update all dependenciesShulhan
2023-12-26go.mod: update share moduleShulhan
The update on share module fix several issues in "lib/ssh/config". Including, * Fix on SSH Config the default values. Using Host with different Port now working as expected. * Refactoring the Config merge. Using IdentityFile or UserKnownHostsFile with relative path in ".ssh/config", for example UserKnownHostsFile known_hosts will now load the known_hosts in the same directory as config file.
2023-12-26_ops/tour: enable and start the awwan-tour containerShulhan
Enablnig them allow the container to auto started when machine started.
2023-12-22all: support cancellation when running command using SSH clientShulhan
This changes require us to replace golang.org/x/crypto with our fork, since the [ssh.Session.Run] with context is not available yet in upstream. Implements: https://todo.sr.ht/~shulhan/awwan/9
2023-12-22go.mod: update share and x/crypto moduleShulhan
This update is for security fixes in x/crypto on related to Prefix Truncation Attack.
2023-12-22all: fix double "vv" in usage version stringShulhan
2023-12-22all: delete the execution response and context cancellation on finishedShulhan
Once the ExecResponse EndAt is not empty or event queue has been closed, clear the map that store the execution response and context cancellation to minimize resources usage.
2023-12-22_wui: implement button to stop executionShulhan
The Stop button call "DELETE /awwan/api/execute?id=" with id is the previous execution ID. Implements: https://todo.sr.ht/~shulhan/awwan/9
2023-12-22all: implement HTTP API to stop local or play executionShulhan
The HTTP API for stopping execution have the following signature, DELETE /awwan/api/execute?id=<string> If the ID is exist, the execution will be cancelled and return HTTP status 200 with the following body, Content-Type: application/json { "code": 200, } Otherwise it will return HTTP status 404 with error message. References: https://todo.sr.ht/~shulhan/awwan/9
2023-12-22all: add [context.Context] to Local and PlayShulhan
Passing context allow the command Local or Play to be cancelled when running in asynchronous mode, in this case when awwan run with WUI.
2023-12-22all: check script file is a directoryShulhan
This changes we make sure that the passed script path is not a directory to prevent error when running play with unknown host name.
2023-12-22all: update comment on relativePath functionShulhan