| Age | Commit message (Collapse) | Author |
|
This fix the issue on play command where remote server only has one
public key in the known_hosts file with the following error:
initSSHClient: NewClientInteractive: dialWithSigners: \
ssh: handshake failed: knownhosts: key mismatch with known_hosts \
files [/home/ms/.ssh/known_hosts]
This changes require replacing golang.org/x/crypto module with our
own forks that implement the fix on the [ssh/knownhosts] package.
|
|
Given the following command
#put!+0644 src/file dst/
If the dst is a directory, it would cause the directory permission
changes to 0644.
This changes fix it by checking if the destination is a directory first.
If we cannot stat the dst, skip the chmod/chown command.
|
|
When the Play command executed from the web user interface, there is a
possibility that concurrent requests set the sshConfig field in Awwan
struct at the same time.
In the integration tests for TestAwwan_Play_withLocal and
TestExecLocal_sudo, the data race happens when writing to the same
buffer for stdout and stderr, so we split them into separate buffers.
There is also data race in SSE connection, when handler for ExecuteTail
write to the same buffer with worker keep alive.
This has been fixed on pakakeh.go module.
|
|
When we made the refactoring, we forgot to run the test-integration task
which cause some tests are fails.
|
|
The `-shutdown-idle` option set the duration when the "serve" command
will stop accepting new connections and shutting down the HTTP server.
|
|
In case we needs to add another parameter, which will do later, the
argument will be too long.
Using parameters is acceptable only for 2 to 3 arguments.
|
|
The `-shutdown-idle` option set the duration when server will stop
accepting new connections and shutting down.
|
|
**๐ผ internal/cmd/www-awwan: implement socket based activation using systemd**
This allow us to run www-awwan only when its activated in the local
environment.
**๐ผ cmd/awwan: implement socket based activation on serve command**
The "awwan serve" command now can run based on socket activation under
systemd.
**๐ผ _wui/doc: use default ciigo style**
The default ciigo style provides consistent style with kilabit.info
and have support for light and dark themes.
**๐ง all: fix data race in tests and [httpServer.ExecuteTail]**
In the test for AwwanLocal, use buffer with lock, so each write and
read is safe.
In the httpServer, the test found data race during ExecuteTail when
accessing [ExecResponse.EndAt].
We fix it by locking the resource during call to end() and when
accessing the EndAt field.
**๐ง _ops/awwan-tour: fix build with latest mkosi**
The option "Incremental" and "CacheDirectory" in mkosi.conf has been moved
to section "[Build]".
**๐ง all: use separate buffer for stdout and stderr in TestAwwanLocal**
This is to fix flaky test on TestAwwanLocal.
**๐ผ all: improve the Server-Sent Events (SSE) output**
In the ExecResponse, store the event in the Output instead of message
data, so the server can iterate the Output directly and pass it to
WriteEvent directly.
The event ID now start at 1 with type "begin".
This is to minimize confusion when comparing empty Last-Event-ID from
client, which is equal to 0.
|
|
This update affect the [ciigo.Serve] call in internal/cmd/www-awwan.
|
|
The robots.txt in _wui/doc/ is for awwan.org, while in _wui/ is for
tour.awwan.org.
This remove the unneeded robots.txt from _tour/ directory that we
previously assume for tour.
|
|
In the ExecResponse, store the event in the Output instead of message
data, so the server can iterate the Output directly and pass it to
WriteEvent directly.
The event ID now start at 1 with type "begin".
This is to minimize confusion when comparing empty Last-Event-ID from
client, which is equal to 0.
|
|
Using dummy date make the test output hard to read in verbose option,
because the program logs mixed with the test logs.
|
|
This is to fix flaky test on TestAwwanLocal.
|
|
This is to prevent the 404 error when the page is viewed from
https://kilabit.info/project/awwan/ which cause "/dl/..." relative to
domain kilabit.info instead of awwan.org.
|
|
|
|
In the test for AwwanLocal, use buffer with lock, so each write and
read is safe.
In the httpServer, the test found data race during ExecuteTail when
accessing [ExecResponse.EndAt].
We fix it by locking the resource during call to end() and when
accessing the EndAt field.
|
|
This fix the IsBinary that return true when file size is less than 1024.
|
|
The default ciigo style provides consistent style with kilabit.info
and have support for light and dark themes.
|
|
|
|
The "awwan serve" command now can run based on socket activation under
systemd.
|
|
This allow us to run www-awwan only when its activated in the local
environment.
|
|
While at it, replace link on GNU make in the install document because
the website for www.gnu.org seems unstable at the moment.
|
|
[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.
|
|
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.
|
|
|
|
The "$noparse" option allow copying file without reading and parsing
the input file.
|
|
|
|
This commit also test WebHook on SourceHut.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
=== 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".
|
|
The wui submodule has been renamed to "pakakeh.ts".
|
|
Using ".reuse/dep5" has been deprecated since REUSE v3.2.0.
|
|
|
|
Move the local source to the bottom to help use test build on local
easily.
|
|
|
|
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.
|
|
|
|
|
|
This is to minimize duplicate files and allow us to find or grep files
without excluding certains directory.
|
|
The idea is to minimize noise in the logs that does not related to
page access and minimize binary size.
|
|
The "share" project has been moved to SourceHut with new name
"pakakeh.go".
|
|
=== 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.
|