diff --git a/datanode/medium.go b/datanode/medium.go index b05c647..47ce247 100644 --- a/datanode/medium.go +++ b/datanode/medium.go @@ -1,7 +1,7 @@ -// medium := datanode.New() -// _ = medium.Write("jobs/run.log", "started") -// snapshot, _ := medium.Snapshot() -// restored, _ := datanode.FromTar(snapshot) +// Example: medium := datanode.New() +// Example: _ = medium.Write("jobs/run.log", "started") +// Example: snapshot, _ := medium.Snapshot() +// Example: restored, _ := datanode.FromTar(snapshot) package datanode import ( @@ -30,8 +30,8 @@ var ( ) // Example: medium := datanode.New() -// _ = medium.Write("jobs/run.log", "started") -// snapshot, _ := medium.Snapshot() +// Example: _ = medium.Write("jobs/run.log", "started") +// Example: snapshot, _ := medium.Snapshot() type Medium struct { dataNode *borgdatanode.DataNode directorySet map[string]bool @@ -46,8 +46,8 @@ func New() *Medium { } // Example: sourceMedium := datanode.New() -// snapshot, _ := sourceMedium.Snapshot() -// restored, _ := datanode.FromTar(snapshot) +// Example: snapshot, _ := sourceMedium.Snapshot() +// Example: restored, _ := datanode.FromTar(snapshot) func FromTar(data []byte) (*Medium, error) { dataNode, err := borgdatanode.FromTar(data) if err != nil { diff --git a/doc.go b/doc.go index b94d1bd..de19db1 100644 --- a/doc.go +++ b/doc.go @@ -1,5 +1,5 @@ -// medium, _ := io.NewSandboxed("/srv/app") -// _ = medium.Write("config/app.yaml", "port: 8080") -// backup, _ := io.NewSandboxed("/srv/backup") -// _ = io.Copy(medium, "data/report.json", backup, "daily/report.json") +// Example: medium, _ := io.NewSandboxed("/srv/app") +// Example: _ = medium.Write("config/app.yaml", "port: 8080") +// Example: backup, _ := io.NewSandboxed("/srv/backup") +// Example: _ = io.Copy(medium, "data/report.json", backup, "daily/report.json") package io diff --git a/go.sum b/go.sum index 0cd917c..0164e68 100644 --- a/go.sum +++ b/go.sum @@ -1,11 +1,7 @@ dappco.re/go/core v0.8.0-alpha.1 h1:gj7+Scv+L63Z7wMxbJYHhaRFkHJo2u4MMPuUSv/Dhtk= dappco.re/go/core v0.8.0-alpha.1/go.mod h1:f2/tBZ3+3IqDrg2F5F598llv0nmb/4gJVCFzM5geE4A= -dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= forge.lthn.ai/Snider/Borg v0.3.1 h1:gfC1ZTpLoZai07oOWJiVeQ8+qJYK8A795tgVGJHbVL8= forge.lthn.ai/Snider/Borg v0.3.1/go.mod h1:Z7DJD0yHXsxSyM7Mjl6/g4gH1NBsIz44Bf5AFlV76Wg= -forge.lthn.ai/Snider/Enchantrix v0.0.4/go.mod h1:OGCwuVeZPq3OPe2h6TX/ZbgEjHU6B7owpIBeXQGbSe0= -github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/ProtonMail/go-crypto v1.3.0/go.mod h1:9whxjD8Rbs29b4XWbB8irEcE8KHMqaR2e7GWU1R+/PE= github.com/aws/aws-sdk-go-v2 v1.41.4 h1:10f50G7WyU02T56ox1wWXq+zTX9I1zxG46HYuG1hH/k= github.com/aws/aws-sdk-go-v2 v1.41.4/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.7 h1:3kGOqnh1pPeddVa/E37XNTaWJ8W6vrbYV9lJEkCnhuY= @@ -28,105 +24,47 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.97.1 h1:csi9NLpFZXb9fxY7rS1xVzgPRGMt7 github.com/aws/aws-sdk-go-v2/service/s3 v1.97.1/go.mod h1:qXVal5H0ChqXP63t6jze5LmFalc7+ZE7wOdLtZ0LCP0= github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= -github.com/bep/debounce v1.2.1/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0= -github.com/clipperhouse/uax29/v2 v2.4.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g= -github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cyphar/filepath-securejoin v0.6.1/go.mod h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= -github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= -github.com/go-git/go-billy/v5 v5.7.0/go.mod h1:/1IUejTKH8xipsAcdfcSAlUlo2J7lkYV8GTKxAT/L3E= -github.com/go-git/go-git/v5 v5.16.4/go.mod h1:4Ge4alE/5gPs30F2H1esi2gPd69R0C39lolkucHBOp8= -github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= -github.com/godbus/dbus/v5 v5.2.2/go.mod h1:3AAv2+hPq5rdnr5txxxRwiGjPXamgoIHgz9FPBfOp3c= -github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-github/v39 v39.2.0/go.mod h1:C1s8C5aCC9L+JXIYpJM5GYytdX52vC1bLvHEF1IhBrE= -github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs= github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jchv/go-winloader v0.0.0-20250406163304-c1995be93bd1/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs= -github.com/kevinburke/ssh_config v1.4.0/go.mod h1:q2RIzfka+BXARoNexmF9gkxEX7DmvbW9P4hIVx2Kg4M= -github.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4= -github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/labstack/echo/v4 v4.13.3/go.mod h1:o90YNEeQWjDozo584l7AwhJMHN0bOC4tAfg+Xox9q5g= -github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= -github.com/leaanthony/go-ansi-parser v1.6.1/go.mod h1:+vva/2y4alzVmmIEpk9QDhA7vLC5zKDTRwfZGOp3IWU= -github.com/leaanthony/gosod v1.0.4/go.mod h1:GKuIL0zzPj3O1SdWQOdgURSuhkF+Urizzxh26t9f1cw= -github.com/leaanthony/slicer v1.6.0/go.mod h1:o/Iz29g7LN0GqH3aMjWAe90381nyZlDNquK+mtH2Fj8= -github.com/leaanthony/u v1.1.1/go.mod h1:9+o6hejoRljvZ3BzdYlVL0JYCwtnAsVuN9pVTQcaRfI= -github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= -github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w= github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= -github.com/pjbgf/sha1cd v0.5.0/go.mod h1:lhpGlyHLpQZoxMv8HcgXvZEhcGs0PG/vsZnEJ7H0iCM= -github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= -github.com/samber/lo v1.52.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= -github.com/schollz/progressbar/v3 v3.18.0/go.mod h1:IsO3lpbaGuzh8zIMzgY3+J8l4C8GjO0Y9S69eFvNsec= -github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= -github.com/skeema/knownhosts v1.3.2/go.mod h1:bEg3iQAuw+jyiw+484wwFJoKSLwcfd7fqRy+N0QTiow= -github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= -github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/tkrajina/go-reflector v0.5.8/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4= -github.com/ulikunitz/xz v0.5.15/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/wailsapp/go-webview2 v1.0.23/go.mod h1:qJmWAmAmaniuKGZPWwne+uor3AHMB5PFhqiK0Bbj8kc= -github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= -github.com/wailsapp/wails/v2 v2.11.0/go.mod h1:jrf0ZaM6+GBc1wRmXsM8cIvzlg0karYin3erahI4+0k= -github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= -golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= -golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= -golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/telemetry v0.0.0-20260311193753-579e4da9a98c/go.mod h1:TpUTTEp9frx7rTdLpC9gFG9kdI7zVLFTFFlqaH2Cncw= -golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A= -golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= modernc.org/cc/v4 v4.27.1 h1:9W30zRlYrefrDV2JE2O8VDtJ1yPGownxciz5rrbQZis= diff --git a/io.go b/io.go index 4c3074e..0d9a32c 100644 --- a/io.go +++ b/io.go @@ -11,9 +11,9 @@ import ( ) // Example: medium, _ := io.NewSandboxed("/srv/app") -// _ = medium.Write("config/app.yaml", "port: 8080") -// backup, _ := io.NewSandboxed("/srv/backup") -// _ = io.Copy(medium, "data/report.json", backup, "daily/report.json") +// Example: _ = medium.Write("config/app.yaml", "port: 8080") +// Example: backup, _ := io.NewSandboxed("/srv/backup") +// Example: _ = io.Copy(medium, "data/report.json", backup, "daily/report.json") type Medium interface { Read(path string) (string, error) @@ -133,7 +133,7 @@ func init() { } // Example: medium, _ := io.NewSandboxed("/srv/app") -// _ = medium.Write("config/app.yaml", "port: 8080") +// Example: _ = medium.Write("config/app.yaml", "port: 8080") func NewSandboxed(root string) (Medium, error) { return local.New(root) } @@ -181,7 +181,7 @@ func Copy(source Medium, sourcePath string, destination Medium, destinationPath } // Example: medium := io.NewMemoryMedium() -// _ = medium.Write("config/app.yaml", "port: 8080") +// Example: _ = medium.Write("config/app.yaml", "port: 8080") type MemoryMedium struct { files map[string]string dirs map[string]bool @@ -193,7 +193,7 @@ type MockMedium = MemoryMedium var _ Medium = (*MemoryMedium)(nil) // Example: medium := io.NewMemoryMedium() -// _ = medium.Write("config/app.yaml", "port: 8080") +// Example: _ = medium.Write("config/app.yaml", "port: 8080") func NewMemoryMedium() *MemoryMedium { return &MemoryMedium{ files: make(map[string]string), @@ -203,7 +203,7 @@ func NewMemoryMedium() *MemoryMedium { } // Example: medium := io.NewMockMedium() -// _ = medium.Write("config/app.yaml", "port: 8080") +// Example: _ = medium.Write("config/app.yaml", "port: 8080") func NewMockMedium() *MemoryMedium { return NewMemoryMedium() } diff --git a/local/medium.go b/local/medium.go index a6bfde8..ad57ed4 100644 --- a/local/medium.go +++ b/local/medium.go @@ -12,7 +12,7 @@ import ( ) // Example: medium, _ := local.New("/srv/app") -// _ = medium.Write("config/app.yaml", "port: 8080") +// Example: _ = medium.Write("config/app.yaml", "port: 8080") type Medium struct { filesystemRoot string } @@ -20,7 +20,7 @@ type Medium struct { var unrestrictedFileSystem = (&core.Fs{}).NewUnrestricted() // Example: medium, _ := local.New("/srv/app") -// _ = medium.Write("config/app.yaml", "port: 8080") +// Example: _ = medium.Write("config/app.yaml", "port: 8080") func New(root string) (*Medium, error) { absoluteRoot := absolutePath(root) if resolvedRoot, err := resolveSymlinksPath(absoluteRoot); err == nil { diff --git a/node/node.go b/node/node.go index 95b7f2b..541973d 100644 --- a/node/node.go +++ b/node/node.go @@ -346,7 +346,7 @@ func (node *Node) FileSet(filePath, content string) error { } // Example: _ = nodeTree.EnsureDir("config") -func (node *Node) EnsureDir(_ string) error { +func (node *Node) EnsureDir(directoryPath string) error { return nil } @@ -479,7 +479,7 @@ type dataFile struct { func (file *dataFile) Stat() (fs.FileInfo, error) { return &dataFileInfo{file: file}, nil } -func (file *dataFile) Read(_ []byte) (int, error) { return 0, goio.EOF } +func (file *dataFile) Read(buffer []byte) (int, error) { return 0, goio.EOF } func (file *dataFile) Close() error { return nil } diff --git a/s3/s3.go b/s3/s3.go index bc55040..456defc 100644 --- a/s3/s3.go +++ b/s3/s3.go @@ -159,12 +159,12 @@ func (medium *Medium) Write(filePath, content string) error { } // Example: _ = medium.WriteMode("keys/private.key", key, 0600) -func (medium *Medium) WriteMode(filePath, content string, _ fs.FileMode) error { +func (medium *Medium) WriteMode(filePath, content string, mode fs.FileMode) error { return medium.Write(filePath, content) } // Example: _ = medium.EnsureDir("reports/2026") -func (medium *Medium) EnsureDir(_ string) error { +func (medium *Medium) EnsureDir(directoryPath string) error { return nil } diff --git a/sigil/crypto_sigil.go b/sigil/crypto_sigil.go index 31947bc..98537ed 100644 --- a/sigil/crypto_sigil.go +++ b/sigil/crypto_sigil.go @@ -178,8 +178,8 @@ type ChaChaPolySigil struct { } // Example: cipherSigil, _ := sigil.NewChaChaPolySigil([]byte("0123456789abcdef0123456789abcdef")) -// ciphertext, _ := cipherSigil.In([]byte("payload")) -// plaintext, _ := cipherSigil.Out(ciphertext) +// Example: ciphertext, _ := cipherSigil.In([]byte("payload")) +// Example: plaintext, _ := cipherSigil.Out(ciphertext) func NewChaChaPolySigil(key []byte) (*ChaChaPolySigil, error) { if len(key) != 32 { return nil, InvalidKeyError @@ -196,13 +196,11 @@ func NewChaChaPolySigil(key []byte) (*ChaChaPolySigil, error) { } // Example: cipherSigil, _ := sigil.NewChaChaPolySigilWithObfuscator( -// -// []byte("0123456789abcdef0123456789abcdef"), -// &sigil.ShuffleMaskObfuscator{}, -// -// ) -// ciphertext, _ := cipherSigil.In([]byte("payload")) -// plaintext, _ := cipherSigil.Out(ciphertext) +// Example: []byte("0123456789abcdef0123456789abcdef"), +// Example: &sigil.ShuffleMaskObfuscator{}, +// Example: ) +// Example: ciphertext, _ := cipherSigil.In([]byte("payload")) +// Example: plaintext, _ := cipherSigil.Out(ciphertext) func NewChaChaPolySigilWithObfuscator(key []byte, obfuscator PreObfuscator) (*ChaChaPolySigil, error) { cipherSigil, err := NewChaChaPolySigil(key) if err != nil { diff --git a/sigil/sigil.go b/sigil/sigil.go index c75463c..f760fd0 100644 --- a/sigil/sigil.go +++ b/sigil/sigil.go @@ -1,7 +1,7 @@ -// hexSigil, _ := sigil.NewSigil("hex") -// gzipSigil, _ := sigil.NewSigil("gzip") -// encoded, _ := sigil.Transmute([]byte("payload"), []sigil.Sigil{hexSigil, gzipSigil}) -// decoded, _ := sigil.Untransmute(encoded, []sigil.Sigil{hexSigil, gzipSigil}) +// Example: hexSigil, _ := sigil.NewSigil("hex") +// Example: gzipSigil, _ := sigil.NewSigil("gzip") +// Example: encoded, _ := sigil.Transmute([]byte("payload"), []sigil.Sigil{hexSigil, gzipSigil}) +// Example: decoded, _ := sigil.Untransmute(encoded, []sigil.Sigil{hexSigil, gzipSigil}) package sigil import core "dappco.re/go/core" diff --git a/sigil/sigils.go b/sigil/sigils.go index 41e15c5..1dd9983 100644 --- a/sigil/sigils.go +++ b/sigil/sigils.go @@ -147,8 +147,8 @@ type HashSigil struct { Hash crypto.Hash } -// hashSigil := sigil.NewHashSigil(crypto.SHA256) -// digest, _ := hashSigil.In([]byte("payload")) +// Example: hashSigil := sigil.NewHashSigil(crypto.SHA256) +// Example: digest, _ := hashSigil.In([]byte("payload")) func NewHashSigil(h crypto.Hash) *HashSigil { return &HashSigil{Hash: h} } @@ -204,9 +204,9 @@ func (sigil *HashSigil) Out(data []byte) ([]byte, error) { return data, nil } -// hexSigil, _ := sigil.NewSigil("hex") -// gzipSigil, _ := sigil.NewSigil("gzip") -// transformed, _ := sigil.Transmute([]byte("payload"), []sigil.Sigil{hexSigil, gzipSigil}) +// Example: hexSigil, _ := sigil.NewSigil("hex") +// Example: gzipSigil, _ := sigil.NewSigil("gzip") +// Example: transformed, _ := sigil.Transmute([]byte("payload"), []sigil.Sigil{hexSigil, gzipSigil}) func NewSigil(name string) (Sigil, error) { switch name { case "reverse": diff --git a/store/doc.go b/store/doc.go index 2851aea..37c0af2 100644 --- a/store/doc.go +++ b/store/doc.go @@ -1,5 +1,5 @@ -// keyValueStore, _ := store.New(store.Options{Path: ":memory:"}) -// _ = keyValueStore.Set("app", "theme", "midnight") -// medium := keyValueStore.AsMedium() -// _ = medium.Write("app/theme", "midnight") +// Example: keyValueStore, _ := store.New(store.Options{Path: ":memory:"}) +// Example: _ = keyValueStore.Set("app", "theme", "midnight") +// Example: medium := keyValueStore.AsMedium() +// Example: _ = medium.Write("app/theme", "midnight") package store diff --git a/store/medium.go b/store/medium.go index 20a32c4..96c2384 100644 --- a/store/medium.go +++ b/store/medium.go @@ -11,9 +11,9 @@ import ( ) // Example: medium, _ := store.NewMedium(store.Options{Path: "config.db"}) -// _ = medium.Write("app/theme", "midnight") -// entries, _ := medium.List("") -// entries, _ := medium.List("app") +// Example: _ = medium.Write("app/theme", "midnight") +// Example: entries, _ := medium.List("") +// Example: entries, _ := medium.List("app") type Medium struct { store *Store } @@ -21,7 +21,7 @@ type Medium struct { var _ coreio.Medium = (*Medium)(nil) // Example: medium, _ := store.NewMedium(store.Options{Path: "config.db"}) -// _ = medium.Write("app/theme", "midnight") +// Example: _ = medium.Write("app/theme", "midnight") func NewMedium(options Options) (*Medium, error) { store, err := New(options) if err != nil { @@ -75,12 +75,12 @@ func (medium *Medium) Write(entryPath, content string) error { } // Example: _ = medium.WriteMode("app/theme", "midnight", 0600) -func (medium *Medium) WriteMode(entryPath, content string, _ fs.FileMode) error { +func (medium *Medium) WriteMode(entryPath, content string, mode fs.FileMode) error { return medium.Write(entryPath, content) } // Example: _ = medium.EnsureDir("app") -func (medium *Medium) EnsureDir(_ string) error { +func (medium *Medium) EnsureDir(entryPath string) error { return nil } diff --git a/store/store.go b/store/store.go index 6afebc5..2f15491 100644 --- a/store/store.go +++ b/store/store.go @@ -23,7 +23,7 @@ type Options struct { } // Example: keyValueStore, _ := store.New(store.Options{Path: ":memory:"}) -// _ = keyValueStore.Set("app", "theme", "midnight") +// Example: _ = keyValueStore.Set("app", "theme", "midnight") func New(options Options) (*Store, error) { if options.Path == "" { return nil, core.E("store.New", "database path is required", fs.ErrInvalid) @@ -131,8 +131,8 @@ func (store *Store) GetAll(group string) (map[string]string, error) { } // Example: keyValueStore, _ := store.New(store.Options{Path: ":memory:"}) -// _ = keyValueStore.Set("user", "name", "alice") -// out, _ := keyValueStore.Render("hello {{ .name }}", "user") +// Example: _ = keyValueStore.Set("user", "name", "alice") +// Example: out, _ := keyValueStore.Render("hello {{ .name }}", "user") func (store *Store) Render(templateText, group string) (string, error) { rows, err := store.database.Query("SELECT key, value FROM kv WHERE grp = ?", group) if err != nil { diff --git a/workspace/doc.go b/workspace/doc.go index f949c37..a817e1c 100644 --- a/workspace/doc.go +++ b/workspace/doc.go @@ -1,5 +1,5 @@ // Example: service, _ := workspace.New(workspace.Options{CryptProvider: cryptProvider}) -// workspaceID, _ := service.CreateWorkspace("alice", "pass123") -// _ = service.SwitchWorkspace(workspaceID) -// _ = service.WorkspaceFileSet("notes/todo.txt", "ship it") +// Example: workspaceID, _ := service.CreateWorkspace("alice", "pass123") +// Example: _ = service.SwitchWorkspace(workspaceID) +// Example: _ = service.WorkspaceFileSet("notes/todo.txt", "ship it") package workspace diff --git a/workspace/service.go b/workspace/service.go index 8b767a3..f094deb 100644 --- a/workspace/service.go +++ b/workspace/service.go @@ -54,7 +54,7 @@ type Service struct { var _ Workspace = (*Service)(nil) // Example: service, _ := workspace.New(workspace.Options{CryptProvider: cryptProvider}) -// workspaceID, _ := service.CreateWorkspace("alice", "pass123") +// Example: workspaceID, _ := service.CreateWorkspace("alice", "pass123") func New(options Options) (*Service, error) { home := resolveWorkspaceHomeDirectory() if home == "" { @@ -193,7 +193,7 @@ func (service *Service) HandleWorkspaceCommand(command WorkspaceCommand) core.Re // Example: result := service.HandleWorkspaceMessage(core.New(), WorkspaceCommand{Action: WorkspaceSwitchAction, WorkspaceID: "f3f0d7"}) // Example: legacy := service.HandleWorkspaceMessage(core.New(), map[string]any{"action": WorkspaceCreateAction, "identifier": "alice", "password": "pass123"}) -func (service *Service) HandleWorkspaceMessage(_ *core.Core, message core.Message) core.Result { +func (service *Service) HandleWorkspaceMessage(coreRuntime *core.Core, message core.Message) core.Result { command, ok := workspaceCommandFromMessage(message) if !ok { return core.Result{OK: true}