diff --git a/Bakefile b/Bakefile index 4482aa1..548ded7 100644 --- a/Bakefile +++ b/Bakefile @@ -1,16 +1,17 @@ -full-install: system-install python-deps +task: @confirm install-deps + echo "hi, $1" -python-deps: +install-deps: @skip:key=./Pipfile.lock system-deps pipenv install -python-dev-deps: - pipenv install --dev +system-deps: install-jq + set -ex -system-install: @confirm - brew install python pipenv + brew install pipenv -pypi-upload: python-dev-deps - pipenv run setup.py upload + if ! brew info --installed --json | jq 'map(.name) | index( "pipenv" )'; then + brew install pipenv + fi -test: - echo $@ +install-jq: + brew install jq diff --git a/contrib/bake-vscode/.vscodeignore b/contrib/bake-vscode/.vscodeignore new file mode 100644 index 0000000..f369b5e --- /dev/null +++ b/contrib/bake-vscode/.vscodeignore @@ -0,0 +1,4 @@ +.vscode/** +.vscode-test/** +.gitignore +vsc-extension-quickstart.md diff --git a/contrib/bake-vscode/Bakefile b/contrib/bake-vscode/Bakefile new file mode 100644 index 0000000..06bb8a4 --- /dev/null +++ b/contrib/bake-vscode/Bakefile @@ -0,0 +1,9 @@ +render/syntax: @test + cat $HELLO + npx js-yaml syntaxes/bakefile.tmLanguage.yaml > syntaxes/bakefile.tmLanguage.json + +install/code: + set -ex && code --install-extension kennethreitz.bake "$PWD" + +install/system: + yarn add -g yo generator-code diff --git a/contrib/bake-vscode/CHANGELOG.md b/contrib/bake-vscode/CHANGELOG.md new file mode 100644 index 0000000..533838e --- /dev/null +++ b/contrib/bake-vscode/CHANGELOG.md @@ -0,0 +1,9 @@ +# Change Log + +All notable changes to the "bake" extension will be documented in this file. + +Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. + +## [Unreleased] + +- Initial release \ No newline at end of file diff --git a/contrib/bake-vscode/README.md b/contrib/bake-vscode/README.md index fe3c52e..feea101 100644 --- a/contrib/bake-vscode/README.md +++ b/contrib/bake-vscode/README.md @@ -1,3 +1,65 @@ -## Development +# bake README - $ npm install -g yo generator-code +This is the README for your extension "bake". After writing up a brief description, we recommend including the following sections. + +## Features + +Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file. + +For example if there is an image subfolder under your extension project workspace: + +\!\[feature X\]\(images/feature-x.png\) + +> Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow. + +## Requirements + +If you have any requirements or dependencies, add a section describing those and how to install and configure them. + +## Extension Settings + +Include if your extension adds any VS Code settings through the `contributes.configuration` extension point. + +For example: + +This extension contributes the following settings: + +* `myExtension.enable`: enable/disable this extension +* `myExtension.thing`: set to `blah` to do something + +## Known Issues + +Calling out known issues can help limit users opening duplicate issues against your extension. + +## Release Notes + +Users appreciate release notes as you update your extension. + +### 1.0.0 + +Initial release of ... + +### 1.0.1 + +Fixed issue #. + +### 1.1.0 + +Added features X, Y, and Z. + +----------------------------------------------------------------------------------------------------------- + +## Working with Markdown + +**Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts: + +* Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux) +* Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux) +* Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets + +### For more information + +* [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown) +* [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/) + +**Enjoy!** diff --git a/contrib/bake-vscode/language-configuration.json b/contrib/bake-vscode/language-configuration.json new file mode 100644 index 0000000..e08f833 --- /dev/null +++ b/contrib/bake-vscode/language-configuration.json @@ -0,0 +1,67 @@ +{ + "comments": { + // symbol used for single line comment. Remove this entry if your language does not support line comments + "lineComment": "#" + }, + // symbols used as brackets + "brackets": [ + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ] + ], + // symbols that are auto closed when typing + "autoClosingPairs": [ + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ], + [ + "\"", + "\"" + ], + [ + "'", + "'" + ] + ], + // symbols that that can be used to surround a selection + "surroundingPairs": [ + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ], + [ + "\"", + "\"" + ], + [ + "'", + "'" + ] + ] +} diff --git a/contrib/bake-vscode/package.json b/contrib/bake-vscode/package.json new file mode 100644 index 0000000..985a190 --- /dev/null +++ b/contrib/bake-vscode/package.json @@ -0,0 +1,37 @@ +{ + "name": "kennethreitz.bake", + "displayName": "bake", + "description": "Hilighting for Bake: a strangely familiar task runner.", + "version": "0.0.1", + "engines": { + "vscode": "^1.38.0" + }, + "categories": [ + "Programming Languages" + ], + "contributes": { + "languages": [ + { + "id": "bakefile", + "aliases": [ + "Bakefile", + "bakefile" + ], + "extensions": [ + "Bakefile" + ], + "configuration": "./language-configuration.json" + } + ], + "grammars": [ + { + "language": "bakefile", + "scopeName": "source.bakefile", + "path": "./syntaxes/Bakefile.syntax.json", + "embeddedLanguages": { + "task": "source.shell" + } + } + ] + } +} diff --git a/contrib/bake-vscode/syntaxes/Bakefile.syntax.json b/contrib/bake-vscode/syntaxes/Bakefile.syntax.json new file mode 100644 index 0000000..7c1b8f3 --- /dev/null +++ b/contrib/bake-vscode/syntaxes/Bakefile.syntax.json @@ -0,0 +1,358 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/fadeevab/make.tmbundle/blob/master/Syntaxes/bakefile.plist", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/fadeevab/make.tmbundle/commit/fa280d2f20b0b63dc7c11b6001e9257e2c67f826", + "name": "bakefile", + "scopeName": "source.bakefile", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#target" + }, + { + "include": "#task" + }, + { + "include": "#directives" + } + ], + "repository": { + "comment": { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.bakefile" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.bakefile" + } + }, + "end": "(?=[^\\\\])$", + "name": "comment.line.number-sign.bakefile", + "patterns": [ + { + "match": "\\\\\\n", + "name": "constant.character.escape.continuation.bakefile" + } + ] + } + ] + }, + "directives": { + "patterns": [ + { + "begin": "^[ ]*([s\\-]?include)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.include.bakefile" + } + }, + "end": "^", + "patterns": [ + { + "include": "#comment" + }, + { + "match": "%", + "name": "constant.other.placeholder.bakefile" + } + ] + }, + { + "begin": "^[ ]*(vpath)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.vpath.bakefile" + } + }, + "end": "^", + "patterns": [ + { + "include": "#comment" + }, + { + "match": "%", + "name": "constant.other.placeholder.bakefile" + } + ] + }, + { + "begin": "^\\s*(?:(override)\\s*)?(define)\\s*([^\\s]+)\\s*(=|\\?=|:=|\\+=)?(?=\\s)", + "captures": { + "1": { + "name": "keyword.control.override.bakefile" + }, + "2": { + "name": "keyword.control.define.bakefile" + }, + "3": { + "name": "variable.other.bakefile" + }, + "4": { + "name": "punctuation.separator.key-value.bakefile" + } + }, + "end": "^\\s*(endef)\\b", + "name": "meta.scope.conditional.bakefile", + "patterns": [ + { + "begin": "\\G(?!\\n)", + "end": "^", + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "include": "#variables" + }, + { + "include": "#comment" + }, + { + "include": "#directives" + } + ] + }, + { + "begin": "^[ ]*(export)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.$1.bakefile" + } + }, + "end": "^", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variable-assignment" + }, + { + "match": "[^\\s]+", + "name": "variable.other.bakefile" + } + ] + }, + { + "begin": "^[ ]*(override|private)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.$1.bakefile" + } + }, + "end": "^", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variable-assignment" + } + ] + }, + { + "begin": "^[ ]*(unexport|undefine)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.$1.bakefile" + } + }, + "end": "^", + "patterns": [ + { + "include": "#comment" + }, + { + "match": "[^\\s]+", + "name": "variable.other.bakefile" + } + ] + }, + { + "begin": "^\\s*(ifdef|ifndef)\\s*([^\\s]+)(?=\\s)", + "captures": { + "1": { + "name": "keyword.control.$1.bakefile" + }, + "2": { + "name": "variable.other.bakefile" + }, + "3": { + "name": "punctuation.separator.key-value.bakefile" + } + }, + "end": "^\\s*(endif)\\b", + "name": "meta.scope.conditional.bakefile", + "patterns": [ + { + "begin": "\\G(?!\\n)", + "end": "^", + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(ifeq|ifneq)(?=\\s)", + "captures": { + "1": { + "name": "keyword.control.$1.bakefile" + } + }, + "end": "^\\s*(endif)\\b", + "name": "meta.scope.conditional.bakefile", + "patterns": [ + { + "begin": "\\G", + "end": "^", + "name": "meta.scope.condition.bakefile", + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#comment" + } + ] + }, + { + "begin": "^\\s*else(?=\\s)", + "beginCaptures": { + "0": { + "name": "keyword.control.else.bakefile" + } + }, + "end": "^" + }, + { + "include": "$self" + } + ] + } + ] + }, + "target": { + "begin": "^(?!\\t)([^:]*)(:)(?!\\=)", + "beginCaptures": { + "1": { + "patterns": [ + { + "captures": { + "1": { + "name": "support.function.target.$1.bakefile" + } + }, + "match": "^\\s*(\\.(PHONY|SUFFIXES|DEFAULT|PRECIOUS|INTERMEDIATE|SECONDARY|SECONDEXPANSION|DELETE_ON_ERROR|IGNORE|LOW_RESOLUTION_TIME|SILENT|EXPORT_ALL_VARIABLES|NOTPARALLEL|ONESHELL|POSIX))\\s*$" + }, + { + "begin": "(?=\\S)", + "end": "(?=\\s|$)", + "name": "entity.name.function.target.bakefile", + "patterns": [ + { + "include": "#variables" + }, + { + "match": "%", + "name": "constant.other.placeholder.bakefile" + } + ] + } + ] + }, + "2": { + "name": "punctuation.separator.key-value.bakefile" + } + }, + "end": "[^\\\\]$", + "name": "meta.scope.target.bakefile", + "patterns": [ + { + "begin": "\\G", + "end": "(?=[^\\\\])$", + "name": "meta.scope.prerequisites.bakefile", + "patterns": [ + { + "match": "\\\\\\n", + "name": "constant.character.escape.continuation.bakefile" + }, + { + "match": "%|\\*", + "name": "constant.other.placeholder.bakefile" + }, + { + "include": "#comment" + }, + { + "include": "#variables" + } + ] + } + ] + }, + "task": { + "begin": "^(\\t| {4})([+\\-@]*)", + "beginCaptures": { + "1": { + "name": "keyword.control.$1.bakefile" + } + }, + "end": "[^\\\\]$", + "name": "task", + "patterns": [ + { + "match": "\\\\\\n", + "name": "constant.character.escape.continuation.bakefile" + }, + { + "include": "#variables" + } + ] + }, + "interpolation": { + "patterns": [ + { + "include": "#parentheses-interpolation" + } + ] + }, + "parentheses-interpolation": { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + "braces-interpolation": { + "begin": "{", + "end": "}", + "patterns": [ + { + "include": "#interpolation" + } + ] + } + } +} diff --git a/contrib/bake-vscode/syntaxes/Bakefile.tmLanguage.json b/contrib/bake-vscode/syntaxes/Bakefile.tmLanguage.json deleted file mode 100644 index e69de29..0000000 diff --git a/contrib/bake-vscode/yarn.lock b/contrib/bake-vscode/yarn.lock new file mode 100644 index 0000000..0ca8e04 --- /dev/null +++ b/contrib/bake-vscode/yarn.lock @@ -0,0 +1,28 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=