<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pakakeh.go, branch v0.52.0</title>
<subtitle>Collections of packages and tools for working with Go programming language.</subtitle>
<id>http://git.kilabit.info/pakakeh.go/atom?h=v0.52.0</id>
<link rel='self' href='http://git.kilabit.info/pakakeh.go/atom?h=v0.52.0'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/'/>
<updated>2024-01-06T10:50:21Z</updated>
<entry>
<title>Release share v0.52.0 (2024-01-06)</title>
<updated>2024-01-06T10:50:21Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-01-06T10:49:56Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=84ee82ffe4bedf85aa3a69f45034d0d1e1b74e6a'/>
<id>urn:sha1:84ee82ffe4bedf85aa3a69f45034d0d1e1b74e6a</id>
<content type='text'>
=== New features

* ssh/config: add method MarshalText and WriteTo
* lib/ssh: implement method Output on Client
* ssh/sftp: implement method MkdirAll on Client
* cmd/httpdfs: implement [libhttp.Server] with [memfs.MemFS]

=== Breaking changes

* ssh/config: refactoring the Config merge
* ssh/config: add parameter Config to NewSection
* lib/ssh: add parameter context to Execute method
* lib/time: remove UnixMicro and UnixMilli
* lib/io: removed, this package has been merged into "lib/os"
* lib/parser: removed, this package has been merged into lib/strings

=== Bug fixes

* ssh/config: fix setting the default values
* ssh/config: set the Hostname if its not set on [Config.Get]
* http/sseclient: fix data race on [Client.Close]
* http/sseclient: fix Retry value not set to millisecond
* ssh/sftp: fix Stat on empty remote file name
* ssh/sftp: fix non-nil returned error on Close

=== Enhancements

* ssh/config: merge the Section slice values on [Section.merge]
* ssh/config: set the default UserKnownHostsFile in setDefaults
</content>
</entry>
<entry>
<title>ssh/config: refactoring the Config merge</title>
<updated>2023-12-25T19:37:15Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-25T19:25:30Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=bbefc9b4cd94a0688c45245ff2b2386ddb76d32e'/>
<id>urn:sha1:bbefc9b4cd94a0688c45245ff2b2386ddb76d32e</id>
<content type='text'>
This changes rename method [Config.Prepend] to [Config.Merge].

The way that how the other Config merged is changed.
Instead of appending all of other's sections into the current Config,
append the other Config instance to the current instance of Config.

During [Config.Get] the top Config will be evaluated first, and then the
other Config is evaluated in order of Merge.
</content>
</entry>
<entry>
<title>ssh/config: merge the Section slice values on [Section.merge]</title>
<updated>2023-12-25T19:36:56Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-25T16:53:34Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=b12a886ce9150bce62a78e0c621a6bcdd845f212'/>
<id>urn:sha1:b12a886ce9150bce62a78e0c621a6bcdd845f212</id>
<content type='text'>
Instead of using [Section.Set], set the key-value directly.

While at it, merge the certificateFile, IdentityFile, knownHostFiles,
and sendEnv.
</content>
</entry>
<entry>
<title>ssh/config: set the default UserKnownHostsFile in setDefaults</title>
<updated>2023-12-25T16:01:30Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-25T16:01:30Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=8b0eb632e4b3cb47e4b97e154ef7abaf03c7c36b'/>
<id>urn:sha1:8b0eb632e4b3cb47e4b97e154ef7abaf03c7c36b</id>
<content type='text'>
While at it, unfold each value of IdentityFile and UserKnownHostsFile
in setDefaults, by expanding "~" into user's home directory or joining
with "config" directory if its relative.
</content>
</entry>
<entry>
<title>ssh/config: update comment on [Config.Get]</title>
<updated>2023-12-25T07:17:33Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-25T07:17:33Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=34cecb708d68361c462fa65cceca962a184f9947'/>
<id>urn:sha1:34cecb708d68361c462fa65cceca962a184f9947</id>
<content type='text'>
Make it clear that the passed parameter is a host name and the returned
section will contains default values if no host or match found.
</content>
</entry>
<entry>
<title>ssh/config: add parameter Config to NewSection</title>
<updated>2023-12-25T07:14:02Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-25T07:14:02Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=4907d9403e71d42e70a7aa1ff76b792ed2fba2f7'/>
<id>urn:sha1:4907d9403e71d42e70a7aa1ff76b792ed2fba2f7</id>
<content type='text'>
This changes how the Section and parser initialized.

Previously, the Config depends on the parser to set the workDir and
homeDir and Section depends on Config only on Get; now its the other
way around, from top to bottom.
Config initialized first, then parser initialized using Config instance,
and then Section initialized also using Config instance.
</content>
</entry>
<entry>
<title>ssh/config: fix setting the default values</title>
<updated>2023-12-25T06:25:02Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-24T18:10:21Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=07165e72daa4d9d283ac049b06e5634f4d2f32e6'/>
<id>urn:sha1:07165e72daa4d9d283ac049b06e5634f4d2f32e6</id>
<content type='text'>
The field default value should be set on Get, after all the Host or
Match fields merged.
In this way, if the field key already set, its not overridden by the
default value or subsequent Host or Match vaue.
</content>
</entry>
<entry>
<title>lib/ssh: add parameter context to Execute method</title>
<updated>2023-12-22T08:21:40Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-22T07:07:03Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=8932e7ab20fcc78caeabcdaab5c01e9dbbbd7a17'/>
<id>urn:sha1:8932e7ab20fcc78caeabcdaab5c01e9dbbbd7a17</id>
<content type='text'>
This changes require the fork of our golang.org/x/crypto.
</content>
</entry>
<entry>
<title>go.mod: update golang.org/x/crypto to v0.17.0</title>
<updated>2023-12-22T03:01:13Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-22T03:01:13Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=7a63c70fb199eda55b512bd92163d7d51d39a2a3'/>
<id>urn:sha1:7a63c70fb199eda55b512bd92163d7d51d39a2a3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ssh/config: set the Hostname if its not set on [Config.Get]</title>
<updated>2023-12-18T17:11:01Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-18T17:03:46Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=a0c7d844b77315d796c1ab44501dff1226658982'/>
<id>urn:sha1:a0c7d844b77315d796c1ab44501dff1226658982</id>
<content type='text'>
Per manual ssh_config(5) on Hostname,

  The default is the name given on the command line.

So, if the requested host name match with one of Host or Match, but
Hostname is not set, it should be default to the requested parameter
name.
</content>
</entry>
</feed>
