# teapot_tools reimplementation of gclient from depot_tools and cipd from luci-go in Rust (or as some may call it, Python with extra steps). ## why? I was trying to get depot_tools working on my machine, only to see things like this: ``` ./third_party/depot_tools/bootstrap_python3: line 28: cipd: command not found ./third_party/depot_tools/bootstrap_python3: line 32: bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3: No such file or directory /home/lauren/aports/testing/signal-desktop/src/webrtc-4896c/third_party/depot_tools/bootstrap_python3: line 28: cipd: command not found /home/lauren/aports/testing/signal-desktop/src/webrtc-4896c/third_party/depot_tools/bootstrap_python3: line 32: bootstrap-2@3.8.10.chromium.23_bin/python3/bin/python3: No such file or directory cat: can't open '/home/lauren/aports/testing/signal-desktop/src/webrtc-4896c/third_party/depot_tools/python3_bin_reldir.txt': No such file or directory [E2022-06-21T19:47:00.253814+02:00 28299 0 annotate.go:273] goroutine 1: #0 go.chromium.org/luci/vpython/venv/config.go:309 - venv.(*Config).resolvePythonInterpreter() reason: none of [/home/lauren/aports/testing/signal-desktop/src/webrtc-4896c/third_party/depot_tools//python3] matched specification 3.8.0 #1 go.chromium.org/luci/vpython/venv/config.go:153 - venv.(*Config).resolveRuntime() reason: failed to resolve system Python interpreter #2 go.chromium.org/luci/vpython/venv/venv.go:143 - venv.With() reason: failed to resolve python runtime #3 go.chromium.org/luci/vpython/run.go:60 - vpython.Run() #4 go.chromium.org/luci/vpython/application/application.go:327 - application.(*application).mainImpl() #5 go.chromium.org/luci/vpython/application/application.go:416 - application.(*Config).Main.func1() #6 go.chromium.org/luci/vpython/application/support.go:46 - application.run() #7 go.chromium.org/luci/vpython/application/application.go:415 - application.(*Config).Main() #8 vpython/main.go:112 - main.mainImpl() #9 vpython/main.go:118 - main.main() #10 runtime/proc.go:225 - runtime.main() #11 runtime/asm_amd64.s:1371 - runtime.goexit() ``` I looked at these errors, at the DEPS file, and got the impression that it's gonna be easier to rewrite it than to get it running. ## dependencies listed as alpine package names, should be similar on wherever build: - openssl-dev - protoc - python3-dev - rust runtime: - git - python3 (libpython3) ## mirrors - codeberg (main development platform): https://codeberg.org/selfisekai/teapot_tools - github: https://github.com/selfisekai/teapot_tools - gitlab: https://gitlab.com/selfisekai/teapot_tools - crates: https://lib.rs/crates/teapot_tools (https://crates.io/crates/teapot_tools) ## security considerations **Do NOT run on untrusted projects.** - DEPS file is literally Python code run on a Python interpreter, it possibly can run some malicious code. - DEPS file contains hooks that are supposed to (not implemented yet) be run before/after cloning dependencies, they can be malicious code. Please only report security issues by e-mail: `security at selfisekai dot rocks`. ## legal copyright 2022 Lauren N. Liberda, usage allowed under the terms of [Apache-2.0 license](LICENSE)