@zerops/zcli 1.0.0 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/package.json +12 -7
  2. package/{tools/npm → utils}/binary.js +8 -4
  3. package/{tools/npm → utils}/install.js +0 -0
  4. package/{tools/npm → utils}/run.js +0 -0
  5. package/{tools/npm → utils}/uninstall.js +0 -0
  6. package/.github/workflows/master.yml +0 -36
  7. package/.github/workflows/tag.yml +0 -67
  8. package/.golangci.yaml +0 -58
  9. package/LICENSE +0 -1
  10. package/README.md +0 -2
  11. package/bin/.gitignore +0 -2
  12. package/cmd/deploy.go +0 -65
  13. package/cmd/di.go +0 -65
  14. package/cmd/login.go +0 -48
  15. package/cmd/root.go +0 -70
  16. package/cmd/startVpn.go +0 -59
  17. package/cmd/stopVpn.go +0 -36
  18. package/go.mod +0 -21
  19. package/go.sum +0 -230
  20. package/main.go +0 -13
  21. package/src/command/deploy/handler.go +0 -43
  22. package/src/command/deploy/handler_checkProcess.go +0 -38
  23. package/src/command/deploy/handler_run.go +0 -126
  24. package/src/command/login/handler.go +0 -128
  25. package/src/command/login/handler_parseRestApiError.go +0 -48
  26. package/src/command/startVpn/handler.go +0 -150
  27. package/src/command/startVpn/handler_clean_linux.go +0 -24
  28. package/src/command/startVpn/handler_clean_linux_macos.go +0 -19
  29. package/src/command/startVpn/handler_generateKeys.go +0 -26
  30. package/src/command/startVpn/handler_isVpnAlive.go +0 -23
  31. package/src/command/startVpn/handler_setVpn_linux.go +0 -97
  32. package/src/command/startVpn/handler_setVpn_macos.go +0 -98
  33. package/src/command/startVpn/handler_startVpnClient.go +0 -27
  34. package/src/command/stopVpn/handler.go +0 -55
  35. package/src/command/stopVpn/handler_clean_linux.go +0 -24
  36. package/src/command/stopVpn/handler_clean_linux_macos.go +0 -19
  37. package/src/command/userInfo/handler.go +0 -21
  38. package/src/helpers/cmdRunner/run.go +0 -40
  39. package/src/helpers/grpcErrors.go +0 -40
  40. package/src/helpers/ip.go +0 -11
  41. package/src/service/certReader/handler.go +0 -97
  42. package/src/service/httpClient/handler.go +0 -90
  43. package/src/service/logger/handler.go +0 -32
  44. package/src/service/logger/interface.go +0 -8
  45. package/src/service/params/handler.go +0 -111
  46. package/src/service/storage/handler.go +0 -71
  47. package/src/service/sudoers/handler.go +0 -49
  48. package/src/service/tlsConfig/handler.go +0 -36
  49. package/src/service/zipClient/handler.go +0 -144
  50. package/src/service/zipClient/test/var/www/dir/file2.1.txt +0 -1
  51. package/src/service/zipClient/test/var/www/dir/file2.2.txt +0 -0
  52. package/src/service/zipClient/test/var/www/dir/subDir/file3.1.txt +0 -0
  53. package/src/service/zipClient/test/var/www/dir/subDir/file3.2.txt +0 -0
  54. package/src/service/zipClient/test/var/www/file1.1.txt +0 -0
  55. package/src/service/zipClient/test/zip_test.go +0 -289
  56. package/src/zeropsApiProtocol/build-pb +0 -13
  57. package/src/zeropsApiProtocol/build-pb-generate.go +0 -3
  58. package/src/zeropsApiProtocol/protocol_extra.go +0 -19
  59. package/src/zeropsApiProtocol/zeropsApiProtocol.pb.go +0 -5518
  60. package/src/zeropsApiProtocol/zeropsApiProtocol.proto +0 -819
  61. package/src/zeropsVpnProtocol/build-pb +0 -13
  62. package/src/zeropsVpnProtocol/build-pb-generate.go +0 -3
  63. package/src/zeropsVpnProtocol/protocol_extra.go +0 -45
  64. package/src/zeropsVpnProtocol/zeropsVpnProtocol.pb.go +0 -578
  65. package/src/zeropsVpnProtocol/zeropsVpnProtocol.proto +0 -58
  66. package/tools/gomodrun.go +0 -60
  67. package/tools/install.sh +0 -40
  68. package/tools/npm/match-version.js +0 -12
