1
0
Fork
You've already forked teapot_tools
0
reimplementation of depot_tools (gclient) in Rust
  • Rust 99%
  • Python 1%
Find a file
2022年09月05日 22:54:05 +02:00
proto/cipd cipd package support 2022年09月04日 20:28:17 +02:00
src move resolving git ref from url spec to git_clone ( #8 , #9 ) 2022年09月05日 22:32:48 +02:00
test_workspaces/chromium support for .gclient, actually use .gclient 2022年07月08日 17:49:47 +02:00
.gitignore support for .gclient, actually use .gclient 2022年07月08日 17:49:47 +02:00
.woodpecker.yml ci: execute unit tests 2022年09月05日 22:46:53 +02:00
build.rs cipd package support 2022年09月04日 20:28:17 +02:00
Cargo.lock release v0.2.0 2022年09月05日 22:54:05 +02:00
Cargo.toml release v0.2.0 2022年09月05日 22:54:05 +02:00
LICENSE relicense to Apache-2.0 2022年07月30日 15:52:31 +02:00
README.md readme: update on reimplemented tools 2022年09月04日 21:44:51 +02:00

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
  • protobuf-dev
  • protoc
  • python3-dev
  • rust

runtime:

  • git
  • python3 (libpython3)

mirrors

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 over GitLab with the confidentiality checkmark, or by e-mail: security at selfisekai dot rocks (PGP key: A16F3AB139AEE4A3635D19ED734C629FD04BD319).

copyright 2022 Lauren N. Liberda, usage allowed under the terms of Apache-2.0 license