Skip to content

Commit 629f99e

Browse files
refactor(libcore): remove old APIs (MatsuriDayo#490)
Signed-off-by: HystericalDragon <HystericalDragons@proton.me>
1 parent bca302d commit 629f99e

File tree

4 files changed

+47
-22
lines changed

4 files changed

+47
-22
lines changed

libcore/assets_android.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package libcore
55
import (
66
"fmt"
77
"io"
8-
"io/ioutil"
98
"log"
109
"os"
1110
"path/filepath"
@@ -66,7 +65,7 @@ func extractAssetName(name string, useOfficialAssets bool) error {
6665
if err != nil {
6766
return fmt.Errorf("open version in assets: %v", err)
6867
}
69-
b, err := ioutil.ReadAll(av)
68+
b, err := io.ReadAll(av)
7069
av.Close()
7170
if err != nil {
7271
return fmt.Errorf("read internal version: %v", err)
@@ -85,7 +84,7 @@ func extractAssetName(name string, useOfficialAssets bool) error {
8584
doExtract = true
8685
} else if useOfficialAssets || !replaceable {
8786
// 官方源升级
88-
b, err := ioutil.ReadFile(dir + version)
87+
b, err := os.ReadFile(dir + version)
8988
if err != nil {
9089
// versionFileMissing
9190
doExtract = true

libcore/go.mod

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
module libcore
22

3-
go 1.18
3+
go 1.20
44

55
require (
6-
github.com/codeclysm/extract v2.2.0+incompatible
76
github.com/matsuridayo/libneko v1.0.0 // replaced
87
github.com/matsuridayo/sing-box-extra v1.0.0 // replaced
98
github.com/miekg/dns v1.1.56
@@ -33,12 +32,10 @@ require (
3332
github.com/golang/protobuf v1.5.3 // indirect
3433
github.com/google/btree v1.1.2 // indirect
3534
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect
36-
github.com/h2non/filetype v1.1.3 // indirect
3735
github.com/hashicorp/yamux v0.1.1 // indirect
3836
github.com/inconshreveable/mousetrap v1.1.0 // indirect
3937
github.com/insomniacslk/dhcp v0.0.0-20231016090811-6a2c8fbdcc1c // indirect
4038
github.com/josharian/native v1.1.0 // indirect
41-
github.com/juju/errors v1.0.0 // indirect
4239
github.com/klauspost/compress v1.15.15 // indirect
4340
github.com/klauspost/cpuid/v2 v2.2.5 // indirect
4441
github.com/libdns/alidns v1.0.3 // indirect

libcore/go.sum

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P
1111
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
1212
github.com/cloudflare/circl v1.3.6 h1:/xbKIqSHbZXHwkhbrhrt2YOHIwYJlXH94E3tI/gDlUg=
1313
github.com/cloudflare/circl v1.3.6/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
14-
github.com/codeclysm/extract v2.2.0+incompatible h1:q3wyckoA30bhUSiwdQezMqVhwd8+WGE64/GL//LtUhI=
15-
github.com/codeclysm/extract v2.2.0+incompatible/go.mod h1:2nhFMPHiU9At61hz+12bfrlpXSUrOnK+wR+KlGO4Uks=
1614
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
1715
github.com/cretz/bine v0.1.0/go.mod h1:6PF6fWAvYtwjRGkAuDEJeWNOv3a2hUouSP/yRYXmvHw=
1816
github.com/cretz/bine v0.2.0 h1:8GiDRGlTgz+o8H9DSnsl+5MeBK4HsExxgl6WgzOCuZo=
@@ -46,8 +44,6 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
4644
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
4745
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE=
4846
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
49-
github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg=
50-
github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY=
5147
github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE=
5248
github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
5349
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
@@ -58,15 +54,11 @@ github.com/insomniacslk/dhcp v0.0.0-20231016090811-6a2c8fbdcc1c/go.mod h1:3A9PQ1
5854
github.com/josharian/native v1.0.1-0.20221213033349-c1e37c09b531/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
5955
github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA=
6056
github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
61-
github.com/juju/errors v1.0.0 h1:yiq7kjCLll1BiaRuNY53MGI0+EQ3rF6GB+wvboZDefM=
62-
github.com/juju/errors v1.0.0/go.mod h1:B5x9thDqx0wIMH3+aLIMP9HjItInYWObRovoCFM5Qe8=
6357
github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw=
6458
github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4=
6559
github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c=
6660
github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
6761
github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
68-
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
69-
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
7062
github.com/libdns/alidns v1.0.3 h1:LFHuGnbseq5+HCeGa1aW8awyX/4M2psB9962fdD2+yQ=
7163
github.com/libdns/alidns v1.0.3/go.mod h1:e18uAG6GanfRhcJj6/tps2rCMzQJaYVcGKT+ELjdjGE=
7264
github.com/libdns/cloudflare v0.1.0 h1:93WkJaGaiXCe353LHEP36kAWCUw0YjFqwhkBkU2/iic=
@@ -217,7 +209,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
217209
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
218210
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
219211
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
220-
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
221212
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
222213
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
223214
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

libcore/io.go

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package libcore
22

33
import (
4-
"context"
4+
"archive/zip"
55
"io"
66
"os"
7+
"path/filepath"
78

8-
"github.com/codeclysm/extract"
99
"github.com/ulikunitz/xz"
10+
"github.com/sagernet/sing/common"
11+
E "github.com/sagernet/sing/common/exceptions"
1012
)
1113

1214
func Unxz(archive string, path string) error {
@@ -30,11 +32,47 @@ func Unxz(archive string, path string) error {
3032
}
3133

3234
func Unzip(archive string, path string) error {
33-
i, err := os.Open(archive)
35+
r, err := zip.OpenReader(archive)
3436
if err != nil {
3537
return err
3638
}
37-
defer i.Close()
38-
err = extract.Zip(context.Background(), i, path, nil)
39-
return err
39+
defer r.Close()
40+
41+
err = os.MkdirAll(path, os.ModePerm)
42+
if err != nil {
43+
return err
44+
}
45+
46+
for _, file := range r.File {
47+
filePath := filepath.Join(path, file.Name)
48+
49+
if file.FileInfo().IsDir() {
50+
err = os.MkdirAll(filePath, os.ModePerm)
51+
if err != nil {
52+
return err
53+
}
54+
continue
55+
}
56+
57+
newFile, err := os.Create(filePath)
58+
if err != nil {
59+
return err
60+
}
61+
62+
zipFile, err := file.Open()
63+
if err != nil {
64+
newFile.Close()
65+
return err
66+
}
67+
68+
var errs error
69+
_, err = io.Copy(newFile, zipFile)
70+
errs = E.Errors(errs, err)
71+
errs = E.Errors(errs, common.Close(zipFile, newFile))
72+
if errs != nil {
73+
return errs
74+
}
75+
}
76+
77+
return nil
4078
}

0 commit comments

Comments
 (0)