An Opinionated Framework
We designed this shell as the last layer of abstraction. It stitches all the tools together like
terraform. As time progresses, there will undoubtedly be even more that come into play. For this reason, we chose to use a combination of
make which together are ideally suited to combine the strengths of all these wonderful tools into one powerful shell, without raising the barrier to entry too high.
For the default environment variables, check out
Dockerfile. We believe using ENVs this way is both consistent with the “cloud” (12 Factor Pattern) way of doing things, as well as a clear way of communicating what values are being passed without using a complicated convention. Additionally, you can set & forget these ENVs in your shell.
Layout Inside the Shell
We leverage as many semantics of the linux shell as we can to make the experience as frictionless as possible.
||is where shell profiles are stored (like aliases). These are executed when the shell starts.|
||is where all bash completion scripts are kept and sourced when the shell starts.|
||has some helper scripts like
||is the current “Message of the Day”|
||is where we configure the S3 filesystems we should mount|
||is where we house the local state (like your temporary AWS credentials). This is your native
||is where we mount S3 buckets; these files are never written to disk and only kept in memory for security|
You can easily change almost any aspect of how the shell works simply by extending it with Geodesic Module