]> git.puffer.fish Git - matthieu/nova.git/commitdiff
sync project
authormatthieu <matthieu@developershouse.xyz>
Fri, 3 Sep 2021 18:17:51 +0000 (22:17 +0400)
committermatthieu <matthieu@developershouse.xyz>
Fri, 3 Sep 2021 18:17:51 +0000 (22:17 +0400)
13 files changed:
.github/workflows/bazel-build.yml [deleted file]
.gitignore
LICENSE
TODO.md
novactl/cmd/init.go
novactl/lib/vesion.go
novactl/main.go
novalet/BUILD.bazel [deleted file]
novalet/lib/BUILD.bazel [deleted file]
novalet/lib/internal_transporter.go [deleted file]
novalet/lib/nats_standalone.go [deleted file]
novalet/main.go [deleted file]
ratelimiter/proto/nova.ratelimit.v1.proto

diff --git a/.github/workflows/bazel-build.yml b/.github/workflows/bazel-build.yml
deleted file mode 100644 (file)
index 3de7dfa..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-# This is a basic workflow to help you get started with Actions\r
-\r
-name: Build\r
-\r
-# Controls when the workflow will run\r
-on:\r
-  push:\r
-  # Allows you to run this workflow manually from the Actions tab\r
-  workflow_dispatch:\r
-# A workflow run is made up of one or more jobs that can run sequentially or in parallel\r
-jobs:\r
-  # This workflow contains a single job called "build"\r
-  build:\r
-    strategy:\r
-      fail-fast: false\r
-      matrix:\r
-        os: [ubuntu-latest, macos-latest, windows-latest]\r
-    # The type of runner that the job will run on\r
-    runs-on: ${{ matrix.os }}\r
-    # Steps represent a sequence of tasks that will be executed as part of the job\r
-    steps:\r
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it\r
-      - uses: actions/checkout@v2\r
-      - name: Setup Bazelisk\r
-        # You may pin to the exact commit or the version.\r
-        # uses: bazelbuild/setup-bazelisk@2351cf5a7584ce72638fbce7c22e5128a5fcd5b2\r
-        uses: bazelbuild/setup-bazelisk@v1.0.1\r
-        with:\r
-          # The Bazelisk version to download (if necessary) and use. Supports semver spec and ranges.\r
-          bazelisk-version: 1.x # optional, default is 1.x\r
-           # Used to query bazelisk releases.  Since there's a default, this is typically not supplied by the user.\r
-          token: ${{ github.token }}\r
-      # Runs a single command using the runners shell\r
-      - name: Mount bazel cache  # Optional\r
-        uses: actions/cache@v2\r
-        with:\r
-          path: "~/.cache/bazel"\r
-          key: bazel-${{ matrix.os }}\r
-      # Runs a set of commands using the runners shell\r
-      - name: Execute build script\r
-        shell: bash\r
-        run: |\r
-           bazel build //:package\r
-\r
-      - name: Bazel artifacts\r
-        uses: actions/upload-artifact@v2\r
-        with:\r
-          name: all-${{ matrix.os }}\r
-          path: bazel-bin*/**/*\r
index 5aff11caa406b95961d5265970e36749556528fd..5f1c1ec671d0ea7219f733f0cc74cb1c3f5a584b 100644 (file)
@@ -1,4 +1,4 @@
-bazel-*\r
-.bazelrc\r
-.vscode\r
-ratelimiter/target\r
+bazel-*
+.bazelrc
+.vscode
+ratelimiter/target
diff --git a/LICENSE b/LICENSE
index 9284bc706b69d20fbc20885ff05ea5aa426d154e..a4e5483761f8feaabd51a2049776858d0a0ad2d8 100644 (file)
--- a/LICENSE
+++ b/LICENSE
-                                 Apache License\r
-                           Version 2.0, January 2004\r
-                        http://www.apache.org/licenses/\r
-\r
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\r
-\r
-   1. Definitions.\r
-\r
-      "License" shall mean the terms and conditions for use, reproduction,\r
-      and distribution as defined by Sections 1 through 9 of this document.\r
-\r
-      "Licensor" shall mean the copyright owner or entity authorized by\r
-      the copyright owner that is granting the License.\r
-\r
-      "Legal Entity" shall mean the union of the acting entity and all\r
-      other entities that control, are controlled by, or are under common\r
-      control with that entity. For the purposes of this definition,\r
-      "control" means (i) the power, direct or indirect, to cause the\r
-      direction or management of such entity, whether by contract or\r
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the\r
-      outstanding shares, or (iii) beneficial ownership of such entity.\r
-\r
-      "You" (or "Your") shall mean an individual or Legal Entity\r
-      exercising permissions granted by this License.\r
-\r
-      "Source" form shall mean the preferred form for making modifications,\r
-      including but not limited to software source code, documentation\r
-      source, and configuration files.\r
-\r
-      "Object" form shall mean any form resulting from mechanical\r
-      transformation or translation of a Source form, including but\r
-      not limited to compiled object code, generated documentation,\r
-      and conversions to other media types.\r
-\r
-      "Work" shall mean the work of authorship, whether in Source or\r
-      Object form, made available under the License, as indicated by a\r
-      copyright notice that is included in or attached to the work\r
-      (an example is provided in the Appendix below).\r
-\r
-      "Derivative Works" shall mean any work, whether in Source or Object\r
-      form, that is based on (or derived from) the Work and for which the\r
-      editorial revisions, annotations, elaborations, or other modifications\r
-      represent, as a whole, an original work of authorship. For the purposes\r
-      of this License, Derivative Works shall not include works that remain\r
-      separable from, or merely link (or bind by name) to the interfaces of,\r
-      the Work and Derivative Works thereof.\r
-\r
-      "Contribution" shall mean any work of authorship, including\r
-      the original version of the Work and any modifications or additions\r
-      to that Work or Derivative Works thereof, that is intentionally\r
-      submitted to Licensor for inclusion in the Work by the copyright owner\r
-      or by an individual or Legal Entity authorized to submit on behalf of\r
-      the copyright owner. For the purposes of this definition, "submitted"\r
-      means any form of electronic, verbal, or written communication sent\r
-      to the Licensor or its representatives, including but not limited to\r
-      communication on electronic mailing lists, source code control systems,\r
-      and issue tracking systems that are managed by, or on behalf of, the\r
-      Licensor for the purpose of discussing and improving the Work, but\r
-      excluding communication that is conspicuously marked or otherwise\r
-      designated in writing by the copyright owner as "Not a Contribution."\r
-\r
-      "Contributor" shall mean Licensor and any individual or Legal Entity\r
-      on behalf of whom a Contribution has been received by Licensor and\r
-      subsequently incorporated within the Work.\r
-\r
-   2. Grant of Copyright License. Subject to the terms and conditions of\r
-      this License, each Contributor hereby grants to You a perpetual,\r
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r
-      copyright license to reproduce, prepare Derivative Works of,\r
-      publicly display, publicly perform, sublicense, and distribute the\r
-      Work and such Derivative Works in Source or Object form.\r
-\r
-   3. Grant of Patent License. Subject to the terms and conditions of\r
-      this License, each Contributor hereby grants to You a perpetual,\r
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r
-      (except as stated in this section) patent license to make, have made,\r
-      use, offer to sell, sell, import, and otherwise transfer the Work,\r
-      where such license applies only to those patent claims licensable\r
-      by such Contributor that are necessarily infringed by their\r
-      Contribution(s) alone or by combination of their Contribution(s)\r
-      with the Work to which such Contribution(s) was submitted. If You\r
-      institute patent litigation against any entity (including a\r
-      cross-claim or counterclaim in a lawsuit) alleging that the Work\r
-      or a Contribution incorporated within the Work constitutes direct\r
-      or contributory patent infringement, then any patent licenses\r
-      granted to You under this License for that Work shall terminate\r
-      as of the date such litigation is filed.\r
-\r
-   4. Redistribution. You may reproduce and distribute copies of the\r
-      Work or Derivative Works thereof in any medium, with or without\r
-      modifications, and in Source or Object form, provided that You\r
-      meet the following conditions:\r
-\r
-      (a) You must give any other recipients of the Work or\r
-          Derivative Works a copy of this License; and\r
-\r
-      (b) You must cause any modified files to carry prominent notices\r
-          stating that You changed the files; and\r
-\r
-      (c) You must retain, in the Source form of any Derivative Works\r
-          that You distribute, all copyright, patent, trademark, and\r
-          attribution notices from the Source form of the Work,\r
-          excluding those notices that do not pertain to any part of\r
-          the Derivative Works; and\r
-\r
-      (d) If the Work includes a "NOTICE" text file as part of its\r
-          distribution, then any Derivative Works that You distribute must\r
-          include a readable copy of the attribution notices contained\r
-          within such NOTICE file, excluding those notices that do not\r
-          pertain to any part of the Derivative Works, in at least one\r
-          of the following places: within a NOTICE text file distributed\r
-          as part of the Derivative Works; within the Source form or\r
-          documentation, if provided along with the Derivative Works; or,\r
-          within a display generated by the Derivative Works, if and\r
-          wherever such third-party notices normally appear. The contents\r
-          of the NOTICE file are for informational purposes only and\r
-          do not modify the License. You may add Your own attribution\r
-          notices within Derivative Works that You distribute, alongside\r
-          or as an addendum to the NOTICE text from the Work, provided\r
-          that such additional attribution notices cannot be construed\r
-          as modifying the License.\r
-\r
-      You may add Your own copyright statement to Your modifications and\r
-      may provide additional or different license terms and conditions\r
-      for use, reproduction, or distribution of Your modifications, or\r
-      for any such Derivative Works as a whole, provided Your use,\r
-      reproduction, and distribution of the Work otherwise complies with\r
-      the conditions stated in this License.\r
-\r
-   5. Submission of Contributions. Unless You explicitly state otherwise,\r
-      any Contribution intentionally submitted for inclusion in the Work\r
-      by You to the Licensor shall be under the terms and conditions of\r
-      this License, without any additional terms or conditions.\r
-      Notwithstanding the above, nothing herein shall supersede or modify\r
-      the terms of any separate license agreement you may have executed\r
-      with Licensor regarding such Contributions.\r
-\r
-   6. Trademarks. This License does not grant permission to use the trade\r
-      names, trademarks, service marks, or product names of the Licensor,\r
-      except as required for reasonable and customary use in describing the\r
-      origin of the Work and reproducing the content of the NOTICE file.\r
-\r
-   7. Disclaimer of Warranty. Unless required by applicable law or\r
-      agreed to in writing, Licensor provides the Work (and each\r
-      Contributor provides its Contributions) on an "AS IS" BASIS,\r
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\r
-      implied, including, without limitation, any warranties or conditions\r
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\r
-      PARTICULAR PURPOSE. You are solely responsible for determining the\r
-      appropriateness of using or redistributing the Work and assume any\r
-      risks associated with Your exercise of permissions under this License.\r
-\r
-   8. Limitation of Liability. In no event and under no legal theory,\r
-      whether in tort (including negligence), contract, or otherwise,\r
-      unless required by applicable law (such as deliberate and grossly\r
-      negligent acts) or agreed to in writing, shall any Contributor be\r
-      liable to You for damages, including any direct, indirect, special,\r
-      incidental, or consequential damages of any character arising as a\r
-      result of this License or out of the use or inability to use the\r
-      Work (including but not limited to damages for loss of goodwill,\r
-      work stoppage, computer failure or malfunction, or any and all\r
-      other commercial damages or losses), even if such Contributor\r
-      has been advised of the possibility of such damages.\r
-\r
-   9. Accepting Warranty or Additional Liability. While redistributing\r
-      the Work or Derivative Works thereof, You may choose to offer,\r
-      and charge a fee for, acceptance of support, warranty, indemnity,\r
-      or other liability obligations and/or rights consistent with this\r
-      License. However, in accepting such obligations, You may act only\r
-      on Your own behalf and on Your sole responsibility, not on behalf\r
-      of any other Contributor, and only if You agree to indemnify,\r
-      defend, and hold each Contributor harmless for any liability\r
-      incurred by, or claims asserted against, such Contributor by reason\r
-      of your accepting any such warranty or additional liability.\r
-\r
-   END OF TERMS AND CONDITIONS\r
-\r
-   APPENDIX: How to apply the Apache License to your work.\r
-\r
-      To apply the Apache License to your work, attach the following\r
-      boilerplate notice, with the fields enclosed by brackets "[]"\r
-      replaced with your own identifying information. (Don't include\r
-      the brackets!)  The text should be enclosed in the appropriate\r
-      comment syntax for the file format. We also recommend that a\r
-      file or class name and description of purpose be included on the\r
-      same "printed page" as the copyright notice for easier\r
-      identification within third-party archives.\r
-\r
-   Copyright 2021 Developer's House\r
-\r
-   Licensed under the Apache License, Version 2.0 (the "License");\r
-   you may not use this file except in compliance with the License.\r
-   You may obtain a copy of the License at\r
-\r
-       http://www.apache.org/licenses/LICENSE-2.0\r
-\r
-   Unless required by applicable law or agreed to in writing, software\r
-   distributed under the License is distributed on an "AS IS" BASIS,\r
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-   See the License for the specific language governing permissions and\r
-   limitations under the License.\r
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2021 Developer's House
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/TODO.md b/TODO.md
index 6d56cdf1e8c522fb5e8708a91ebe731ed3bb624d..502d17ce0fec1aec59b710a8f3bda3dcf17c0589 100644 (file)
--- a/TODO.md
+++ b/TODO.md
@@ -1,14 +1,14 @@
-# Todo\r
-\r
-## GitHub\r
-\r
-- PR and Issue template\r
-- Contributing GUIDE\r
-\r
-### Readme\r
-\r
-- Features\r
-- Explaination of each components\r
-- How to use (dev, prod)\r
-- Contributing\r
+# Todo
+
+## GitHub
+
+- PR and Issue template
+- Contributing GUIDE
+
+### Readme
+
+- Features
+- Explaination of each components
+- How to use (dev, prod)
+- Contributing
 - Sponsor?
