mirror of
https://github.com/denisidoro/navi
synced 2024-11-22 03:23:05 +00:00
Validate variable names (#29)
This commit is contained in:
parent
d42d192bdd
commit
44c4d9551f
6 changed files with 45 additions and 22 deletions
|
@ -17,7 +17,7 @@ jobs:
|
||||||
<<: *defaults
|
<<: *defaults
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- run: ./test/find_cheats
|
- run: ./test/run
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
version: 2
|
version: 2
|
||||||
|
|
|
@ -1,23 +1,21 @@
|
||||||
% git
|
% git
|
||||||
|
|
||||||
# Set global git user name
|
# Set global git user name
|
||||||
git config --global user.name "<name>"
|
git config --global user.name <name>
|
||||||
|
|
||||||
# Set global git user email
|
# Set global git user email
|
||||||
git config --global user.email "<email>"
|
git config --global user.email <email>
|
||||||
|
|
||||||
# Initializes a git repository
|
# Initializes a git repository
|
||||||
git init
|
git init
|
||||||
|
|
||||||
# Adds a remote for a git repository
|
# Adds a remote for a git repository
|
||||||
git remote add <remote name> <remote URL>
|
git remote add <remote_name> <remote_url>
|
||||||
|
|
||||||
# Checkout to branch
|
# Checkout to branch
|
||||||
# Change branch
|
# Change branch
|
||||||
git checkout <branch>
|
git checkout <branch>
|
||||||
|
|
||||||
$ branch: git branch --format='%(refname:short)'
|
|
||||||
|
|
||||||
# Displays the current status of a git repository
|
# Displays the current status of a git repository
|
||||||
git status
|
git status
|
||||||
|
|
||||||
|
@ -31,22 +29,22 @@ git add <filename>
|
||||||
git add .
|
git add .
|
||||||
|
|
||||||
# Saves the changes to a file in a commit
|
# Saves the changes to a file in a commit
|
||||||
git commit -m "<commit message>"
|
git commit -m "<message>"
|
||||||
|
|
||||||
# Pushes committed changes to remote repository
|
# Pushes committed changes to remote repository
|
||||||
git push -u <remote name> <branch name>
|
git push -u <remote_name> <branch_name>
|
||||||
|
|
||||||
# Pushes changes to a remote repository overwriting another branch
|
# Pushes changes to a remote repository overwriting another branch
|
||||||
git push <remote name> <branch>:<branch to overwrite>
|
git push <remote_name> <branch>:<branch_to_overwrite>
|
||||||
|
|
||||||
# Overwrites remote branch with local branch changes
|
# Overwrites remote branch with local branch changes
|
||||||
git push <remote name> <branch name> -f
|
git push <remote_name> <branch_name> -f
|
||||||
|
|
||||||
# Pulls changes to a remote repo to the local repo
|
# Pulls changes to a remote repo to the local repo
|
||||||
git pull --ff-only
|
git pull --ff-only
|
||||||
|
|
||||||
# Merges changes on one branch into current branch
|
# Merges changes on one branch into current branch
|
||||||
git merge <branch name>
|
git merge <branch_name>
|
||||||
|
|
||||||
# Displays log of commits for a repo
|
# Displays log of commits for a repo
|
||||||
git log
|
git log
|
||||||
|
@ -59,3 +57,5 @@ git clean -dxf
|
||||||
|
|
||||||
# Sign all commits in a branch based on master
|
# Sign all commits in a branch based on master
|
||||||
git rebase master -S -f
|
git rebase master -S -f
|
||||||
|
|
||||||
|
$ branch: git branch --format='%(refname:short)'
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
ARG_REGEX="<[0-9a-zA-Z_]+>"
|
||||||
|
|
||||||
arg::fn() {
|
arg::fn() {
|
||||||
awk -F'---' '{print $1}'
|
awk -F'---' '{print $1}'
|
||||||
}
|
}
|
||||||
|
@ -16,7 +18,7 @@ arg::interpolate() {
|
||||||
}
|
}
|
||||||
|
|
||||||
arg::next() {
|
arg::next() {
|
||||||
grep -Eo '<[0-9a-zA-Z_]+>' \
|
grep -Eo "$ARG_REGEX" \
|
||||||
| head -n1 \
|
| head -n1 \
|
||||||
| tr -d '<' \
|
| tr -d '<' \
|
||||||
| tr -d '>'
|
| tr -d '>'
|
||||||
|
|
|
@ -9,4 +9,11 @@ test::success() {
|
||||||
test::fail() {
|
test::fail() {
|
||||||
echo "Test failed..."
|
echo "Test failed..."
|
||||||
exit 42
|
exit 42
|
||||||
|
}
|
||||||
|
|
||||||
|
test::run() {
|
||||||
|
echo
|
||||||
|
echo "-> $1"
|
||||||
|
shift
|
||||||
|
eval "$*" && test::success || test::fail
|
||||||
}
|
}
|
|
@ -1,10 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
export SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
||||||
source "${SCRIPT_DIR}/test/core.sh"
|
|
||||||
|
|
||||||
cheat::find \
|
|
||||||
| grep -q "docker.cheat" \
|
|
||||||
&& test::success \
|
|
||||||
|| test::fail
|
|
24
test/run
Executable file
24
test/run
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
export SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
|
source "${SCRIPT_DIR}/test/core.sh"
|
||||||
|
|
||||||
|
check_all_vars() {
|
||||||
|
local arg
|
||||||
|
IFS=$'\n'
|
||||||
|
for var in $(cat "$1" | grep -Eo "<[^>]*>"); do
|
||||||
|
if ! echo "$var" | grep -qE "$ARG_REGEX"; then
|
||||||
|
echoerr "$var isn't a valid variable name!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
test::run "We can find at least one known cheatsheet" \
|
||||||
|
'cheat::find | grep -q "docker.cheat"'
|
||||||
|
|
||||||
|
for cheat in $(cheat::find); do
|
||||||
|
test::run "All variables in $(basename $cheat) are valid" \
|
||||||
|
'check_all_vars "$cheat"'
|
||||||
|
done
|
Loading…
Reference in a new issue