├── .github └── workflows │ ├── ci.yml │ └── release.yml ├── .gitignore ├── .shellcheckrc ├── .shellspec ├── .yamllint ├── CHANGELOG.md ├── Cargo.lock ├── Cargo.toml ├── Dockerfile ├── IDEAS.md ├── Makefile ├── README.md ├── crates ├── rb-cli │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ ├── src │ │ ├── bin │ │ │ └── rb.rs │ │ ├── commands │ │ │ ├── environment.rs │ │ │ ├── exec.rs │ │ │ ├── init.rs │ │ │ ├── mod.rs │ │ │ ├── run.rs │ │ │ ├── runtime.rs │ │ │ └── sync.rs │ │ ├── config │ │ │ ├── loader.rs │ │ │ ├── locator.rs │ │ │ └── mod.rs │ │ ├── discovery.rs │ │ └── lib.rs │ └── tests │ │ ├── core_integration_tests.rs │ │ └── integration_tests.rs ├── rb-core │ ├── .gitignore │ ├── Cargo.toml │ ├── src │ │ ├── bundler │ │ │ ├── detector.rs │ │ │ └── mod.rs │ │ ├── butler │ │ │ ├── command.rs │ │ │ ├── mod.rs │ │ │ └── runtime_provider.rs │ │ ├── command.rs │ │ ├── gems │ │ │ └── mod.rs │ │ ├── lib.rs │ │ ├── project │ │ │ ├── detector.rs │ │ │ └── mod.rs │ │ └── ruby │ │ │ ├── detector.rs │ │ │ └── mod.rs │ └── tests │ │ ├── bundler_integration_tests.rs │ │ ├── butler_env_tests.rs │ │ ├── butler_integration_tests.rs │ │ └── detector_tests.rs └── rb-tests │ ├── Cargo.toml │ └── src │ ├── bundler_sandbox.rs │ ├── lib.rs │ └── ruby_sandbox.rs ├── docker-compose.yml ├── examples ├── rb.kdl ├── rb.toml ├── rbproject.kdl └── rbproject.toml ├── shellspec ├── spec ├── commands │ ├── config_spec.sh │ ├── environment_spec.sh │ ├── exec │ │ ├── bundler_spec.sh │ │ └── ruby_spec.sh │ ├── help_spec.sh │ ├── init_spec.sh │ ├── project_spec.sh │ ├── run_spec.sh │ ├── runtime_spec.sh │ └── sync_spec.sh └── support │ └── helpers.sh └── tests ├── Setup.ps1 ├── commands ├── Config.Integration.Tests.ps1 ├── Environment.Integration.Tests.ps1 ├── Help.Unit.Tests.ps1 ├── Project.Integration.Tests.ps1 ├── Run.Integration.Tests.ps1 ├── Runtime.Integration.Tests.ps1 └── exec │ ├── Bundle.Integration.Tests.ps1 │ ├── Gem.Integration.Tests.ps1 │ └── Ruby.Integration.Tests.ps1 ├── errors ├── CommandNotFound.Integration.Tests.ps1 └── DirectoryNotFound.Integration.Tests.ps1 └── windows └── ExecutableResolution.Integration.Tests.ps1 /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /tmp 3 | -------------------------------------------------------------------------------- /.shellcheckrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/.shellcheckrc -------------------------------------------------------------------------------- /.shellspec: -------------------------------------------------------------------------------- 1 | --jobs 20 2 | --random examples 3 | -------------------------------------------------------------------------------- /.yamllint: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/.yamllint -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/Cargo.toml -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/Dockerfile -------------------------------------------------------------------------------- /IDEAS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/IDEAS.md -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/README.md -------------------------------------------------------------------------------- /crates/rb-cli/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/Cargo.toml -------------------------------------------------------------------------------- /crates/rb-cli/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/README.md -------------------------------------------------------------------------------- /crates/rb-cli/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/build.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/bin/rb.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/bin/rb.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/commands/environment.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/commands/environment.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/commands/exec.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/commands/exec.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/commands/init.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/commands/init.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/commands/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/commands/mod.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/commands/run.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/commands/run.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/commands/runtime.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/commands/runtime.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/commands/sync.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/commands/sync.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/config/loader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/config/loader.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/config/locator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/config/locator.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/config/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/config/mod.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/discovery.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/discovery.rs -------------------------------------------------------------------------------- /crates/rb-cli/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/src/lib.rs -------------------------------------------------------------------------------- /crates/rb-cli/tests/core_integration_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/tests/core_integration_tests.rs -------------------------------------------------------------------------------- /crates/rb-cli/tests/integration_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-cli/tests/integration_tests.rs -------------------------------------------------------------------------------- /crates/rb-core/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /crates/rb-core/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/Cargo.toml -------------------------------------------------------------------------------- /crates/rb-core/src/bundler/detector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/bundler/detector.rs -------------------------------------------------------------------------------- /crates/rb-core/src/bundler/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/bundler/mod.rs -------------------------------------------------------------------------------- /crates/rb-core/src/butler/command.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/butler/command.rs -------------------------------------------------------------------------------- /crates/rb-core/src/butler/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/butler/mod.rs -------------------------------------------------------------------------------- /crates/rb-core/src/butler/runtime_provider.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/butler/runtime_provider.rs -------------------------------------------------------------------------------- /crates/rb-core/src/command.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/command.rs -------------------------------------------------------------------------------- /crates/rb-core/src/gems/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/gems/mod.rs -------------------------------------------------------------------------------- /crates/rb-core/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/lib.rs -------------------------------------------------------------------------------- /crates/rb-core/src/project/detector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/project/detector.rs -------------------------------------------------------------------------------- /crates/rb-core/src/project/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/project/mod.rs -------------------------------------------------------------------------------- /crates/rb-core/src/ruby/detector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/ruby/detector.rs -------------------------------------------------------------------------------- /crates/rb-core/src/ruby/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/src/ruby/mod.rs -------------------------------------------------------------------------------- /crates/rb-core/tests/bundler_integration_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/tests/bundler_integration_tests.rs -------------------------------------------------------------------------------- /crates/rb-core/tests/butler_env_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/tests/butler_env_tests.rs -------------------------------------------------------------------------------- /crates/rb-core/tests/butler_integration_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/tests/butler_integration_tests.rs -------------------------------------------------------------------------------- /crates/rb-core/tests/detector_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-core/tests/detector_tests.rs -------------------------------------------------------------------------------- /crates/rb-tests/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-tests/Cargo.toml -------------------------------------------------------------------------------- /crates/rb-tests/src/bundler_sandbox.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-tests/src/bundler_sandbox.rs -------------------------------------------------------------------------------- /crates/rb-tests/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-tests/src/lib.rs -------------------------------------------------------------------------------- /crates/rb-tests/src/ruby_sandbox.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/crates/rb-tests/src/ruby_sandbox.rs -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /examples/rb.kdl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/examples/rb.kdl -------------------------------------------------------------------------------- /examples/rb.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/examples/rb.toml -------------------------------------------------------------------------------- /examples/rbproject.kdl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/examples/rbproject.kdl -------------------------------------------------------------------------------- /examples/rbproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/examples/rbproject.toml -------------------------------------------------------------------------------- /shellspec: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | exec docker compose run --rm rb-test shellspec "$@" 3 | -------------------------------------------------------------------------------- /spec/commands/config_spec.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/spec/commands/config_spec.sh -------------------------------------------------------------------------------- /spec/commands/environment_spec.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/spec/commands/environment_spec.sh -------------------------------------------------------------------------------- /spec/commands/exec/bundler_spec.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/spec/commands/exec/bundler_spec.sh -------------------------------------------------------------------------------- /spec/commands/exec/ruby_spec.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/spec/commands/exec/ruby_spec.sh -------------------------------------------------------------------------------- /spec/commands/help_spec.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/spec/commands/help_spec.sh -------------------------------------------------------------------------------- /spec/commands/init_spec.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/spec/commands/init_spec.sh -------------------------------------------------------------------------------- /spec/commands/project_spec.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/spec/commands/project_spec.sh -------------------------------------------------------------------------------- /spec/commands/run_spec.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/spec/commands/run_spec.sh -------------------------------------------------------------------------------- /spec/commands/runtime_spec.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/spec/commands/runtime_spec.sh -------------------------------------------------------------------------------- /spec/commands/sync_spec.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/spec/commands/sync_spec.sh -------------------------------------------------------------------------------- /spec/support/helpers.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/spec/support/helpers.sh -------------------------------------------------------------------------------- /tests/Setup.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/Setup.ps1 -------------------------------------------------------------------------------- /tests/commands/Config.Integration.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/commands/Config.Integration.Tests.ps1 -------------------------------------------------------------------------------- /tests/commands/Environment.Integration.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/commands/Environment.Integration.Tests.ps1 -------------------------------------------------------------------------------- /tests/commands/Help.Unit.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/commands/Help.Unit.Tests.ps1 -------------------------------------------------------------------------------- /tests/commands/Project.Integration.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/commands/Project.Integration.Tests.ps1 -------------------------------------------------------------------------------- /tests/commands/Run.Integration.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/commands/Run.Integration.Tests.ps1 -------------------------------------------------------------------------------- /tests/commands/Runtime.Integration.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/commands/Runtime.Integration.Tests.ps1 -------------------------------------------------------------------------------- /tests/commands/exec/Bundle.Integration.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/commands/exec/Bundle.Integration.Tests.ps1 -------------------------------------------------------------------------------- /tests/commands/exec/Gem.Integration.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/commands/exec/Gem.Integration.Tests.ps1 -------------------------------------------------------------------------------- /tests/commands/exec/Ruby.Integration.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/commands/exec/Ruby.Integration.Tests.ps1 -------------------------------------------------------------------------------- /tests/errors/CommandNotFound.Integration.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/errors/CommandNotFound.Integration.Tests.ps1 -------------------------------------------------------------------------------- /tests/errors/DirectoryNotFound.Integration.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/errors/DirectoryNotFound.Integration.Tests.ps1 -------------------------------------------------------------------------------- /tests/windows/ExecutableResolution.Integration.Tests.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RubyElders/ruby-butler/HEAD/tests/windows/ExecutableResolution.Integration.Tests.ps1 --------------------------------------------------------------------------------