\ No newline at end of file
index ff796c6c9842eec4b7872f2963fec7252ecab842..07bd6e7d63b6ea22dd4287d2216d239babebd628 100644 (file)
@@ -1,89 +1,89 @@
-package cmd\r
-\r
-import (\r
-       "fmt"\r
-       "io/fs"\r
-       "io/ioutil"\r
-       "os"\r
-       "path/filepath"\r
-       "strings"\r
-\r
-       "github.com/TwinProduction/go-color"\r
-       "github.com/go-git/go-git/v5"\r
-       "github.com/spf13/cobra"\r
-)\r
-\r
-var (\r
-       InitializeCommand = &cobra.Command{\r
-               Use:   "init",\r
-               Short: "Initialize a newnova based project",\r
-               Run:   initNovaRepo,\r
-       }\r
-)\r
-\r
-func initNovaRepo(cmd *cobra.Command, args []string) {\r
-       url := "https://github.com/libgit2/git2go.git"\r
-       path := ""\r
-       name := "test"\r
-\r
-       if name == "" {\r
-               fmt.Print(\r
-                       color.Ize(color.Red, "A name must be specified"),\r
-               )\r
-               return\r
-       }\r
-\r
-       if path == "" {\r
-               path = fmt.Sprintf("./%s", name)\r
-       }\r
-       cw, err := os.Getwd()\r
-       if err != nil {\r
-               return\r
-       }\r
-       path = filepath.Join(cw, path)\r
-\r
-       fmt.Println(\r
-               color.Ize(color.Green, fmt.Sprintf("Initializing a new nova project at %s", path)),\r
-       )\r
-       fmt.Println(\r
-               color.Ize(color.Gray, fmt.Sprintf("Using the %s template", url)),\r
-       )\r
-\r
-       // clone the repo\r
-       _, err = git.PlainClone(path, false, &git.CloneOptions{\r
-               URL:      url,\r
-               Progress: os.Stdout,\r
-       })\r
-\r
-       if err != nil {\r
-               fmt.Println(\r
-                       color.Ize(color.Red, fmt.Sprintf("Failed to initialize the repository: %s", err.Error())),\r
-               )\r
-               return\r
-       }\r
-\r
-       fmt.Println(\r
-               color.Ize(color.Green, "Cloned the repository..."),\r
-       )\r
-\r
-       filepath.WalkDir(path, func(path string, d fs.DirEntry, err error) error {\r
-               if d.IsDir() || err != nil {\r
-                       return nil\r
-               }\r
-\r
-               read, err := ioutil.ReadFile(path)\r
-               if err != nil {\r
-\r
-               }\r
-               content := strings.ReplaceAll(string(read), "%PROJECT%", name)\r
-\r
-               err = ioutil.WriteFile(path, []byte(content), 0)\r
-\r
-               if err != nil {\r
-                       return err\r
-               }\r
-               return nil\r
-       })\r
-\r
-       err = os.RemoveAll(filepath.Join(path, ".git"))\r
-}\r
+package cmd
+
+import (
+       "fmt"
+       "io/fs"
+       "io/ioutil"
+       "os"
+       "path/filepath"
+       "strings"
+
+       "github.com/TwinProduction/go-color"
+       "github.com/go-git/go-git/v5"
+       "github.com/spf13/cobra"
+)
+
+var (
+       InitializeCommand = &cobra.Command{
+               Use:   "init",
+               Short: "Initialize a newnova based project",
+               Run:   initNovaRepo,
+       }
+)
+
+func initNovaRepo(cmd *cobra.Command, args []string) {
+       url := "https://github.com/libgit2/git2go.git"
+       path := ""
+       name := "test"
+
+       if name == "" {
+               fmt.Print(
+                       color.Ize(color.Red, "A name must be specified"),
+               )
+               return
+       }
+
+       if path == "" {
+               path = fmt.Sprintf("./%s", name)
+       }
+       cw, err := os.Getwd()
+       if err != nil {
+               return
+       }
+       path = filepath.Join(cw, path)
+
+       fmt.Println(
+               color.Ize(color.Green, fmt.Sprintf("Initializing a new nova project at %s", path)),
+       )
+       fmt.Println(
+               color.Ize(color.Gray, fmt.Sprintf("Using the %s template", url)),
+       )
+
+       // clone the repo
+       _, err = git.PlainClone(path, false, &git.CloneOptions{
+               URL:      url,
+               Progress: os.Stdout,
+       })
+
+       if err != nil {
+               fmt.Println(
+                       color.Ize(color.Red, fmt.Sprintf("Failed to initialize the repository: %s", err.Error())),
+               )
+               return
+       }
+
+       fmt.Println(
+               color.Ize(color.Green, "Cloned the repository..."),
+       )
+
+       filepath.WalkDir(path, func(path string, d fs.DirEntry, err error) error {
+               if d.IsDir() || err != nil {
+                       return nil
+               }
+
+               read, err := ioutil.ReadFile(path)
+               if err != nil {
+
+               }
+               content := strings.ReplaceAll(string(read), "%PROJECT%", name)
+
+               err = ioutil.WriteFile(path, []byte(content), 0)
+
+               if err != nil {
+                       return err
+               }
+               return nil
+       })
+
+       err = os.RemoveAll(filepath.Join(path, ".git"))
+}
index 2d18ea964e6199851e4cc73636c1272ac4a542cc..9aba17943eaabd7e3269ace741a3676484687f2e 100644 (file)
@@ -1,5 +1,5 @@
-package lib\r
-\r
-const (\r
-       VERSION = "0.0.1"\r
-)\r
+package lib
+
+const (
+       VERSION = "0.0.1"
+)
index 7261b68612efdc364b51d0c5beefdabba80d777e..35ee73df930a90098a980c05c6241382aad07257 100644 (file)
@@ -1,13 +1,13 @@
-package main\r
-\r
-import (\r
-       "github.com/discordnova/nova/novactl/cmd"\r
-       "github.com/spf13/cobra"\r
-)\r
-\r
-func main() {\r
-       rootCommand := &cobra.Command{Use: "app"}\r
-       rootCommand.AddCommand(cmd.VersionCommand)\r
-       rootCommand.AddCommand(cmd.InitializeCommand)\r
-       rootCommand.Execute()\r
-}\r
+package main
+
+import (
+       "github.com/discordnova/nova/novactl/cmd"
+       "github.com/spf13/cobra"
+)
+
+func main() {
+       rootCommand := &cobra.Command{Use: "app"}
+       rootCommand.AddCommand(cmd.VersionCommand)
+       rootCommand.AddCommand(cmd.InitializeCommand)
+       rootCommand.Execute()
+}
diff --git a/novalet/BUILD.bazel b/novalet/BUILD.bazel
deleted file mode 100644 (file)
index ba72f56..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
-load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
-
-go_library(
-    name = "novalet_lib",
-    srcs = ["main.go"],
-    importpath = "github.com/discordnova/nova/novalet",
-    visibility = ["//visibility:private"],
-)
-
-go_binary(
-    name = "novalet",
-    embed = [":novalet_lib"],
-    visibility = ["//visibility:public"],
-)
-
-pkg_tar(
-    name = "novalet_pkg",
-    srcs = [":novalet"],
-    mode = "0755",
-    visibility = ["//visibility:public"],
-)
diff --git a/novalet/lib/BUILD.bazel b/novalet/lib/BUILD.bazel
deleted file mode 100644 (file)
index 9655784..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-load("@io_bazel_rules_go//go:def.bzl", "go_library")
-
-go_library(
-    name = "lib",
-    srcs = ["internal_transporter.go"],
-    importpath = "github.com/discordnova/nova/novalet/lib",
-    visibility = ["//visibility:public"],
-    deps = [
-        "//common/gateway",
-        "@com_github_rs_zerolog//log",
-    ],
-)
diff --git a/novalet/lib/internal_transporter.go b/novalet/lib/internal_transporter.go
deleted file mode 100644 (file)
index 87e708e..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-package lib
-
-import (
-       "github.com/discordnova/nova/common/gateway"
-       "github.com/rs/zerolog/log"
-)
-
-type InternalTransporter struct {
-       pullChannel chan []byte
-       pushChannel chan gateway.PushData
-}
-
-// NewRabbitMqTransporter creates a rabbitmq transporter using a given url
-func NewInternalTransporter() (gateway.Transporter, error) {
-       log.Info().Msg("using the memory transporter")
-
-       pullChannel, pushChannel := make(chan []byte), make(chan gateway.PushData)
-
-       go func() {
-               for {
-                       // TODO(matthieu): Implement push channel for the internal transporter.
-                       <-pushChannel
-               }
-       }()
-
-       return &InternalTransporter{
-               pullChannel: pullChannel,
-               pushChannel: pushChannel,
-       }, nil
-}
-
-func (t InternalTransporter) PushChannel() chan gateway.PushData {
-       return t.pushChannel
-}
-func (t InternalTransporter) PullChannel() chan []byte {
-       return t.pullChannel
-}
diff --git a/novalet/lib/nats_standalone.go b/novalet/lib/nats_standalone.go
deleted file mode 100644 (file)
index ec8c50d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-package lib\r
-\r
-import (\r
-       stand "github.com/nats-io/nats-streaming-server/server"\r
-)\r
-\r
-type NatsStandalone struct {\r
-       streamingServer *stand.StanServer\r
-}\r
-\r
-func NewNatsStandalone() *NatsStandalone {\r
-       server, err := stand.RunServer("standalone_server")\r
-       if err != nil {\r
-               panic("failed to start the server")\r
-       }\r
-       return &NatsStandalone{\r
-               streamingServer: server,\r
-       }\r
-}\r
diff --git a/novalet/main.go b/novalet/main.go
deleted file mode 100644 (file)
index b54711d..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-package main\r
-\r
-import (\r
-       websocketLib "github.com/discordnova/nova/gateway/lib/gateway"\r
-       "github.com/discordnova/nova/novalet/lib"\r
-)\r
-\r
-func main() {\r
-       go lib.NewNatsStandalone()\r
-       transporter, _ := lib.NewInternalTransporter()\r
-       websocket := websocketLib.NewGateway(websocketLib.GatewayConnectorOptions{\r
-               Transporter: transporter,\r
-       })\r
-\r
-       go websocket.Start()\r
-}\r
index b9a0d36401c5fad415e0e7f17f40b84718a953b9..5f063921e139c76e4705d06c588840dddc0c3da3 100644 (file)
@@ -1,39 +1,39 @@
-// How does this works ?\r
-// Every request, the proxy (envoy) requests the rate-limiting service if\r
-// the requested route bucket or global rate-limit is hit.\r
-\r
-syntax = "proto3";\r
-package nova.ratelimit.v1;\r
-\r
-// The reponse of a RatelimitRequest, it includes the status of the reponse and\r
-// the bucket informations.\r
-message RatelimitResponse {\r
-    enum Status {\r
-        OK                  = 0;\r
-        RATELIMITED         = 1;\r
-        GLOBAL_RATELIMITED  = 2;\r
-    }\r
-    Status status = 1;\r
-    bool   updateAsked = 2;\r
-}\r
-\r
-// Requests the ratelimit status of a route request, it also takes the \r
-// indentifiables of the request in question.\r
-message RatelimitRequest {\r
-    string          routeName       = 1;\r
-    repeated string indentifiables  = 2;\r
-}\r
-\r
-// Used when "updateAsked" is sed to true\r
-// this means the bucket is unknown to the ratelimit server.\r
-message CreateBucketData {\r
-    RatelimitRequest request    = 1;\r
-    int32 limit                 = 2;\r
-    int32 remaining             = 3;\r
-    int32 reset                 = 4;\r
-}\r
-\r
-service RatelimitService {\r
-    rpc GetRatelimitStatus (RatelimitRequest)   returns (RatelimitResponse);\r
-    rpc CreateBucket       (CreateBucketData)   returns (CreateBucketData);\r
+// How does this works ?
+// Every request, the proxy (envoy) requests the rate-limiting service if
+// the requested route bucket or global rate-limit is hit.
+
+syntax = "proto3";
+package nova.ratelimit.v1;
+
+// The reponse of a RatelimitRequest, it includes the status of the reponse and
+// the bucket informations.
+message RatelimitResponse {
+    enum Status {
+        OK                  = 0;
+        RATELIMITED         = 1;
+        GLOBAL_RATELIMITED  = 2;
+    }
+    Status status = 1;
+    bool   updateAsked = 2;
+}
+
+// Requests the ratelimit status of a route request, it also takes the 
+// indentifiables of the request in question.
+message RatelimitRequest {
+    string          routeName       = 1;
+    repeated string indentifiables  = 2;
+}
+
+// Used when "updateAsked" is sed to true
+// this means the bucket is unknown to the ratelimit server.
+message CreateBucketData {
+    RatelimitRequest request    = 1;
+    int32 limit                 = 2;
+    int32 remaining             = 3;
+    int32 reset                 = 4;
+}
+
+service RatelimitService {
+    rpc GetRatelimitStatus (RatelimitRequest)   returns (RatelimitResponse);
+    rpc CreateBucket       (CreateBucketData)   returns (CreateBucketData);
 }
\ No newline at end of file