Spacer
An opinionated command-line utility for creating and maintaining multiple organizational workspaces
license
MIT licensed. See license.txt for more info.
status
This project is currently in an pre-alpha state.
DO NOT USE IN PRODUCTION.
description
Spacer is an opinionated command-line utility for creating and maintaining workspaces across multiple organizations.
It was created to simplify the process of keeping separate personas across different code projects.
usage
Organizations are pseudo-anonymous accounts with a specific provider
(currently only supporting git or the gh Github CLI). The benefit of an organization is that it automatically sets your preferences to
use a specific user name and email when creating commits to prevent
leaking your real name and personal email when pushing code for
side-projects.
# Create a new organization using the Git provider w/ a custom Git remote URL. Omitting the URL saves projects locally only.
> spacer org create myorg --provider=git --git-url https://secret.cave/git-projects --git-user batman --name=Batman --email=batman@secret.cave
# Create a new organization using the Github provider.
> spacer org create myorg --provider=gh --gh-user batman --name=Batman --email=batman@secret.cave
Repositories are Git code repositories under an organization.
# Create a new repository in an organization w/ default branch main
> spacer org myorg repo create myrepo --default-branch=main
# Delete a repository in an organization
> spacer org myorg repo delete myrepo
environment
SPACER_HOME - The directory for new workspace creation. Defaults to ~/.spacer/workspace/
SPACER_CONFIG - The default spacer configuration file.
development
build
This repository is using the [Bazel][www-bazel] build framework.
To build:
- Install Bazel (first time only):
brew install bazel
- Run the build:
bazel build //...
testing
To run the tests:
bazel test //...
running
To compile and run Spacer:
bazel run //cmd:spacer
[//] # (References)
[www-bazel]: https://docs.bazel.build