2016-02-21 13:26:17 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
# This file is following a name convention defined in:
|
2018-06-20 13:56:25 +00:00
|
|
|
# https://github.com/bats-core/bats-core
|
2016-02-21 13:26:17 +00:00
|
|
|
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
# shellcheck disable=1090
|
2016-06-16 19:34:25 +00:00
|
|
|
source "$SECRET_PROJECT_ROOT/src/version.sh"
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
# shellcheck disable=1090
|
2016-02-21 13:26:17 +00:00
|
|
|
source "$SECRET_PROJECT_ROOT/src/_utils/_git_secret_tools.sh"
|
|
|
|
|
|
|
|
# Constants:
|
|
|
|
FIXTURES_DIR="$BATS_TEST_DIRNAME/fixtures"
|
|
|
|
|
2017-09-13 22:06:16 +00:00
|
|
|
TEST_GPG_HOMEDIR="$BATS_TMPDIR"
|
|
|
|
|
|
|
|
AWK_GPG_GET_FP='
|
|
|
|
BEGIN { OFS=":"; FS=":"; }
|
|
|
|
{
|
|
|
|
if ( $1 == "fpr" )
|
2017-09-12 16:49:24 +00:00
|
|
|
{
|
2017-09-13 22:06:16 +00:00
|
|
|
print $10
|
|
|
|
exit
|
2017-09-12 16:49:24 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
'
|
|
|
|
|
2016-02-21 13:26:17 +00:00
|
|
|
# GPG-based stuff:
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
: "${SECRETS_GPG_COMMAND:="gpg"}"
|
2017-03-05 21:46:49 +00:00
|
|
|
|
|
|
|
# This command is used with absolute homedir set and disabled warnings:
|
2017-09-13 22:06:16 +00:00
|
|
|
GPGTEST="$SECRETS_GPG_COMMAND --homedir=$TEST_GPG_HOMEDIR --no-permission-warning --batch"
|
2017-09-12 16:49:24 +00:00
|
|
|
|
2016-02-21 13:26:17 +00:00
|
|
|
|
|
|
|
# Personal data:
|
2016-05-29 10:56:48 +00:00
|
|
|
|
2018-07-17 16:01:16 +00:00
|
|
|
# user3 created with '--quick-key-generate' and has only an email, no username.
|
|
|
|
TEST_DEFAULT_USER="user3"
|
|
|
|
TEST_SECOND_USER="user2"
|
|
|
|
TEST_ATTACKER_USER="attacker1"
|
2016-02-21 13:26:17 +00:00
|
|
|
|
2018-07-14 19:23:17 +00:00
|
|
|
#TEST_DEFAULT_FILENAME="file_one" # no spaces
|
|
|
|
#TEST_SECOND_FILENAME="file_two" # no spaces
|
|
|
|
#TEST_THIRD_FILENAME="file_three" # no spaces
|
|
|
|
|
|
|
|
TEST_DEFAULT_FILENAME="space file" # has spaces
|
|
|
|
TEST_SECOND_FILENAME="space file two" # has spaces
|
|
|
|
TEST_THIRD_FILENAME="space file three" # has spaces
|
|
|
|
|
|
|
|
|
2016-02-21 13:26:17 +00:00
|
|
|
function test_user_password {
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
# It was set on key creation:
|
2016-02-21 13:26:17 +00:00
|
|
|
echo "${1}pass"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function test_user_email {
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
# It was set on key creation:
|
2016-02-21 13:26:17 +00:00
|
|
|
echo "${1}@gitsecret.io"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# GPG:
|
|
|
|
|
2017-09-12 16:49:24 +00:00
|
|
|
function stop_gpg_agent {
|
|
|
|
local username=$(id -u -n)
|
2017-09-28 15:13:06 +00:00
|
|
|
ps -wx -U "$username" | gawk \
|
2017-09-13 22:06:16 +00:00
|
|
|
'/gpg-agent --homedir/ { if ( $0 !~ "awk" ) { system("kill -9 "$1) } }' \
|
2017-09-12 16:49:24 +00:00
|
|
|
> /dev/null 2>&1
|
|
|
|
}
|
|
|
|
|
2017-09-13 22:06:16 +00:00
|
|
|
|
2017-09-12 16:49:24 +00:00
|
|
|
function get_gpgtest_prefix {
|
|
|
|
if [[ $GPG_VER_21 -eq 1 ]]; then
|
|
|
|
echo "echo \"$(test_user_password $1)\" | "
|
|
|
|
else
|
|
|
|
echo ""
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2017-09-13 22:06:16 +00:00
|
|
|
|
2016-06-16 19:34:25 +00:00
|
|
|
function get_gpg_fingerprint_by_email {
|
2016-02-21 13:26:17 +00:00
|
|
|
local email="$1"
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
local fingerprint
|
|
|
|
|
2017-09-27 19:48:35 +00:00
|
|
|
fingerprint=$($GPGTEST --with-fingerprint \
|
|
|
|
--with-colon \
|
|
|
|
--list-secret-key $email | gawk "$AWK_GPG_GET_FP")
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
echo "$fingerprint"
|
2016-02-21 13:26:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function install_fixture_key {
|
|
|
|
local public_key="$BATS_TMPDIR/public-${1}.key"
|
|
|
|
|
2017-09-12 16:49:24 +00:00
|
|
|
\cp "$FIXTURES_DIR/gpg/${1}/public.key" "$public_key"
|
2016-02-21 13:26:17 +00:00
|
|
|
$GPGTEST --import "$public_key" > /dev/null 2>&1
|
|
|
|
rm -f "$public_key"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function install_fixture_full_key {
|
|
|
|
local private_key="$BATS_TMPDIR/private-${1}.key"
|
2017-09-12 16:49:24 +00:00
|
|
|
local gpgtest_prefix="$(get_gpgtest_prefix $1)"
|
|
|
|
local gpgtest_import="$gpgtest_prefix $GPGTEST"
|
2017-09-13 22:06:16 +00:00
|
|
|
local email
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
local fp
|
|
|
|
local fingerprint
|
|
|
|
|
2017-09-13 22:06:16 +00:00
|
|
|
email=$(test_user_email "$1")
|
2016-02-21 13:26:17 +00:00
|
|
|
|
2017-09-13 22:06:16 +00:00
|
|
|
\cp "$FIXTURES_DIR/gpg/${1}/private.key" "$private_key"
|
2016-02-21 13:26:17 +00:00
|
|
|
|
2017-09-13 22:06:16 +00:00
|
|
|
bash -c "$gpgtest_import --allow-secret-key-import \
|
|
|
|
--import \"$private_key\"" > /dev/null 2>&1
|
2016-04-10 11:14:41 +00:00
|
|
|
|
|
|
|
# since 0.1.2 fingerprint is returned:
|
2017-09-27 19:48:35 +00:00
|
|
|
fingerprint=$(get_gpg_fingerprint_by_email $email)
|
2016-04-10 11:14:41 +00:00
|
|
|
|
2016-02-21 13:26:17 +00:00
|
|
|
install_fixture_key "$1"
|
2016-04-10 11:14:41 +00:00
|
|
|
|
2017-09-13 22:06:16 +00:00
|
|
|
rm -f "$private_key"
|
2016-04-10 11:14:41 +00:00
|
|
|
# return fingerprint to delete it later:
|
|
|
|
echo "$fingerprint"
|
2016-02-21 13:26:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function uninstall_fixture_key {
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
local email
|
|
|
|
|
|
|
|
email=$(test_user_email "$1")
|
2017-09-13 22:06:16 +00:00
|
|
|
$GPGTEST --yes --delete-key "$email" > /dev/null 2>&1
|
2016-02-21 13:26:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function uninstall_fixture_full_key {
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
local email
|
|
|
|
email=$(test_user_email "$1")
|
2016-04-10 11:14:41 +00:00
|
|
|
|
|
|
|
local fingerprint="$2"
|
|
|
|
if [[ -z "$fingerprint" ]]; then
|
|
|
|
# see issue_12, fingerprint on `gpg2` has different format:
|
2016-10-03 15:44:37 +00:00
|
|
|
fingerprint=$(get_gpg_fingerprint_by_email "$email")
|
2016-04-10 11:14:41 +00:00
|
|
|
fi
|
|
|
|
|
2017-09-13 22:06:16 +00:00
|
|
|
$GPGTEST --yes \
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
--delete-secret-keys "$fingerprint" > /dev/null 2>&1
|
2016-02-21 13:26:17 +00:00
|
|
|
|
|
|
|
uninstall_fixture_key "$1"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Git:
|
2016-05-29 10:56:48 +00:00
|
|
|
|
2016-02-21 13:26:17 +00:00
|
|
|
function git_set_config_email {
|
|
|
|
git config --local user.email "$1"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2016-05-29 10:56:48 +00:00
|
|
|
function git_commit {
|
|
|
|
git_set_config_email "$1"
|
2016-06-16 19:34:25 +00:00
|
|
|
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
local user_name
|
|
|
|
local commit_gpgsign
|
|
|
|
|
|
|
|
user_name=$(git config user.name)
|
|
|
|
|
|
|
|
commit_gpgsign=$(git config commit.gpgsign)
|
2016-06-16 19:34:25 +00:00
|
|
|
|
|
|
|
git config --local user.name "$TEST_DEFAULT_USER"
|
|
|
|
git config --local commit.gpgsign false
|
2016-05-29 10:56:48 +00:00
|
|
|
|
|
|
|
git add --all
|
|
|
|
git commit -m "$2"
|
2016-06-16 19:34:25 +00:00
|
|
|
|
|
|
|
git config --local user.name "$user_name"
|
|
|
|
git config --local commit.gpgsign "$commit_gpgsign"
|
2016-05-29 10:56:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2016-02-21 13:26:17 +00:00
|
|
|
function remove_git_repository {
|
|
|
|
rm -rf ".git"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Git Secret:
|
2016-05-29 10:56:48 +00:00
|
|
|
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
function set_state_initial {
|
|
|
|
cd "$BATS_TMPDIR" || exit 1
|
2017-03-05 21:46:49 +00:00
|
|
|
rm -rf "${BATS_TMPDIR:?}/*"
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2016-02-21 13:26:17 +00:00
|
|
|
function set_state_git {
|
|
|
|
git init > /dev/null 2>&1
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function set_state_secret_init {
|
|
|
|
git secret init > /dev/null 2>&1
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function set_state_secret_tell {
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
local email
|
|
|
|
|
|
|
|
email=$(test_user_email "$1")
|
2016-02-21 13:26:17 +00:00
|
|
|
git secret tell -d "$TEST_GPG_HOMEDIR" "$email" > /dev/null 2>&1
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function set_state_secret_add {
|
|
|
|
local filename="$1"
|
|
|
|
local content="$2"
|
|
|
|
echo "$content" > "$filename"
|
|
|
|
echo "$filename" >> ".gitignore"
|
|
|
|
|
|
|
|
git secret add "$filename" > /dev/null 2>&1
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function set_state_secret_hide {
|
|
|
|
git secret hide > /dev/null 2>&1
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function unset_current_state {
|
|
|
|
# states order:
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
# initial, git, secret_init, secret_tell, secret_add, secret_hide
|
2016-02-21 13:26:17 +00:00
|
|
|
|
|
|
|
# unsets `secret_hide`
|
|
|
|
# removes .secret files:
|
|
|
|
git secret clean > /dev/null 2>&1
|
|
|
|
|
2017-03-05 21:46:49 +00:00
|
|
|
# unsets `secret_add`, `secret_tell` and `secret_init` by removing $_SECRETS_DIR
|
|
|
|
local secrets_dir
|
|
|
|
secrets_dir=$(_get_secrets_dir)
|
|
|
|
|
|
|
|
rm -rf "$secrets_dir"
|
2016-02-21 13:26:17 +00:00
|
|
|
rm -rf ".gitignore"
|
|
|
|
|
|
|
|
# unsets `git` state
|
|
|
|
remove_git_repository
|
|
|
|
|
2017-09-13 22:06:16 +00:00
|
|
|
# stop gpg-agent
|
|
|
|
stop_gpg_agent
|
|
|
|
|
2016-02-21 13:26:17 +00:00
|
|
|
# removes gpg homedir:
|
2017-09-13 22:06:16 +00:00
|
|
|
find "$TEST_GPG_HOMEDIR" \
|
2017-09-23 23:58:25 +00:00
|
|
|
-regex ".*\/random_seed\|.*\.gpg\|.*\.kbx.?\|.*private-keys.*\|.*test_sub_dir\|.*S.gpg-agent\|.*file_to_hide.*" \
|
|
|
|
-exec rm -rf {} +
|
Version 0.2.2 pre-release
There are a lot of changes, multiple things were refactored: tests,
some commands, building and meta.
Several critical bugs fixed.
Changes:
1. Fixed #74, when `_user_required` was not working after reimporting keys
2. Closes #73, now it is possible to provide multiple emails to the `killperson` command
3. Closes #72, now it is possible to provide multiple emails to the `tell` command
4. Closes #71, now every doc in this project refer to `git-secret.io` instead of old `gh-pages` website
5. Closes #70, now installation section is removed from main `man` file
6. Closes #69, now "See also" section in the `man`s are clickable
7. Closes #61, added "Manual" section to the manuals
8. Refs #38, added `centos` Dockerfile, but `ci` testing is still failing
9. Refs #52, tests are refactored. Added `clean` command tests, removed a lot of hardcoded things, moved tests execution from `./temp` folder to `/tmp`, added a lot of new check in old tests, and some new test cases
10. Refactored `hide` and `clean` commands to be shorter
11. `shellcheck` is now supported with `make lint`
Additional features are not comming to 0.2.2 after this commit.
2017-02-26 13:38:46 +00:00
|
|
|
|
|
|
|
# return to the base dir:
|
|
|
|
cd "$SECRET_PROJECT_ROOT" || exit 1
|
2016-02-21 13:26:17 +00:00
|
|
|
}
|