<feed xmlns='http://www.w3.org/2005/Atom'>
<title>awwan, branch v0.9.0</title>
<subtitle>Configuration management software, scriptable shell with SSH support.</subtitle>
<id>http://git.kilabit.info/awwan/atom?h=v0.9.0</id>
<link rel='self' href='http://git.kilabit.info/awwan/atom?h=v0.9.0'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/'/>
<updated>2023-11-11T12:26:27Z</updated>
<entry>
<title>Release awwan v0.9.0 (2023-11-11)</title>
<updated>2023-11-11T12:26:27Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-11-11T12:25:58Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=96113dc47725aefef1b6f9f6a8ddee31df69ef86'/>
<id>urn:sha1:96113dc47725aefef1b6f9f6a8ddee31df69ef86</id>
<content type='text'>
Awwan now have a website at https://awwan.org.

=== New features

* all: implement remote "#get!" and "#put!" with owner and mode

  The magic command "#get" and "#put" now have an inline options to set
  the owner and permission of copied file. Example of usage are,

    #get:$USER:$GROUP+$PERM src dst
    #put!$USER:$GROUP+$PERM src dst

  The $USER, $GROUP and $PERM are optionals.

  If $USER and/or $GROUP is set, a copied file will have owner set to
  user $USER and/or group to $GROUP. If $PERM is set, a copied file will
  have the mode permission set to $MODE.

* all: add magic command "#local"

  The magic command "#local" define the command to be executed using
  shell in local environment. Its have effect and can only be used in
  script that executed using "play".
  In script that is executed using "local" it does nothing.

* _www: replace button "Clear selection" with text input for line range

  Instead of using mouse to select which lines to be executed, let user
  input it manually like in the CLI.

* all: log all execution into file

  For each script execution, a file suffixed with ".log" will be created
  in the same directory with the same name as script file. For example,
  if the script is path is "a/b/c.aww" then the log file would named
  "a/b/c.aww.log".

  This is to provides history and audit in the future.

* cmd/awwan: add option "-address" to command serve

  The "-address" option allow defining the HTTP server address to serve
  the web-user interface.

=== Bug fixes

* all: trim spaces in passphrase when its read from file

  Using vim, or UNIX in general, the file always end with "\n".
  If we read the whole file then the passphrase will end with it,
  this cause the decryption may fail (or wrong encryption passphrase
  used).

* _www: fix saving file content using CTRL+s

  The issue is using "this.editorOnSave" result on undefined "this"
  inside the editorOnSave.

* all: remove the node when requested from HTTP API /awwan/api/fs

  Previously, the HTTP API for deleting node only remove the file but
  not the node in the memfs.

  This changes remove the child node from memfs, so the next refresh on
  directory will not contains the removed file.

* all: return the error as reponse in HTTP API execute

  Previously, when the command execution failed, we check the error and
  return it as HTTP status code 500. In this way, user cannot view the
  log and actual error.

  In this changes, if the command failed, we store the error in separate
  field "Error" and return to the caller with HTTP status code 200.

=== Enhancements

* all: fix printing the statement to be executed

  This fix missing magic command not printed in stdout.

* all: use "mlog.MultiLogger" to log Request output and error

  By using "mlog.MultiLogger" every output or error can be written to
  stdout/stderr and additional log writer that can collect both of them,
  buffered and returned to the caller.

  This changes simplify the HttpResponse to use only single output that
  combine both stdout and stderr.

* _www: add button to resize editor and output

  The button can be dragged up and down to resize both the editor and output
  panes.

* _www: show confirmation when user open other file with unsaved changes

  If user modify the current file without saving it and then open another
  file, it will show confirmation dialog to continue opening file or cancel
  it.

* all: on file save, make sure file end with line-feed

  On some application, like haproxy configuration, line-feed (LF or "n") are
  required, otherwise the application would not start.

* script: respect spaces when joining multi lines command

  If a multi lines command does not have spaces or have multiple spaces,
  join them as is. For example,

    a\\
    b

  should return the value as ab, while

    a \\
     b

  should return "a&lt;space&gt;&lt;space&gt;b".

* _wui: various enhancements

  Changes,

  - The "File" tag now highlighted to distinguish with file name
  - The "Execute" action moved to replace the Output, so we have some
    additional horizontal space
  - The "Output" tag removed
  - Fix layout on mobile devices where height is set to static
  - editor: re-render content after save
  - editor: handle paste event manually
