Skip to content
This repository has been archived by the owner on Sep 30, 2021. It is now read-only.

Reusable shell agnostic scripting so you can get your shtuff done.

Notifications You must be signed in to change notification settings

TechnologyAdvice/ta-scripts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ta-scripts

Circle CI

Managing separate scripts on multiple projects is not DRY nor maintainable. This is a place to house your reusable scripts.

✓ npm installed, shared, and versioned scripts
✓ cli ta-script executes bash and node scripts
✓ execute scripts without specifying extensions
✓ get global benefit from company scripting skills and updates

Install

$ npm i ta-scripts -D

Usage

$ ta-script <script> [...args]
  1. Script paths are relative to the repo root
  2. Make sure the env executing the script has all the env vars used in the script
  3. Extensions don't matter

How does it work?

ta-script

Search

This is a dead simple cli that traverses this repo looking for the <script> passed to it. If found, it passes all the args to the script and executes it with the [...args].

Extensionless

Do not include file extensions when running ta-script. It will execute the script with the shell that matches the script file extension. This allows switching the script between shells overtime without updating use of ta-script.

Examples

Circle CI Changelog

Create a CHANGELOG.md in the root of the project for the current build user and repo.

$ ta-script circle_ci/create_changelog

Private repo? Add a personal access token:

$ ta-script circle_ci/create_changelog -t <token>

S3 Sync

Sync local assets to a publicly readable bucket.

$ ta-script aws/s3_sync -d <local-dir> -b <s3-bucket>

Contribute

  1. Clone this repo
  2. Create a branch
  3. Add a script
  4. Open a PR

To test your scripts, run them with the cli:

$ node cli.js <path-to-script>

Releasing

This project is released automatically using it's own npm/auto-release script and versioned according to Angular Git Commit guidelines.

For manual releases, on the latest clean master:

npm run release:major
npm run release:minor
npm run release:patch