secator 0.1.1__tar.gz → 0.3.0__tar.gz
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.
Potentially problematic release.
This version of secator might be problematic. Click here for more details.
- secator-0.3.0/CHANGELOG.md +28 -0
- {secator-0.1.1 → secator-0.3.0}/PKG-INFO +23 -1
- {secator-0.1.1 → secator-0.3.0}/README.md +20 -0
- secator-0.3.0/images/help.png +0 -0
- {secator-0.1.1 → secator-0.3.0}/pyproject.toml +4 -1
- secator-0.3.0/scripts/install.sh +32 -0
- {secator-0.1.1 → secator-0.3.0}/secator/cli.py +441 -334
- {secator-0.1.1 → secator-0.3.0}/secator/decorators.py +2 -2
- {secator-0.1.1 → secator-0.3.0}/secator/definitions.py +64 -16
- {secator-0.1.1 → secator-0.3.0}/secator/exporters/txt.py +1 -1
- secator-0.3.0/secator/installer.py +192 -0
- {secator-0.1.1 → secator-0.3.0}/secator/runners/command.py +27 -27
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/dalfox.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/dnsx.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/dnsxbrute.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/feroxbuster.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/ffuf.py +2 -2
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/gau.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/gospider.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/grype.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/httpx.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/katana.py +2 -1
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/mapcidr.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/msfconsole.py +1 -1
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/naabu.py +2 -1
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/nuclei.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/subfinder.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/wpscan.py +1 -1
- {secator-0.1.1 → secator-0.3.0}/secator/utils_test.py +1 -0
- {secator-0.1.1 → secator-0.3.0}/tests/integration/test_scans.py +2 -2
- {secator-0.1.1 → secator-0.3.0}/tests/integration/test_tasks.py +2 -2
- {secator-0.1.1 → secator-0.3.0}/tests/integration/test_workflows.py +2 -2
- secator-0.1.1/images/help.png +0 -0
- secator-0.1.1/scripts/install.sh +0 -21
- {secator-0.1.1 → secator-0.3.0}/.flake8 +0 -0
- {secator-0.1.1 → secator-0.3.0}/.gitignore +0 -0
- {secator-0.1.1 → secator-0.3.0}/CONTRIBUTING.md +0 -0
- {secator-0.1.1 → secator-0.3.0}/Dockerfile +0 -0
- {secator-0.1.1 → secator-0.3.0}/LICENSE +0 -0
- {secator-0.1.1 → secator-0.3.0}/SECURITY.md +0 -0
- {secator-0.1.1 → secator-0.3.0}/cloudbuild.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/aliases.cast +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/aliases.gif +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/demo.cast +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/demo.gif +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/fmt.cast +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/fmt.gif +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/input.cast +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/input.gif +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/pipe.cast +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/pipe.gif +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/short_demo.cast +0 -0
- {secator-0.1.1 → secator-0.3.0}/images/short_demo.gif +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/download_cves.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/install_asciinema.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/install_go.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/install_ruby.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/msf/exploit_cve.rc +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/msf/ftp_anonymous.rc +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/msf/ftp_version.rc +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/msf/ftp_vsftpd_234_backdoor.rc +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/msf/redis.rc +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/msfinstall.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/stories/STORY.md +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/stories/aliases.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/stories/demo.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/stories/fmt.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/stories/input.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/stories/pipe.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/scripts/stories/short_demo.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/.gitignore +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/celery.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/config.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/profiles/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/profiles/aggressive.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/profiles/default.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/profiles/stealth.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/scans/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/scans/domain.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/scans/host.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/scans/network.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/scans/subdomain.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/scans/url.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/cidr_recon.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/code_scan.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/host_recon.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/port_scan.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/subdomain_recon.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/url_crawl.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/url_dirsearch.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/url_fuzz.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/url_nuclei.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/url_vuln.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/user_hunt.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/configs/workflows/wordpress.yaml +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/exporters/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/exporters/_base.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/exporters/csv.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/exporters/gdrive.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/exporters/json.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/exporters/table.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/hooks/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/hooks/mongodb.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/_base.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/exploit.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/ip.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/port.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/progress.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/record.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/subdomain.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/tag.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/target.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/url.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/user_account.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/output_types/vulnerability.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/report.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/rich.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/runners/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/runners/_base.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/runners/_helpers.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/runners/scan.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/runners/task.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/runners/workflow.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/serializers/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/serializers/dataclass.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/serializers/json.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/serializers/regex.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/_categories.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/cariddi.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/dirsearch.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/fping.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/gf.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/h8mail.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/maigret.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/nmap.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/tasks/searchsploit.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/secator/utils.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/fixtures/h8mail_breach.txt +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/fixtures/msfconsole_input.rc +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/fixtures/nmap_output.xml +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/integration/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/integration/inputs.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/integration/outputs.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/integration/setup.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/integration/teardown.sh +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/integration/wordlist.txt +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/integration/wordlist_dns.txt +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/integration/wordpress_toolbox/Dockerfile +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/integration/wordpress_toolbox/Makefile +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/performance/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/performance/loadtester.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/unit/__init__.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/unit/test_celery.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/unit/test_scans.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/unit/test_serializers.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/unit/test_tasks.py +0 -0
- {secator-0.1.1 → secator-0.3.0}/tests/unit/test_workflows.py +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.3.0](https://github.com/freelabz/secator/compare/v0.2.0...v0.3.0) (2024-04-09)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add health command and update check ([#258](https://github.com/freelabz/secator/issues/258)) ([289b86a](https://github.com/freelabz/secator/commit/289b86ac2c278f02102d8824d3de5cf71e3778ae))
|
|
9
|
+
* rework install to use pre-packaged binaries when possible ([#253](https://github.com/freelabz/secator/issues/253)) ([b391fe8](https://github.com/freelabz/secator/commit/b391fe8cfdf991b50435c4f53f470e3cea0150ee))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* health -json output ([#257](https://github.com/freelabz/secator/issues/257)) ([4477bb2](https://github.com/freelabz/secator/commit/4477bb25170e80fca1be5985a3b198dd7b423e5f))
|
|
15
|
+
* txt output bug ([#256](https://github.com/freelabz/secator/issues/256)) ([fca301d](https://github.com/freelabz/secator/commit/fca301d24c5d9999fef9ae13b8e64c099a65ab95))
|
|
16
|
+
|
|
17
|
+
## [0.2.0](https://github.com/freelabz/secator/compare/v0.1.1...v0.2.0) (2024-04-08)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* add build & release CLI commands ([#247](https://github.com/freelabz/secator/issues/247)) ([775eba1](https://github.com/freelabz/secator/commit/775eba16d3a6f9d8cbc83f81daed85fb806fe6db))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* docker build & push ([#250](https://github.com/freelabz/secator/issues/250)) ([7cebd9f](https://github.com/freelabz/secator/commit/7cebd9fe61f6dbb76e9f78fcbcd3514d68204c87))
|
|
28
|
+
* install issues & docs ([#243](https://github.com/freelabz/secator/issues/243)) ([0447148](https://github.com/freelabz/secator/commit/0447148c89f13884cbc14579d953e0d3e067cbe2)), closes [#242](https://github.com/freelabz/secator/issues/242) [#241](https://github.com/freelabz/secator/issues/241) [#240](https://github.com/freelabz/secator/issues/240) [#239](https://github.com/freelabz/secator/issues/239)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: secator
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: The pentester's swiss knife.
|
|
5
5
|
Project-URL: Homepage, https://github.com/freelabz/secator
|
|
6
6
|
Project-URL: Issues, https://github.com/freelabz/secator/issues
|
|
@@ -34,6 +34,8 @@ Requires-Dist: rich-click<1.7
|
|
|
34
34
|
Requires-Dist: rich<14
|
|
35
35
|
Requires-Dist: validators<1
|
|
36
36
|
Requires-Dist: xmltodict<1
|
|
37
|
+
Provides-Extra: build
|
|
38
|
+
Requires-Dist: hatch<2; extra == 'build'
|
|
37
39
|
Provides-Extra: dev
|
|
38
40
|
Requires-Dist: asciinema-automation<1; extra == 'dev'
|
|
39
41
|
Requires-Dist: coverage<8; extra == 'dev'
|
|
@@ -319,6 +321,26 @@ secator install addons trace
|
|
|
319
321
|
|
|
320
322
|
</details>
|
|
321
323
|
|
|
324
|
+
<details>
|
|
325
|
+
<summary>build</summary>
|
|
326
|
+
|
|
327
|
+
Add `hatch` for building and publishing the PyPI package.
|
|
328
|
+
|
|
329
|
+
```sh
|
|
330
|
+
secator install addons build
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
</details>
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
### Install CVEs
|
|
337
|
+
|
|
338
|
+
`secator` makes remote API calls to https://cve.circl.lu/ to get in-depth information about the CVEs it encounters.
|
|
339
|
+
We provide a subcommand to download all known CVEs locally so that future lookups are made from disk instead:
|
|
340
|
+
```sh
|
|
341
|
+
secator install cves
|
|
342
|
+
```
|
|
343
|
+
|
|
322
344
|
### Checking installation health
|
|
323
345
|
|
|
324
346
|
To figure out which languages or tools are installed on your system (along with their version):
|
|
@@ -262,6 +262,26 @@ secator install addons trace
|
|
|
262
262
|
|
|
263
263
|
</details>
|
|
264
264
|
|
|
265
|
+
<details>
|
|
266
|
+
<summary>build</summary>
|
|
267
|
+
|
|
268
|
+
Add `hatch` for building and publishing the PyPI package.
|
|
269
|
+
|
|
270
|
+
```sh
|
|
271
|
+
secator install addons build
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
</details>
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
### Install CVEs
|
|
278
|
+
|
|
279
|
+
`secator` makes remote API calls to https://cve.circl.lu/ to get in-depth information about the CVEs it encounters.
|
|
280
|
+
We provide a subcommand to download all known CVEs locally so that future lookups are made from disk instead:
|
|
281
|
+
```sh
|
|
282
|
+
secator install cves
|
|
283
|
+
```
|
|
284
|
+
|
|
265
285
|
### Checking installation health
|
|
266
286
|
|
|
267
287
|
To figure out which languages or tools are installed on your system (along with their version):
|
|
Binary file
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "secator"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.3.0"
|
|
8
8
|
authors = [{ name = "FreeLabz", email = "sales@freelabz.com" }]
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
description = "The pentester's swiss knife."
|
|
@@ -55,6 +55,9 @@ dev = [
|
|
|
55
55
|
'watchdog < 3',
|
|
56
56
|
'asciinema-automation < 1',
|
|
57
57
|
]
|
|
58
|
+
build = [
|
|
59
|
+
'hatch < 2',
|
|
60
|
+
]
|
|
58
61
|
trace = [
|
|
59
62
|
'memray < 2',
|
|
60
63
|
'pyinstrument < 5',
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
YELLOW='\033[0;93m'
|
|
3
|
+
GREEN='\033[0;92m'
|
|
4
|
+
NC='\033[0m' # No Color
|
|
5
|
+
|
|
6
|
+
echo -e "🗄 ${YELLOW}Running apt update ...${NC}"
|
|
7
|
+
sudo apt update
|
|
8
|
+
echo -e "🗄 ${GREEN}Ran apt update successfully !${NC}\n"
|
|
9
|
+
|
|
10
|
+
echo -e "🗄 ${YELLOW}Installing Python and pipx ...${NC}"
|
|
11
|
+
sudo apt install -y python3-pip pipx
|
|
12
|
+
echo -e "🗄 ${GREEN}pipx installed successfully !${NC}\n"
|
|
13
|
+
|
|
14
|
+
echo -e "🗄 ${YELLOW}Setting \$PATH ...${NC}"
|
|
15
|
+
export PATH=$PATH:~/.local/bin:~/go/bin
|
|
16
|
+
echo -e "🗄 ${GREEN}\$PATH modified successfully !${NC}\n"
|
|
17
|
+
|
|
18
|
+
echo -e "🗄 ${YELLOW}Installing secator and dependencies ...${NC}"
|
|
19
|
+
pipx install secator
|
|
20
|
+
secator install langs go
|
|
21
|
+
secator install langs ruby
|
|
22
|
+
secator install tools
|
|
23
|
+
secator install addons redis
|
|
24
|
+
secator install addons worker
|
|
25
|
+
secator install addons google
|
|
26
|
+
secator install addons mongodb
|
|
27
|
+
echo -e "🗄 ${GREEN}secator installed successfully !${NC}\n"
|
|
28
|
+
|
|
29
|
+
echo -e "🗄 ${YELLOW}Adding ~/go/bin and ~/.local/bin to \$PATH in .bashrc ...${NC}"
|
|
30
|
+
echo "export PATH=$PATH:~/go/bin:~/.local/bin" >> ~/.bashrc
|
|
31
|
+
source ~/.bashrc
|
|
32
|
+
echo -e "🗄 ${GREEN}\$PATH modified successfully !${NC}\n"
|