</content>
</entry>
<entry>
<title>go.mod: update module ciigo</title>
<updated>2023-11-11T12:17:59Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-11-11T12:17:59Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=d56b730d32a061e424bdacf4398e9b804734a6fb'/>
<id>urn:sha1:d56b730d32a061e424bdacf4398e9b804734a6fb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>internal: use separate DirWatcher instead of using instance of MemfsWui</title>
<updated>2023-11-11T12:13:10Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-11-11T12:04:10Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=42a9a5e3db65ed59ce8b447759249a3403ec1d9c'/>
<id>urn:sha1:42a9a5e3db65ed59ce8b447759249a3403ec1d9c</id>
<content type='text'>
In MemfsWui we exclude the "adoc" files but when calling Watch
we pass it as to be included.
When the adoc file changes, sometimes the changes not detected, probably
there is a bug in the memfs.Watch.
For now, we use separate instance of DirWatcher to watch any changes
on adoc, html, js, md, and files.
</content>
</entry>
<entry>
<title>_wui: update editor library</title>
<updated>2023-11-11T11:37:15Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-11-11T11:35:23Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=4c1da4aa04efb8cdda5eb3b399c5d1f40a84666c'/>
<id>urn:sha1:4c1da4aa04efb8cdda5eb3b399c5d1f40a84666c</id>
<content type='text'>
Changes,

* editor: re-render content after save
* editor: handle paste event manually
</content>
</entry>
<entry>
<title>_wui: various enhancements</title>
<updated>2023-11-11T11:37:15Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-11-11T10:43:52Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=d65ffe4bc41cf917905740d39d2b8c23fa2eaa2d'/>
<id>urn:sha1:d65ffe4bc41cf917905740d39d2b8c23fa2eaa2d</id>
<content type='text'>
Changes,

* The "File" tag now highlighted to distinguish with file name.
* The "Execute" action moved to replace the Output, so we have some
  additional horizontal space.
* The "Output" tag removed.
* Fix layout on mobile devices where height is set to static.
</content>
</entry>
<entry>
<title>script: respect spaces when joining multi lines command</title>
<updated>2023-11-11T11:37:15Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-11-10T08:07:52Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=d8b7a4e509a641ea2949646c5a3577bc848fea30'/>
<id>urn:sha1:d8b7a4e509a641ea2949646c5a3577bc848fea30</id>
<content type='text'>
If a multi lines command does not have spaces or have multiple
spaces, join them as is.
For example,

a\
b

should return the value as "ab", while

a \
 b

should return "a  b".
</content>
</entry>
<entry>
<title>all: on file save, make sure file end with line-feed</title>
<updated>2023-11-09T05:58:54Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-11-09T05:58:54Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=cf6d0e5bb0baf5acbc70f8084d087e3a41b5452e'/>
<id>urn:sha1:cf6d0e5bb0baf5acbc70f8084d087e3a41b5452e</id>
<content type='text'>
On some application, like haproxy configuration, line-feed (LF or "\n")
are required, otherwise the application would not start.
</content>
</entry>
<entry>
<title>cmd/awwan: add option "-address" to command serve</title>
<updated>2023-11-09T05:57:32Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-11-09T05:57:32Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=fe14373978ab611cb7757df9f3ade411d9f716b0'/>
<id>urn:sha1:fe14373978ab611cb7757df9f3ade411d9f716b0</id>
<content type='text'>
The "-address" option allow defining the HTTP server address to serve
the web-user interface.
</content>
</entry>
<entry>
<title>_wui: update submodule wui</title>
<updated>2023-11-09T05:56:01Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-11-09T05:56:01Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=7063eb2298a349696a1adf0c08ff2650867e8def'/>
<id>urn:sha1:7063eb2298a349696a1adf0c08ff2650867e8def</id>
<content type='text'>
This changes simplify the editor and make it more user friendly that
allow delete, copy, and paste with selection.
</content>
</entry>
<entry>
<title>go.mod: update share module to tip</title>
<updated>2023-11-09T05:54:27Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-11-09T05:54:27Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=8d1c07a2864343520d26dad6ce0ab3d72a7719f6'/>
<id>urn:sha1:8d1c07a2864343520d26dad6ce0ab3d72a7719f6</id>
<content type='text'>
</content>
</entry>
</feed>
