An open API service indexing awesome lists of open source software.

https://github.com/edosrecki/oopsiee-cli

A CLI tool for oopsiee-server. Simplifies daily operations and on-call duty by letting you run repeated and cumbersome tasks with one-liners.
https://github.com/edosrecki/oopsiee-cli

cli devops on-call operations

Last synced: 2 months ago
JSON representation

A CLI tool for oopsiee-server. Simplifies daily operations and on-call duty by letting you run repeated and cumbersome tasks with one-liners.

Awesome Lists containing this project

README

        

:toc: macro
:toc-title:
:toclevels: 10

= oOPSiee 🙈

image:https://img.shields.io/github/package-json/v/edosrecki/oopsiee-cli/release?color=blue&label=oopsiee-cli["oOPSiee CLI Version"]
image:https://img.shields.io/github/workflow/status/edosrecki/oopsiee-cli/Continuous Integration["Build Status", link="https://github.com/edosrecki/oopsiee-cli/actions"]
image:https://img.shields.io/david/edosrecki/oopsiee-cli["Dependencies Status"]

A CLI tool for link:https://github.com/edosrecki/oopsiee-server[oopsiee-server]. Simplifies **daily operations** and
**on-call** duty by letting you run repeated and cumbersome tasks with one-liners.

* Supports **synchronous** commands
* Supports **asynchronous** jobs
* Easily **extensible**
* **Simple** installation and configuration
* Comes with **help** entries
* Runs on all **platforms**
* Uses **private/public key** authentication
** Supports **encrypted** private keys and integrates with **ssh-agent**
* Written in **TypeScript**
* Semi-automatic **dependency updates** with Dependabot

---

toc::[]

== Installation
=== Homebrew
```shell
brew install edosrecki/tools/oopsiee

# To update:
brew upgrade oopsiee
```

=== Releases
Download a corresponding distribution from https://github.com/edosrecki/oopsiee-cli/releases[Releases] and add
the executable to your `PATH`.

=== Build from source
Optionally, you can also build it from source by building and packaging it manually - see _Build_ and
_Package_ sections.

== Usage
=== Configure
1. https://github.com/edosrecki/oopsiee-server#adding-your-public-key[Add your public key] to `oopsiee-server`.
2. Log into `oopsiee-cli`:

```shell
> oopsiee login
? Username: foobar
? Private key file path: ~/.ssh/id_rsa
```

==== Encrypted private key?
Encrypted private keys are supported via `ssh-agent`, which needs to be configured:
```shell
oopsiee config set user.ssh-agent-socket
```

=== Help
```shell
oopsiee help
oopsiee help
```

=== Run command
```shell
# Run synchronously/asynchronously (whichever is default for command)
oopsiee [ARGS] [OPTS]

# Force command to run synchronously
oopsiee [ARGS] [OPTS] --sync

# Force command to run asynchronously
oopsiee [ARGS] [OPTS] --async

# Fetch results of asynchronous command execution
oopsiee job
```

== Run
=== Development mode
```shell
npm run exec:dev -- [ARGS] [OPTS]
```

=== Distribution mode
```shell
npm run exec:dist -- [ARGS] [OPTS]
```

== Build
```shell
npm run clean
npm run build
```

== Package
=== Pre-configured
```shell
# Packages for Node.JS 12 on MacOS, Linux, and Windows
npm run bundle
```

=== Manual
See https://www.npmjs.com/package/pkg#targets[pkg] for details.

```shell
npx pkg --

# Examples
npx pkg node8-macos-x64
npx pkg node10-linux-x86
npx pkg node6-win-x64
```

== Test
```shell
npm test
npm run test:watch
```

== Deploy
To deploy a new version of `oopsiee-cli`, merge `master` branch into `release` branch.
New version will automatically get released by CI system.