Team Scripts
helps teams share, collect, organize, and discover executable knowledge in their engineering organization.
You can run the scripts from anywhere on the command line. The installation puts the scripts on the PATH.
Scripts on remote hosts can be managed
Tab complete lists the available commands
The scripts are organized by namespace / team / resource / action
The naming scheme of scripts is important for organization and discoverability:
fe.myservice.link
- frontend team, link the servicebid.pipeline.clean
- bidding team, clean the pipeline of leftover jobsec.remote.client.pair
- ecommerce team, pair clients on remote system
Give the user the sense they are working with objects. Imagine running scripts with these names:
tm.remote.myservice.deploy
tm.remote.myservice.restart
tm.remote.myservice.runTests
Script names should not give away their implementations. Instead, the scripts should use the shebang to hint to the OS what interpreter to run.
git clone git@github.com:ericlow/team-scripts.git
cd team-scripts
./teamscripts.install
source ~/.zshrc
tm.source.open
tm.source.open ?
- "A command-line fuzzy finder": https://github.com/junegunn/fzf
- Migrate: get git branch
- Migrate: get git org
- Migrate: get git repo
- Migrate: get user email
- Migrate: run a jenkins job with parameters
- Migrate: run a jenkins job without parameters
- Migrate: run a GOCD job
- Migrate: parse command line arguments
- Migrate: curl with POST, PUT with headers, data payloads
- Migrate: ssh to machine, manipulate files with sed
- Migrate: mount NFS drives
- Migrate: ssh to machine, cat a file
- Migrate: manipulate files locally with sed
- Migrate: deploy script package remotely
- Migrate: create a PR
- Migrate: simplify navigation to remote logs