Skip to content

Commit

Permalink
Merge b46c8a0 into 4c7479b
Browse files Browse the repository at this point in the history
  • Loading branch information
storey247 committed Apr 6, 2021
2 parents 4c7479b + b46c8a0 commit 0538224
Show file tree
Hide file tree
Showing 5 changed files with 107 additions and 0 deletions.
22 changes: 22 additions & 0 deletions .devcontainer/Dockerfile
@@ -0,0 +1,22 @@
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.163.1/containers/python-3/.devcontainer/base.Dockerfile

# [Choice] Python version: 3, 3.9, 3.8, 3.7, 3.6
ARG VARIANT="3"
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}

# [Option] Install Node.js
ARG INSTALL_NODE="true"
ARG NODE_VERSION="lts/*"
RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi

# [Optional] If your pip requirements rarely change, uncomment this section to add them to the image.
# COPY requirements.txt /tmp/pip-tmp/
# RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \
# && rm -rf /tmp/pip-tmp

# [Optional] Uncomment this section to install additional OS packages.
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
# && apt-get -y install --no-install-recommends <your-package-list-here>

# [Optional] Uncomment this line to install global node packages.
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
47 changes: 47 additions & 0 deletions .devcontainer/devcontainer.json
@@ -0,0 +1,47 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.163.1/containers/python-3
{
"name": "Python 3",
"build": {
"dockerfile": "Dockerfile",
"context": "..",
"args": {
// Update 'VARIANT' to pick a Python version: 3, 3.6, 3.7, 3.8, 3.9
"VARIANT": "3.9",
// Options
"INSTALL_NODE": "false",
"NODE_VERSION": "lts/*"
}
},

// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.shell.linux": "/bin/bash",
"python.pythonPath": "/usr/local/bin/python",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8",
"python.formatting.blackPath": "/usr/local/py-utils/bin/black",
"python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf",
"python.linting.banditPath": "/usr/local/py-utils/bin/bandit",
"python.linting.flake8Path": "/usr/local/py-utils/bin/flake8",
"python.linting.mypyPath": "/usr/local/py-utils/bin/mypy",
"python.linting.pycodestylePath": "/usr/local/py-utils/bin/pycodestyle",
"python.linting.pydocstylePath": "/usr/local/py-utils/bin/pydocstyle",
"python.linting.pylintPath": "/usr/local/py-utils/bin/pylint"
},

// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-python.python"
],

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "pip3 install -r requirements.txt && python3 setup.py develop",

// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
//"remoteUser": "vscode"
}
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -236,6 +236,7 @@ following rules are enabled by default:
* `git_help_aliased` &ndash; fixes `git help <alias>` commands replacing <alias> with the aliased command;
* `git_hook_bypass` &ndash; adds `--no-verify` flag previous to `git am`, `git commit`, or `git push` command;
* `git_lfs_mistype` &ndash; fixes mistyped `git lfs <command>` commands;
* `git_main_master` &ndash; fixes incorrect branch name between `main` and `master`
* `git_merge` &ndash; adds remote to branch names;
* `git_merge_unrelated` &ndash; adds `--allow-unrelated-histories` when required
* `git_not_command` &ndash; fixes wrong git commands like `git brnch`;
Expand Down
23 changes: 23 additions & 0 deletions tests/rules/test_git_main_master.py
@@ -0,0 +1,23 @@
import pytest
from thefuck.rules.git_main_master import match, get_new_command
from thefuck.types import Command


output = 'error: pathspec \'%s\' did not match any file(s) known to git'


def test_match():
assert match(Command('git checkout main', output % ('main')))
assert match(Command('git checkout master', output % ('master')))
assert not match(Command('git checkout master', ''))
assert not match(Command('git checkout main', ''))
assert not match(Command('git checkout wibble', output % ('wibble')))


@pytest.mark.parametrize('command, new_command', [
(Command('git checkout main', output % ('main')),
'git checkout master'),
(Command('git checkout master', output % ('master')),
'git checkout main')])
def test_get_new_command(command, new_command):
assert get_new_command(command) == new_command
14 changes: 14 additions & 0 deletions thefuck/rules/git_main_master.py
@@ -0,0 +1,14 @@
from thefuck.specific.git import git_support


@git_support
def match(command):
return "'master'" in command.output.lower() or "'main'" in command.output.lower()


@git_support
def get_new_command(command):
if "'master'" in command.output.lower():
return command.script.replace("master", "main")
else:
return command.script.replace("main", "master")

0 comments on commit 0538224

Please sign in to comment.