package/package.json CHANGED
@@ -1,22 +1,27 @@
1
1
  {
2
2
  "name": "@zerops/zcli",
3
- "version": "v1.0.0",
4
- "main": "tools/npm/binary.js",
3
+ "version": "v8.0.1",
4
+ "main": "./utils/binary.js",
5
5
  "license": "MIT",
6
6
  "private": false,
7
7
  "dependencies": {
8
- "binary-install": "^0.0.1",
8
+ "@cloudflare/binary-install": "0.2.0",
9
+ "@octokit/core": "3.5.1",
9
10
  "actions-toolkit": "^2.2.0",
10
11
  "yargs": "^15.3.1"
11
12
  },
12
13
  "devDependencies": {
13
- "standard": "^14.3.3"
14
+ "standard": "^16.0.4"
14
15
  },
15
16
  "bin": {
16
- "zcli": "./tools/npm/run.js"
17
+ "zcli": "utils/run.js"
17
18
  },
19
+ "files": [
20
+ "/utils",
21
+ "package.json"
22
+ ],
18
23
  "scripts": {
19
- "postinstall": "./tools/npm/install.js",
20
- "preuninstall": "./tools/npm/uninstall.js"
24
+ "postinstall": "node ./utils/install.js",
25
+ "preuninstall": "node ./utils/uninstall.js"
21
26
  }
22
27
  }
@@ -1,23 +1,27 @@
1
- const { Binary } = require("binary-install");
1
+ const { Binary } = require("@cloudflare/binary-install");
2
2
  const os = require("os");
3
3
 
4
4
  function getPlatform() {
5
5
  const type = os.type();
6
6
  const arch = os.arch();
7
-
8
7
  if (type === "Linux" && arch === "x64") return "linux-amd64";
9
8
  if (type === "Linux" && arch === "x86") return "linux-i386";
10
9
  if (type === "Darwin" && arch === "x64") return "darwin-amd64";
11
-
10
+ if (type === "Darwin" && arch === "arm64") return "darwin-arm64";
11
+ if (type === "Windows_NT" && arch === "x64") return "win-x64.exe";
12
12
  throw new Error(`Unsupported platform: ${type} ${arch}`);
13
13
  }
14
14
 
15
15
  function getBinary() {
16
16
  const platform_arch = getPlatform();
17
- const url = `https://github.com/zeropsio/zcli/releases/download/latest/zcli-${platform_arch}.tar.gz`;
17
+ const version = require("../package.json").version;
18
+ const compatibleVersion = version.startsWith('v') ? version : `v${version}`;
19
+ const url = `https://github.com/zeropsio/zcli/releases/download/${compatibleVersion}/zcli-${platform_arch}-npm.tar.gz`;
18
20
  const name = `zcli-${platform_arch}`;
21
+
19
22
  return new Binary(url, { name });
20
23
  }
