From 03ffdad554d4cb2b8ec89d454ad39bae18cbdbab Mon Sep 17 00:00:00 2001 From: Michael Schmidt-Korth Date: Wed, 19 Feb 2020 12:08:27 +0100 Subject: [PATCH] Initial commit --- CONTRIBUTING.md | 27 +++++++++++++++++++ Example.png | Bin 0 -> 59543 bytes README.md | 37 ++++++++++++++++++++++++++ SFDX.py | 69 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 133 insertions(+) create mode 100644 CONTRIBUTING.md create mode 100644 Example.png create mode 100644 README.md create mode 100644 SFDX.py diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3fd492c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,27 @@ +# Contributing to Salesforce DX (SFDX) Status for iTerm2 +I'm happy about any ideas, suggestions for enhancements or contributions of code you might have! + +# Reporting a Bug +If you think you have found a bug, please + +- Check that your bug has not already been reported +- Create a new GitHub issue providing + - Your iTerm version + - Your SFDX version + - An explanation of the bug, providing the exact steps if it is reproducible + - Your expected behavior + - Any debug/error output + +# Suggesting an Enhancement +If you have an idea for a new feature, or an enhancement of an existing one, please raise a new GitHub issue. + +# Contributing your Code +If you already programmed a new feature or enhancement (awesome!), please + +1. Fork it! Clone it locally to start coding. +2. Create your feature branch: `git checkout -b my-new-feature` +3. Make and commit your changes: `git commit -m 'Add new feature'` +4. Push to the feature branch: `git push origin my-new-feature` +5. Submit a Pull Request from your feature branch to the `develop` branch + +See [here](https://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/) for a detailed explanation. \ No newline at end of file diff --git a/Example.png b/Example.png new file mode 100644 index 0000000000000000000000000000000000000000..3d6b7cde21b37566c9875172937d2a6a083f19cf GIT binary patch literal 59543 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 Preferences > General > Magic* and check "Enable Python API" +2. Copy `SFDX.py` to `~/Library/Application Support/iTerm2/Scripts/AutoLaunch/` +3. Go to *Scripts > AutoLaunch* and check "SFDX.py" to allow the script as a Status Bar component +4. Go to *Preferences > Profiles > > Session* and click "Configure Status Bar" +5. Drag & drop the component "SFDX Status" into the Active Components pane (you might need to scroll in the upper pane) +6. Select the component in the active pane, and click "Configure Component" +7. Make your respective configurations +8. `cd` into any directory with a `.force` project folder +9. Check your status bar + +## Usage + +- Simply open any directory that contains a `.force` folder and watch your status bar change +- If a cloud is displayed but nothing else, the current directory is not a SFDX project folder +- Click on the status bar component to display the org's expiration date + +![Example prompt](Example.png) + +**Note** The fish prompt for SFDX can be found [here](https://github.com/mschmidtkorth/fish-pure-prompt-salesforce-dx). + +## How to Contribute + +Please see the [contribution guidelines](CONTRIBUTING.md). + +## Changelog + +- **0.1.0** (2020-02-19) + - Initial release \ No newline at end of file diff --git a/SFDX.py b/SFDX.py new file mode 100644 index 0000000..89d7858 --- /dev/null +++ b/SFDX.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python3.7 +# encoding: utf-8 +import iterm2 + +aliasOrUsername = '' + + +async def main(connection): + # Executing 'sfdx force:org:display' takes >5 seconds, which would timeout coro() if executed within. Therefore, 'sfdx force:org:display' is only executed on demand within the onclick handler. + @iterm2.RPC + async def displayExpirationDate(session_id): + await component.async_open_popover(session_id, "

Retrieving org expiration date... (wait)

", iterm2.Size(300, 30)) + + from subprocess import Popen, PIPE + import json + p = Popen(['sfdx force:org:display --targetusername=' + aliasOrUsername + ' --json'], stdin = PIPE, stdout = PIPE, stderr = PIPE, universal_newlines = True, shell = True) + stdout, stderr = p.communicate() + result = '' + if stdout: + result = json.loads(stdout) + if stderr: + result = json.loads(stderr) + expiration = '' + if stderr and 'status' in result and result['status'] == 1: + expiration += '(error)' + elif stdout and 'status' in result and (result['status'] == 'Active' or result['status'] == 0): + expiration += result['result']['expirationDate'] + elif stdout and 'status' in result and (result['status'] == 'Expired' or result['status'] != 0): + expiration += '(expired)' + elif stdout: + expiration += 'Never - org is a sandbox.' + + await component.async_open_popover(session_id, "

The scratch org expires on: " + expiration + '

', iterm2.Size(350, 30)) + + knobs = [iterm2.CheckboxKnob("Enable expiration date", False, "showExpirationDate")] + component = iterm2.StatusBarComponent(short_description = "SFDX Status", detailed_description = "Provides status info for SFDX project folders", knobs = knobs, exemplar = u"\u2601 SFDC-1234 user@salesforce.com", update_cadence = None, identifier = "com.msk.sfdx") + + @iterm2.StatusBarRPC + async def coro(knobs, path = iterm2.Reference("path"), cwd = iterm2.Reference("user.currentDir?")): + import os + import json + from pathlib import Path + + currentDir = path + if 'force-app' in currentDir: # User is in subdirectory + currentDir = currentDir.split('force-app')[0] # Get root directory of project folder + if Path(currentDir + '/sfdx-project.json').is_file(): # Current folder is sfdx folder + # Retrieve defaultusername = alias + dir = currentDir if Path(currentDir + '/.sfdx/sfdx-config.json').is_file() else os.environ['HOME'] # Get config from project folder if present, or global config + with open(dir + '/.sfdx/sfdx-config.json') as configFile: + config = json.load(configFile) + global aliasOrUsername + aliasOrUsername = config['defaultusername'] + + # Retrieve username for alias + with open(os.environ['HOME'] + '/.sfdx/alias.json') as aliasFile: + alias = json.load(aliasFile) + + if 'defaultusername' in config and 'orgs' in alias: + return u'\u2601 ' + config['defaultusername'] + u' \u2022 ' + alias['orgs'][config['defaultusername']] + else: + return u'\u2601' # Some error occurred, e.g. file not found or wrong content + else: + return u'\u2601' # No SFDX directory + + await component.async_register(connection, coro, timeout = 15.0, onclick = displayExpirationDate) + + +iterm2.run_forever(main)