24
+
21
25
  const run = () => {
22
26
  const binary = getBinary();
23
27
  binary.run();
File without changes
File without changes
File without changes
@@ -1,36 +0,0 @@
1
- name: Master
2
-
3
- on:
4
- push:
5
- branches: [ master ]
6
- pull_request:
7
- branches: [ master ]
8
-
9
- jobs:
10
-
11
- build:
12
- name: Build
13
- runs-on: ubuntu-latest
14
- steps:
15
-
16
- - name: Set up Go 1.x
17
- uses: actions/setup-go@v2
18
- with:
19
- go-version: ^1.14
20
- id: go
21
-
22
- - name: Check out code into the Go module directory
23
- uses: actions/checkout@v2
24
-
25
- - name: Get dependencies
26
- run: |
27
- export GOPATH=$HOME/go
28
- ./tools/install.sh
29
-
30
- - name: Build
31
- run: go build -v .
32
-
33
- - name: Test
34
- run: go test -v .
35
-
36
-
@@ -1,67 +0,0 @@
1
- name: Upload build asset
2
-
3
- on:
4
- release:
5
- types: [published]
6
-
7
- jobs:
8
- build:
9
- name: Upload build asset for ${{ matrix.os }}
10
- runs-on: ${{ matrix.os }}
11
- strategy:
12
- matrix:
13
- include:
14
- - os: ubuntu-latest
15
- buildCmd: env GOOS=linux GOARCH=amd64 go build -o zcli-linux ./main.go
16
- file: zcli-linux
17
- args:
18
- strip: true
19
- - os: macos-latest
20
- buildCmd: env GOOS=darwin GOARCH=amd64 go build -o zcli-mac ./main.go
21
- file: zcli-mac
22
- args:
23
- strip: false
24
-
25
- steps:
26
-
27
- - name: Checkout code
28
- uses: actions/checkout@v2
29
-
30
- - name: Get dependencies
31
- run: |
32
- export GOPATH=$HOME/go
33
- ./tools/install.sh
34
-
35
- - name: Build
36
- run: ${{ matrix.buildCmd }}
37
-
38
- - name: Compress binary
39
- uses: svenstaro/upx-action@v1-release
40
- with:
41
- file: ./${{ matrix.file }}
42
- args: ${{ matrix.args }}
43
- strip: ${{ matrix.strip }}
44
-
45
- - name: Upload asset
46
- uses: actions/upload-release-asset@v1
47
- env:
48
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49
- with:
50
- upload_url: ${{ github.event.release.upload_url }}
51
- asset_path: ./${{ matrix.file }}
52
- asset_name: ${{ matrix.file }}
53
- asset_content_type: application/octet-stream
54
-
55
- publish-npm:
56
- needs: build
57
- runs-on: ubuntu-latest
58
- steps:
59
- - uses: actions/checkout@v2
60
- - uses: actions/setup-node@v1
61
- with:
62
- node-version: 12
63
- registry-url: https://registry.npmjs.org/
64
- - run: npm ci
65
- - run: npm publish --access=public
66
- env:
67
- NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
package/.golangci.yaml DELETED
@@ -1,58 +0,0 @@
1
- concurrency: 16
2
- run:
3
- deadline: 10m
4
- issues-exit-code: 1
5
- tests: true
6
-
7
- output:
8
- format: colored-line-number
9
-
10
- linters-settings:
11
- gocritic:
12
- disabled-checks:
13
- - captLocal # CIDR, IpV6, ....
14
- - unlambda # falsePositive for function passed to defer
15
- godox:
16
- keywords:
17
- - FIXME
18
-
19
- issues:
20
- max-same-issues: 0
21
-
22
- exclude-rules:
23
-
24
- # Exclude some staticcheck messages
25
- - linters:
26
- - staticcheck
27
- text: "SA4004:" #https://staticcheck.io/docs/checks#SA4004 The loop exits unconditionally after one iteration
28
-
29
- linters:
30
- enable:
31
- - scopelint
32
- - govet
33
- - ineffassign
34
- - varcheck
35
- - unused
36
- - deadcode
37
- - bodyclose
38
- - structcheck
39
- - staticcheck
40
- - godox
41
-
42
- # high priority
43
- # - rowserrcheck
44
- # - errcheck
45
-
46
- # normal priority
47
- # - prealloc - jednotky
48
-
49
-
50
- # low priority
51
- # - gosimple
52
- # - gosec
53
- # - goconst
54
- # - gocritic
55
- # - nakedret
56
-
57
- disable-all: true
58
- fast: false
package/LICENSE DELETED
@@ -1 +0,0 @@
1
- TODO
package/README.md DELETED
@@ -1,2 +0,0 @@
1
- Zerops CLI
2
- ==========
package/bin/.gitignore DELETED
@@ -1,2 +0,0 @@
1
- *
2
- !.gitignore
package/cmd/deploy.go DELETED
@@ -1,65 +0,0 @@
1
- package cmd
2
-
3
- import (
4
- "context"
5
- "time"
6
-
7
- "github.com/zerops-io/zcli/src/command/deploy"
8
- "github.com/zerops-io/zcli/src/service/httpClient"
9
- "github.com/zerops-io/zcli/src/service/zipClient"
10
-
11
- "github.com/spf13/cobra"
12
- )
13
-
14
- func deployCmd() *cobra.Command {
15
- cmd := &cobra.Command{
16
- Use: "deploy projectName serviceName pathToFileOrDir [pathToFileOrDir]",
17
- SilenceUsage: true,
18
- Args: cobra.MinimumNArgs(3),
19
- RunE: func(cmd *cobra.Command, args []string) error {
20
- ctx, cancel := context.WithCancel(context.Background())
21
- regSignals(cancel, logger)
22
-
23
- certReader, err := createCertReader()
24
- if err != nil {
25
- return err
26
- }
27
-
28
- tlsConfig, err := createTlsConfig(certReader)
29
- if err != nil {
30
- return err
31
- }
32
-
33
- apiGrpcClient, closeFunc, err := createApiGrpcClient(ctx, tlsConfig)
34
- if err != nil {
35
- return err
36
- }
37
- defer closeFunc()
38
-
39
- httpClient := httpClient.New(httpClient.Config{
40
- HttpTimeout: time.Minute * 15,
41
- })
42
-
43
- zipClient := zipClient.New(zipClient.Config{}, logger)
44
-
45
- return deploy.New(
46
- deploy.Config{},
47
- httpClient,
48
- zipClient,
49
- logger,
50
- apiGrpcClient,
51
- ).Run(ctx, deploy.RunConfig{
52
- ZipFilePath: params.GetString("zipFilePath"),
53
- WorkingDir: params.GetString("workingDir"),
54
- ProjectName: args[0],
55
- ServiceStackName: args[1],
56
- PathsForPacking: args[2:],
57
- })
58
- },
59
- }
60
-
61
- params.RegisterString(cmd, "workingDir", "./", "working dir, all files path are relative to this directory")
62
- params.RegisterString(cmd, "zipFilePath", "", "if it's set, save final zip file")
63
-
64
- return cmd
65
- }
package/cmd/di.go DELETED
@@ -1,65 +0,0 @@
1
- package cmd
2
-
3
- import (
4
- "context"
5
- "crypto/tls"
6
- "os"
7
- "path"
8
-
9
- "github.com/zerops-io/zcli/src/service/storage"
10
-
11
- "google.golang.org/grpc"
12
- "google.golang.org/grpc/credentials"
13
-
14
- "github.com/zerops-io/zcli/src/service/sudoers"
15
-
16
- "github.com/zerops-io/zcli/src/service/certReader"
17
- "github.com/zerops-io/zcli/src/service/tlsConfig"
18
- "github.com/zerops-io/zcli/src/zeropsApiProtocol"
19
- )
20
-
21
- func createCertReader() (*certReader.Handler, error) {
22
- return certReader.New(
23
- certReader.Config{
24
- Token: params.GetString("token"),
25
- },
26
- )
27
- }
28
-
29
- func createSudoers() *sudoers.Handler {
30
- return sudoers.New(
31
- sudoers.Config{},
32
- )
33
- }
34
-
35
- func createStorage() (*storage.Handler, error) {
36
- currentDir, err := os.Getwd()
37
- if err != nil {
38
- return nil, err
39
- }
40
-
41
- return storage.New(
42
- storage.Config{
43
- FilePath: path.Join(currentDir, "zcli.data"),
44
- },
45
- )
46
- }
47
-
48
- func createTlsConfig(certReader *certReader.Handler) (*tls.Config, error) {
49
- return tlsConfig.CreateTlsConfig(
50
- certReader,
51
- )
52
- }
53
-
54
- func createApiGrpcClient(ctx context.Context, tlsConfig *tls.Config) (_ zeropsApiProtocol.ZeropsApiProtocolClient, closeFunc func(), _ error) {
55
-
56
- connection, err := grpc.DialContext(ctx, params.GetString("grpcApiAddress"), grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig)))
57
- if err != nil {
58
- return nil, nil, err
59
- }
60
-
61
- closeFunc = func() { _ = connection.Close() }
62
-
63
- return zeropsApiProtocol.NewZeropsApiProtocolClient(connection), closeFunc, nil
64
-
65
- }
package/cmd/login.go DELETED
@@ -1,48 +0,0 @@
1
- package cmd
2
-
3
- import (
4
- "context"
5
- "time"
6
-
7
- "github.com/zerops-io/zcli/src/command/login"
8
- "github.com/zerops-io/zcli/src/service/httpClient"
9
-
10
- "github.com/spf13/cobra"
11
- )
12
-
13
- func loginCmd() *cobra.Command {
14
- cmd := &cobra.Command{
15
- Use: "login",
16
- SilenceUsage: true,
17
- RunE: func(cmd *cobra.Command, args []string) error {
18
- ctx, cancel := context.WithCancel(context.Background())
19
- regSignals(cancel, logger)
20
-
21
- storage, err := createStorage()
22
- if err != nil {
23
- return err
24
- }
25
-
26
- httpClient := httpClient.New(httpClient.Config{
27
- HttpTimeout: time.Second * 10,
28
- })
29
-
30
- return login.New(
31
- login.Config{
32
- ApiAddress: params.GetString("restApiAddress"),
33
- },
34
- logger,
35
- storage,
36
- httpClient,
37
- ).Run(ctx, login.RunConfig{
38
- ZeropsLogin: params.GetString("zeropsLogin"),
39
- ZeropsPassword: params.GetString("zeropsPassword"),
40
- })
41
- },
42
- }
43
-
44
- params.RegisterString(cmd, "zeropsLogin", "", "zerops account login")
45
- params.RegisterString(cmd, "zeropsPassword", "", "zerops account password")
46
-
47
- return cmd
48
- }
package/cmd/root.go DELETED
@@ -1,70 +0,0 @@
1
- package cmd
2
-
3
- import (
4
- "os"
5
- "os/signal"
6
- "syscall"
7
-
8
- "github.com/spf13/cobra"
9
- loggerPackage "github.com/zerops-io/zcli/src/service/logger"
10
- paramsPackage "github.com/zerops-io/zcli/src/service/params"
11
- storagePackage "github.com/zerops-io/zcli/src/service/storage"
12
- )
13
-
14
- var (
15
- logger = loggerPackage.New(loggerPackage.Config{})
16
- params *paramsPackage.Handler
17
- )
18
-
19
- func ExecuteRootCmd(builtinToken string) {
20
-
21
- storage, err := createStorage()
22
- if err != nil {
23
- logger.Error(err)
24
- return
25
- }
26
- params = paramsPackage.New(logger, storage)
27
-
28
- rootCmd := &cobra.Command{
29
- Use: "zcli",
30
- }
31
-
32
- params.RegisterString(rootCmd, "restApiAddress", "https://app.zerops.dev", "address of rest api", paramsPackage.Persistent())
33
- params.RegisterString(rootCmd, "grpcApiAddress", "app.zerops.dev:20902", "address of grpc api", paramsPackage.Persistent())
34
- params.RegisterString(rootCmd, "vpnApiAddress", "vpn.app.zerops.dev", "address of vpn api", paramsPackage.Persistent())
35
- params.RegisterString(
36
- rootCmd, "token", builtinToken, "authentication token",
37
- paramsPackage.Persistent(),
38
- paramsPackage.FromTempData(func(data *storagePackage.Data) interface{} {
39
- return data.Token
40
- }),
41
- )
42
-
43
- rootCmd.AddCommand(deployCmd())
44
- rootCmd.AddCommand(startVpnCmd())
45
- rootCmd.AddCommand(stopVpnCmd())
46
- rootCmd.AddCommand(loginCmd())
47
-
48
- err = params.InitViper()
49
- if err != nil {
50
- logger.Error(err)
51
- return
52
- }
53
-
54
- err = rootCmd.Execute()
55
- if err != nil {
56
- os.Exit(1)
57
- }
58
- }
59
-
60
- func regSignals(contextCancel func(), logger loggerPackage.Logger) {
61
- sigs := make(chan os.Signal, 1)
62
-
63
- signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
64
-
65
- go func() {
66
- sig := <-sigs
67
- logger.Info("\n", "signal:", sig)
68
- contextCancel()
69
- }()
70
- }
package/cmd/startVpn.go DELETED
@@ -1,59 +0,0 @@
1
- package cmd
2
-
3
- import (
4
- "context"
5
-
6
- "github.com/zerops-io/zcli/src/command/startVpn"
7
-
8
- "github.com/spf13/cobra"
9
- )
10
-
11
- func startVpnCmd() *cobra.Command {
12
- cmd := &cobra.Command{
13
- Use: "startVpn projectName",
14
- SilenceUsage: true,
15
- Args: cobra.ExactArgs(1),
16
- RunE: func(cmd *cobra.Command, args []string) error {
17
- ctx, cancel := context.WithCancel(context.Background())
18
- regSignals(cancel, logger)
19
-
20
- sudoers := createSudoers()
21
-
22
- storage, err := createStorage()
23
- if err != nil {
24
- return err
25
- }
26
-
27
- certReader, err := createCertReader()
28
- if err != nil {
29
- return err
30
- }
31
-
32
- tlsConfig, err := createTlsConfig(certReader)
33
- if err != nil {
34
- return err
35
- }
36
-
37
- apiGrpcClient, apiCloseFunc, err := createApiGrpcClient(ctx, tlsConfig)
38
- if err != nil {
39
- return err
40
- }
41
- defer apiCloseFunc()
42
-
43
- return startVpn.New(
44
- startVpn.Config{
45
- VpnAddress: params.GetString("vpnApiAddress"),
46
- UserId: certReader.UserId,
47
- },
48
- logger,
49
- apiGrpcClient,
50
- sudoers,
51
- storage,
52
- ).Run(ctx, startVpn.RunConfig{
53
- ProjectName: args[0],
54
- })
55
- },
56
- }
57
-
58
- return cmd
59
- }
package/cmd/stopVpn.go DELETED
@@ -1,36 +0,0 @@
1
- package cmd
2
-
3
- import (
4
- "context"
5
-
6
- "github.com/zerops-io/zcli/src/command/stopVpn"
7
-
8
- "github.com/spf13/cobra"
9
- )
10
-
11
- func stopVpnCmd() *cobra.Command {
12
- cmd := &cobra.Command{
13
- Use: "stopVpn",
14
- SilenceUsage: true,
15
- RunE: func(cmd *cobra.Command, args []string) error {
16
- ctx, cancel := context.WithCancel(context.Background())
17
- regSignals(cancel, logger)
18
-
19
- sudoers := createSudoers()
20
-
21
- storage, err := createStorage()
22
- if err != nil {
23
- return err
24
- }
25
-
26
- return stopVpn.New(
27
- stopVpn.Config{},
28
- logger,
29
- sudoers,
30
- storage,
31
- ).Run(ctx, stopVpn.RunConfig{})
32
- },
33
- }
34
-
35
- return cmd
36
- }
package/go.mod DELETED
@@ -1,21 +0,0 @@
1
- module github.com/zerops-io/zcli
2
-
3
- go 1.14
4
-
5
- require (
6
- github.com/fsnotify/fsnotify v1.4.9 // indirect
7
- github.com/golang/protobuf v1.4.2
8
- github.com/google/uuid v1.1.1
9
- github.com/mitchellh/mapstructure v1.2.2 // indirect
10
- github.com/onsi/gomega v1.10.1
11
- github.com/pelletier/go-toml v1.7.0 // indirect
12
- github.com/spf13/afero v1.2.2 // indirect
13
- github.com/spf13/cast v1.3.1 // indirect
14
- github.com/spf13/cobra v1.0.0
15
- github.com/spf13/jwalterweatherman v1.1.0 // indirect
16
- github.com/spf13/viper v1.6.3
17
- golang.org/x/sys v0.0.0-20200413165638-669c56c373c4 // indirect
18
- golang.org/x/text v0.3.2 // indirect
19
- google.golang.org/grpc v1.21.0
20
- gopkg.in/ini.v1 v1.55.0 // indirect
21
- )