From 4c6045701082c8b5b27b5a9387e9a13c5a5f6779 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 12:25:04 +0200
Subject: [PATCH 01/20] "added the base tests"
---
tests/arguments_test.sh | 5 +
tests/shunit2 | 1343 +++++++++++++++++++++++++++++++++++++++
2 files changed, 1348 insertions(+)
create mode 100755 tests/arguments_test.sh
create mode 100755 tests/shunit2
diff --git a/tests/arguments_test.sh b/tests/arguments_test.sh
new file mode 100755
index 0000000..c0ba65f
--- /dev/null
+++ b/tests/arguments_test.sh
@@ -0,0 +1,5 @@
+#! /bin/sh
+# file: examples/arguments_test.sh
+
+# Load and run shUnit2.
+. tests/shunit2
diff --git a/tests/shunit2 b/tests/shunit2
new file mode 100755
index 0000000..6239683
--- /dev/null
+++ b/tests/shunit2
@@ -0,0 +1,1343 @@
+#! /bin/sh
+# vim:et:ft=sh:sts=2:sw=2
+#
+# Copyright 2008-2020 Kate Ward. All Rights Reserved.
+# Released under the Apache 2.0 license.
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# shUnit2 -- Unit testing framework for Unix shell scripts.
+# https://github.com/kward/shunit2
+#
+# Author: kate.ward@forestent.com (Kate Ward)
+#
+# shUnit2 is a xUnit based unit test framework for Bourne shell scripts. It is
+# based on the popular JUnit unit testing framework for Java.
+#
+# $() are not fully portable (POSIX != portable).
+# shellcheck disable=SC2006
+# expr may be antiquated, but it is the only solution in some cases.
+# shellcheck disable=SC2003
+
+# Return if shunit2 already loaded.
+command [ -n "${SHUNIT_VERSION:-}" ] && exit 0
+SHUNIT_VERSION='2.1.8'
+
+# Return values that scripts can use.
+SHUNIT_TRUE=0
+SHUNIT_FALSE=1
+SHUNIT_ERROR=2
+
+# Logging functions.
+_shunit_warn() {
+ ${__SHUNIT_CMD_ECHO_ESC} \
+ "${__shunit_ansi_yellow}shunit2:WARN${__shunit_ansi_none} $*" >&2
+}
+_shunit_error() {
+ ${__SHUNIT_CMD_ECHO_ESC} \
+ "${__shunit_ansi_red}shunit2:ERROR${__shunit_ansi_none} $*" >&2
+}
+_shunit_fatal() {
+ ${__SHUNIT_CMD_ECHO_ESC} \
+ "${__shunit_ansi_red}shunit2:FATAL${__shunit_ansi_none} $*" >&2
+ exit ${SHUNIT_ERROR}
+}
+
+# Determine some reasonable command defaults.
+__SHUNIT_CMD_ECHO_ESC='echo -e'
+# shellcheck disable=SC2039
+command [ "`echo -e test`" = '-e test' ] && __SHUNIT_CMD_ECHO_ESC='echo'
+
+__SHUNIT_UNAME_S=`uname -s`
+case "${__SHUNIT_UNAME_S}" in
+ BSD) __SHUNIT_CMD_EXPR='gexpr' ;;
+ *) __SHUNIT_CMD_EXPR='expr' ;;
+esac
+__SHUNIT_CMD_TPUT='tput'
+
+# Commands a user can override if needed.
+SHUNIT_CMD_EXPR=${SHUNIT_CMD_EXPR:-${__SHUNIT_CMD_EXPR}}
+SHUNIT_CMD_TPUT=${SHUNIT_CMD_TPUT:-${__SHUNIT_CMD_TPUT}}
+
+# Enable color output. Options are 'never', 'always', or 'auto'.
+SHUNIT_COLOR=${SHUNIT_COLOR:-auto}
+
+# Specific shell checks.
+if command [ -n "${ZSH_VERSION:-}" ]; then
+ setopt |grep "^shwordsplit$" >/dev/null
+ if command [ $? -ne ${SHUNIT_TRUE} ]; then
+ _shunit_fatal 'zsh shwordsplit option is required for proper operation'
+ fi
+ if command [ -z "${SHUNIT_PARENT:-}" ]; then
+ _shunit_fatal "zsh does not pass \$0 through properly. please declare \
+\"SHUNIT_PARENT=\$0\" before calling shUnit2"
+ fi
+fi
+
+#
+# Constants
+#
+
+__SHUNIT_MODE_SOURCED='sourced'
+__SHUNIT_MODE_STANDALONE='standalone'
+__SHUNIT_PARENT=${SHUNIT_PARENT:-$0}
+
+# User provided test prefix to display in front of the name of the test being
+# executed. Define by setting the SHUNIT_TEST_PREFIX variable.
+__SHUNIT_TEST_PREFIX=${SHUNIT_TEST_PREFIX:-}
+
+# ANSI colors.
+__SHUNIT_ANSI_NONE='\033[0m'
+__SHUNIT_ANSI_RED='\033[1;31m'
+__SHUNIT_ANSI_GREEN='\033[1;32m'
+__SHUNIT_ANSI_YELLOW='\033[1;33m'
+__SHUNIT_ANSI_CYAN='\033[1;36m'
+
+# Set the constants readonly.
+__shunit_constants=`set |grep '^__SHUNIT_' |cut -d= -f1`
+echo "${__shunit_constants}" |grep '^Binary file' >/dev/null && \
+ __shunit_constants=`set |grep -a '^__SHUNIT_' |cut -d= -f1`
+for __shunit_const in ${__shunit_constants}; do
+ if command [ -z "${ZSH_VERSION:-}" ]; then
+ readonly "${__shunit_const}"
+ else
+ case ${ZSH_VERSION} in
+ [123].*) readonly "${__shunit_const}" ;;
+ *) readonly -g "${__shunit_const}" # Declare readonly constants globally.
+ esac
+ fi
+done
+unset __shunit_const __shunit_constants
+
+#
+# Internal variables.
+#
+
+# Variables.
+__shunit_lineno='' # Line number of executed test.
+__shunit_mode=${__SHUNIT_MODE_SOURCED} # Operating mode.
+__shunit_reportGenerated=${SHUNIT_FALSE} # Is report generated.
+__shunit_script='' # Filename of unittest script (standalone mode).
+__shunit_skip=${SHUNIT_FALSE} # Is skipping enabled.
+__shunit_suite='' # Suite of tests to execute.
+__shunit_clean=${SHUNIT_FALSE} # _shunit_cleanup() was already called.
+
+# ANSI colors (populated by _shunit_configureColor()).
+__shunit_ansi_none=''
+__shunit_ansi_red=''
+__shunit_ansi_green=''
+__shunit_ansi_yellow=''
+__shunit_ansi_cyan=''
+
+# Counts of tests.
+__shunit_testSuccess=${SHUNIT_TRUE}
+__shunit_testsTotal=0
+__shunit_testsPassed=0
+__shunit_testsFailed=0
+
+# Counts of asserts.
+__shunit_assertsTotal=0
+__shunit_assertsPassed=0
+__shunit_assertsFailed=0
+__shunit_assertsSkipped=0
+
+#
+# Macros.
+#
+
+# shellcheck disable=SC2016,SC2089
+_SHUNIT_LINENO_='eval __shunit_lineno=""; if command [ "${1:-}" = "--lineno" ]; then command [ -n "$2" ] && __shunit_lineno="[$2] "; shift 2; fi'
+
+#-----------------------------------------------------------------------------
+# Assertion functions.
+#
+
+# Assert that two values are equal to one another.
+#
+# Args:
+# message: string: failure message [optional]
+# expected: string: expected value
+# actual: string: actual value
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+assertEquals() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error "assertEquals() requires two or three arguments; $# given"
+ _shunit_assertFail
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 3 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ shunit_expected_=$1
+ shunit_actual_=$2
+
+ shunit_return=${SHUNIT_TRUE}
+ if command [ "${shunit_expected_}" = "${shunit_actual_}" ]; then
+ _shunit_assertPass
+ else
+ failNotEquals "${shunit_message_}" "${shunit_expected_}" "${shunit_actual_}"
+ shunit_return=${SHUNIT_FALSE}
+ fi
+
+ unset shunit_message_ shunit_expected_ shunit_actual_
+ return ${shunit_return}
+}
+# shellcheck disable=SC2016,SC2034
+_ASSERT_EQUALS_='eval assertEquals --lineno "${LINENO:-}"'
+
+# Assert that two values are not equal to one another.
+#
+# Args:
+# message: string: failure message [optional]
+# expected: string: expected value
+# actual: string: actual value
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+assertNotEquals() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error "assertNotEquals() requires two or three arguments; $# given"
+ _shunit_assertFail
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 3 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ shunit_expected_=$1
+ shunit_actual_=$2
+
+ shunit_return=${SHUNIT_TRUE}
+ if command [ "${shunit_expected_}" != "${shunit_actual_}" ]; then
+ _shunit_assertPass
+ else
+ failSame "${shunit_message_}" "${shunit_expected_}" "${shunit_actual_}"
+ shunit_return=${SHUNIT_FALSE}
+ fi
+
+ unset shunit_message_ shunit_expected_ shunit_actual_
+ return ${shunit_return}
+}
+# shellcheck disable=SC2016,SC2034
+_ASSERT_NOT_EQUALS_='eval assertNotEquals --lineno "${LINENO:-}"'
+
+# Assert that a container contains a content.
+#
+# Args:
+# message: string: failure message [optional]
+# container: string: container to analyze
+# content: string: content to find
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+assertContains() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error "assertContains() requires two or three arguments; $# given"
+ _shunit_assertFail
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 3 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ shunit_container_=$1
+ shunit_content_=$2
+
+ shunit_return=${SHUNIT_TRUE}
+ if echo "$shunit_container_" | grep -F -- "$shunit_content_" > /dev/null; then
+ _shunit_assertPass
+ else
+ failNotFound "${shunit_message_}" "${shunit_content_}"
+ shunit_return=${SHUNIT_FALSE}
+ fi
+
+ unset shunit_message_ shunit_container_ shunit_content_
+ return ${shunit_return}
+}
+# shellcheck disable=SC2016,SC2034
+_ASSERT_CONTAINS_='eval assertContains --lineno "${LINENO:-}"'
+
+# Assert that a container does not contain a content.
+#
+# Args:
+# message: string: failure message [optional]
+# container: string: container to analyze
+# content: string: content to look for
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+assertNotContains() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error "assertNotContains() requires two or three arguments; $# given"
+ _shunit_assertFail
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 3 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ shunit_container_=$1
+ shunit_content_=$2
+
+ shunit_return=${SHUNIT_TRUE}
+ if echo "$shunit_container_" | grep -F -- "$shunit_content_" > /dev/null; then
+ failFound "${shunit_message_}" "${shunit_content_}"
+ shunit_return=${SHUNIT_FALSE}
+ else
+ _shunit_assertPass
+ fi
+
+ unset shunit_message_ shunit_container_ shunit_content_
+ return ${shunit_return}
+}
+# shellcheck disable=SC2016,SC2034
+_ASSERT_NOT_CONTAINS_='eval assertNotContains --lineno "${LINENO:-}"'
+
+# Assert that a value is null (i.e. an empty string)
+#
+# Args:
+# message: string: failure message [optional]
+# actual: string: actual value
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+assertNull() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 1 -o $# -gt 2 ]; then
+ _shunit_error "assertNull() requires one or two arguments; $# given"
+ _shunit_assertFail
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 2 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ assertTrue "${shunit_message_}" "[ -z '$1' ]"
+ shunit_return=$?
+
+ unset shunit_message_
+ return ${shunit_return}
+}
+# shellcheck disable=SC2016,SC2034
+_ASSERT_NULL_='eval assertNull --lineno "${LINENO:-}"'
+
+# Assert that a value is not null (i.e. a non-empty string)
+#
+# Args:
+# message: string: failure message [optional]
+# actual: string: actual value
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+assertNotNull() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -gt 2 ]; then # allowing 0 arguments as $1 might actually be null
+ _shunit_error "assertNotNull() requires one or two arguments; $# given"
+ _shunit_assertFail
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 2 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ shunit_actual_=`_shunit_escapeCharactersInString "${1:-}"`
+ test -n "${shunit_actual_}"
+ assertTrue "${shunit_message_}" $?
+ shunit_return=$?
+
+ unset shunit_actual_ shunit_message_
+ return ${shunit_return}
+}
+# shellcheck disable=SC2016,SC2034
+_ASSERT_NOT_NULL_='eval assertNotNull --lineno "${LINENO:-}"'
+
+# Assert that two values are the same (i.e. equal to one another).
+#
+# Args:
+# message: string: failure message [optional]
+# expected: string: expected value
+# actual: string: actual value
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+assertSame() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error "assertSame() requires two or three arguments; $# given"
+ _shunit_assertFail
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 3 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ assertEquals "${shunit_message_}" "$1" "$2"
+ shunit_return=$?
+
+ unset shunit_message_
+ return ${shunit_return}
+}
+# shellcheck disable=SC2016,SC2034
+_ASSERT_SAME_='eval assertSame --lineno "${LINENO:-}"'
+
+# Assert that two values are not the same (i.e. not equal to one another).
+#
+# Args:
+# message: string: failure message [optional]
+# expected: string: expected value
+# actual: string: actual value
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+assertNotSame() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error "assertNotSame() requires two or three arguments; $# given"
+ _shunit_assertFail
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 3 ]; then
+ shunit_message_="${shunit_message_:-}$1"
+ shift
+ fi
+ assertNotEquals "${shunit_message_}" "$1" "$2"
+ shunit_return=$?
+
+ unset shunit_message_
+ return ${shunit_return}
+}
+# shellcheck disable=SC2016,SC2034
+_ASSERT_NOT_SAME_='eval assertNotSame --lineno "${LINENO:-}"'
+
+# Assert that a value or shell test condition is true.
+#
+# In shell, a value of 0 is true and a non-zero value is false. Any integer
+# value passed can thereby be tested.
+#
+# Shell supports much more complicated tests though, and a means to support
+# them was needed. As such, this function tests that conditions are true or
+# false through evaluation rather than just looking for a true or false.
+#
+# The following test will succeed:
+# assertTrue 0
+# assertTrue "[ 34 -gt 23 ]"
+# The following test will fail with a message:
+# assertTrue 123
+# assertTrue "test failed" "[ -r '/non/existent/file' ]"
+#
+# Args:
+# message: string: failure message [optional]
+# condition: string: integer value or shell conditional statement
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+assertTrue() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 1 -o $# -gt 2 ]; then
+ _shunit_error "assertTrue() takes one or two arguments; $# given"
+ _shunit_assertFail
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 2 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ shunit_condition_=$1
+
+ # See if condition is an integer, i.e. a return value.
+ shunit_match_=`expr "${shunit_condition_}" : '\([0-9]*\)'`
+ shunit_return=${SHUNIT_TRUE}
+ if command [ -z "${shunit_condition_}" ]; then
+ # Null condition.
+ shunit_return=${SHUNIT_FALSE}
+ elif command [ -n "${shunit_match_}" -a "${shunit_condition_}" = "${shunit_match_}" ]
+ then
+ # Possible return value. Treating 0 as true, and non-zero as false.
+ command [ "${shunit_condition_}" -ne 0 ] && shunit_return=${SHUNIT_FALSE}
+ else
+ # Hopefully... a condition.
+ ( eval "${shunit_condition_}" ) >/dev/null 2>&1
+ command [ $? -ne 0 ] && shunit_return=${SHUNIT_FALSE}
+ fi
+
+ # Record the test.
+ if command [ ${shunit_return} -eq ${SHUNIT_TRUE} ]; then
+ _shunit_assertPass
+ else
+ _shunit_assertFail "${shunit_message_}"
+ fi
+
+ unset shunit_message_ shunit_condition_ shunit_match_
+ return ${shunit_return}
+}
+# shellcheck disable=SC2016,SC2034
+_ASSERT_TRUE_='eval assertTrue --lineno "${LINENO:-}"'
+
+# Assert that a value or shell test condition is false.
+#
+# In shell, a value of 0 is true and a non-zero value is false. Any integer
+# value passed can thereby be tested.
+#
+# Shell supports much more complicated tests though, and a means to support
+# them was needed. As such, this function tests that conditions are true or
+# false through evaluation rather than just looking for a true or false.
+#
+# The following test will succeed:
+# assertFalse 1
+# assertFalse "[ 'apples' = 'oranges' ]"
+# The following test will fail with a message:
+# assertFalse 0
+# assertFalse "test failed" "[ 1 -eq 1 -a 2 -eq 2 ]"
+#
+# Args:
+# message: string: failure message [optional]
+# condition: string: integer value or shell conditional statement
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+assertFalse() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 1 -o $# -gt 2 ]; then
+ _shunit_error "assertFalse() requires one or two arguments; $# given"
+ _shunit_assertFail
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 2 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ shunit_condition_=$1
+
+ # See if condition is an integer, i.e. a return value.
+ shunit_match_=`expr "${shunit_condition_}" : '\([0-9]*\)'`
+ shunit_return=${SHUNIT_TRUE}
+ if command [ -z "${shunit_condition_}" ]; then
+ # Null condition.
+ shunit_return=${SHUNIT_FALSE}
+ elif command [ -n "${shunit_match_}" -a "${shunit_condition_}" = "${shunit_match_}" ]
+ then
+ # Possible return value. Treating 0 as true, and non-zero as false.
+ command [ "${shunit_condition_}" -eq 0 ] && shunit_return=${SHUNIT_FALSE}
+ else
+ # Hopefully... a condition.
+ ( eval "${shunit_condition_}" ) >/dev/null 2>&1
+ command [ $? -eq 0 ] && shunit_return=${SHUNIT_FALSE}
+ fi
+
+ # Record the test.
+ if command [ "${shunit_return}" -eq "${SHUNIT_TRUE}" ]; then
+ _shunit_assertPass
+ else
+ _shunit_assertFail "${shunit_message_}"
+ fi
+
+ unset shunit_message_ shunit_condition_ shunit_match_
+ return "${shunit_return}"
+}
+# shellcheck disable=SC2016,SC2034
+_ASSERT_FALSE_='eval assertFalse --lineno "${LINENO:-}"'
+
+#-----------------------------------------------------------------------------
+# Failure functions.
+#
+
+# Records a test failure.
+#
+# Args:
+# message: string: failure message [optional]
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+fail() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -gt 1 ]; then
+ _shunit_error "fail() requires zero or one arguments; $# given"
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 1 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+
+ _shunit_assertFail "${shunit_message_}"
+
+ unset shunit_message_
+ return ${SHUNIT_FALSE}
+}
+# shellcheck disable=SC2016,SC2034
+_FAIL_='eval fail --lineno "${LINENO:-}"'
+
+# Records a test failure, stating two values were not equal.
+#
+# Args:
+# message: string: failure message [optional]
+# expected: string: expected value
+# actual: string: actual value
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+failNotEquals() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error "failNotEquals() requires one or two arguments; $# given"
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 3 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ shunit_expected_=$1
+ shunit_actual_=$2
+
+ shunit_message_=${shunit_message_%% }
+ _shunit_assertFail "${shunit_message_:+${shunit_message_} }expected:<${shunit_expected_}> but was:<${shunit_actual_}>"
+
+ unset shunit_message_ shunit_expected_ shunit_actual_
+ return ${SHUNIT_FALSE}
+}
+# shellcheck disable=SC2016,SC2034
+_FAIL_NOT_EQUALS_='eval failNotEquals --lineno "${LINENO:-}"'
+
+# Records a test failure, stating a value was found.
+#
+# Args:
+# message: string: failure message [optional]
+# content: string: found value
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+failFound() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 1 -o $# -gt 2 ]; then
+ _shunit_error "failFound() requires one or two arguments; $# given"
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 2 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+
+ shunit_message_=${shunit_message_%% }
+ _shunit_assertFail "${shunit_message_:+${shunit_message_} }Found"
+
+ unset shunit_message_
+ return ${SHUNIT_FALSE}
+}
+# shellcheck disable=SC2016,SC2034
+_FAIL_FOUND_='eval failFound --lineno "${LINENO:-}"'
+
+# Records a test failure, stating a content was not found.
+#
+# Args:
+# message: string: failure message [optional]
+# content: string: content not found
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+failNotFound() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 1 -o $# -gt 2 ]; then
+ _shunit_error "failNotFound() requires one or two arguments; $# given"
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 2 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ shunit_content_=$1
+
+ shunit_message_=${shunit_message_%% }
+ _shunit_assertFail "${shunit_message_:+${shunit_message_} }Not found:<${shunit_content_}>"
+
+ unset shunit_message_ shunit_content_
+ return ${SHUNIT_FALSE}
+}
+# shellcheck disable=SC2016,SC2034
+_FAIL_NOT_FOUND_='eval failNotFound --lineno "${LINENO:-}"'
+
+# Records a test failure, stating two values should have been the same.
+#
+# Args:
+# message: string: failure message [optional]
+# expected: string: expected value
+# actual: string: actual value
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+failSame()
+{
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error "failSame() requires two or three arguments; $# given"
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 3 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+
+ shunit_message_=${shunit_message_%% }
+ _shunit_assertFail "${shunit_message_:+${shunit_message_} }expected not same"
+
+ unset shunit_message_
+ return ${SHUNIT_FALSE}
+}
+# shellcheck disable=SC2016,SC2034
+_FAIL_SAME_='eval failSame --lineno "${LINENO:-}"'
+
+# Records a test failure, stating two values were not equal.
+#
+# This is functionally equivalent to calling failNotEquals().
+#
+# Args:
+# message: string: failure message [optional]
+# expected: string: expected value
+# actual: string: actual value
+# Returns:
+# integer: success (TRUE/FALSE/ERROR constant)
+failNotSame() {
+ # shellcheck disable=SC2090
+ ${_SHUNIT_LINENO_}
+ if command [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error "failNotSame() requires one or two arguments; $# given"
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ shunit_message_=${__shunit_lineno}
+ if command [ $# -eq 3 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ failNotEquals "${shunit_message_}" "$1" "$2"
+ shunit_return=$?
+
+ unset shunit_message_
+ return ${shunit_return}
+}
+# shellcheck disable=SC2016,SC2034
+_FAIL_NOT_SAME_='eval failNotSame --lineno "${LINENO:-}"'
+
+#-----------------------------------------------------------------------------
+# Skipping functions.
+#
+
+# Force remaining assert and fail functions to be "skipped".
+#
+# This function forces the remaining assert and fail functions to be "skipped",
+# i.e. they will have no effect. Each function skipped will be recorded so that
+# the total of asserts and fails will not be altered.
+#
+# Args:
+# None
+startSkipping() { __shunit_skip=${SHUNIT_TRUE}; }
+
+# Resume the normal recording behavior of assert and fail calls.
+#
+# Args:
+# None
+endSkipping() { __shunit_skip=${SHUNIT_FALSE}; }
+
+# Returns the state of assert and fail call skipping.
+#
+# Args:
+# None
+# Returns:
+# boolean: (TRUE/FALSE constant)
+isSkipping() { return ${__shunit_skip}; }
+
+#-----------------------------------------------------------------------------
+# Suite functions.
+#
+
+# Stub. This function should contains all unit test calls to be made.
+#
+# DEPRECATED (as of 2.1.0)
+#
+# This function can be optionally overridden by the user in their test suite.
+#
+# If this function exists, it will be called when shunit2 is sourced. If it
+# does not exist, shunit2 will search the parent script for all functions
+# beginning with the word 'test', and they will be added dynamically to the
+# test suite.
+#
+# This function should be overridden by the user in their unit test suite.
+# Note: see _shunit_mktempFunc() for actual implementation
+#
+# Args:
+# None
+#suite() { :; } # DO NOT UNCOMMENT THIS FUNCTION
+
+# Adds a function name to the list of tests schedule for execution.
+#
+# This function should only be called from within the suite() function.
+#
+# Args:
+# function: string: name of a function to add to current unit test suite
+suite_addTest() {
+ shunit_func_=${1:-}
+
+ __shunit_suite="${__shunit_suite:+${__shunit_suite} }${shunit_func_}"
+ __shunit_testsTotal=`expr ${__shunit_testsTotal} + 1`
+
+ unset shunit_func_
+}
+
+# Stub. This function will be called once before any tests are run.
+#
+# Common one-time environment preparation tasks shared by all tests can be
+# defined here.
+#
+# This function should be overridden by the user in their unit test suite.
+# Note: see _shunit_mktempFunc() for actual implementation
+#
+# Args:
+# None
+#oneTimeSetUp() { :; } # DO NOT UNCOMMENT THIS FUNCTION
+
+# Stub. This function will be called once after all tests are finished.
+#
+# Common one-time environment cleanup tasks shared by all tests can be defined
+# here.
+#
+# This function should be overridden by the user in their unit test suite.
+# Note: see _shunit_mktempFunc() for actual implementation
+#
+# Args:
+# None
+#oneTimeTearDown() { :; } # DO NOT UNCOMMENT THIS FUNCTION
+
+# Stub. This function will be called before each test is run.
+#
+# Common environment preparation tasks shared by all tests can be defined here.
+#
+# This function should be overridden by the user in their unit test suite.
+# Note: see _shunit_mktempFunc() for actual implementation
+#
+# Args:
+# None
+#setUp() { :; } # DO NOT UNCOMMENT THIS FUNCTION
+
+# Note: see _shunit_mktempFunc() for actual implementation
+# Stub. This function will be called after each test is run.
+#
+# Common environment cleanup tasks shared by all tests can be defined here.
+#
+# This function should be overridden by the user in their unit test suite.
+# Note: see _shunit_mktempFunc() for actual implementation
+#
+# Args:
+# None
+#tearDown() { :; } # DO NOT UNCOMMENT THIS FUNCTION
+
+#------------------------------------------------------------------------------
+# Internal shUnit2 functions.
+#
+
+# Create a temporary directory to store various run-time files in.
+#
+# This function is a cross-platform temporary directory creation tool. Not all
+# OSes have the `mktemp` function, so one is included here.
+#
+# Args:
+# None
+# Outputs:
+# string: the temporary directory that was created
+_shunit_mktempDir() {
+ # Try the standard `mktemp` function.
+ ( exec mktemp -dqt shunit.XXXXXX 2>/dev/null ) && return
+
+ # The standard `mktemp` didn't work. Use our own.
+ # shellcheck disable=SC2039
+ if command [ -r '/dev/urandom' -a -x '/usr/bin/od' ]; then
+ _shunit_random_=`/usr/bin/od -vAn -N4 -tx4 "${_shunit_file_}"
+#! /bin/sh
+exit ${SHUNIT_TRUE}
+EOF
+ command chmod +x "${_shunit_file_}"
+ done
+
+ unset _shunit_file_
+}
+
+# Final cleanup function to leave things as we found them.
+#
+# Besides removing the temporary directory, this function is in charge of the
+# final exit code of the unit test. The exit code is based on how the script
+# was ended (e.g. normal exit, or via Ctrl-C).
+#
+# Args:
+# name: string: name of the trap called (specified when trap defined)
+_shunit_cleanup() {
+ _shunit_name_=$1
+
+ case "${_shunit_name_}" in
+ EXIT) ;;
+ INT) _shunit_signal_=130 ;; # 2+128
+ TERM) _shunit_signal_=143 ;; # 15+128
+ *)
+ _shunit_error "unrecognized trap value (${_shunit_name_})"
+ _shunit_signal_=0
+ ;;
+ esac
+ if command [ "${_shunit_name_}" != 'EXIT' ]; then
+ _shunit_warn "trapped and now handling the (${_shunit_name_}) signal"
+ fi
+
+ # Do our work.
+ if command [ ${__shunit_clean} -eq ${SHUNIT_FALSE} ]; then
+ # Ensure tear downs are only called once.
+ __shunit_clean=${SHUNIT_TRUE}
+
+ tearDown
+ command [ $? -eq ${SHUNIT_TRUE} ] \
+ || _shunit_warn "tearDown() returned non-zero return code."
+ oneTimeTearDown
+ command [ $? -eq ${SHUNIT_TRUE} ] \
+ || _shunit_warn "oneTimeTearDown() returned non-zero return code."
+
+ command rm -fr "${__shunit_tmpDir}"
+ fi
+
+ if command [ "${_shunit_name_}" != 'EXIT' ]; then
+ # Handle all non-EXIT signals.
+ trap - 0 # Disable EXIT trap.
+ exit ${_shunit_signal_}
+ elif command [ ${__shunit_reportGenerated} -eq ${SHUNIT_FALSE} ]; then
+ _shunit_assertFail 'unknown failure encountered running a test'
+ _shunit_generateReport
+ exit ${SHUNIT_ERROR}
+ fi
+
+ unset _shunit_name_ _shunit_signal_
+}
+
+# configureColor based on user color preference.
+#
+# Args:
+# color: string: color mode (one of `always`, `auto`, or `none`).
+_shunit_configureColor() {
+ _shunit_color_=${SHUNIT_FALSE} # By default, no color.
+ case $1 in
+ 'always') _shunit_color_=${SHUNIT_TRUE} ;;
+ 'auto')
+ command [ "`_shunit_colors`" -ge 8 ] && _shunit_color_=${SHUNIT_TRUE}
+ ;;
+ 'none') ;;
+ *) _shunit_fatal "unrecognized color option '$1'" ;;
+ esac
+
+ case ${_shunit_color_} in
+ ${SHUNIT_TRUE})
+ __shunit_ansi_none=${__SHUNIT_ANSI_NONE}
+ __shunit_ansi_red=${__SHUNIT_ANSI_RED}
+ __shunit_ansi_green=${__SHUNIT_ANSI_GREEN}
+ __shunit_ansi_yellow=${__SHUNIT_ANSI_YELLOW}
+ __shunit_ansi_cyan=${__SHUNIT_ANSI_CYAN}
+ ;;
+ ${SHUNIT_FALSE})
+ __shunit_ansi_none=''
+ __shunit_ansi_red=''
+ __shunit_ansi_green=''
+ __shunit_ansi_yellow=''
+ __shunit_ansi_cyan=''
+ ;;
+ esac
+
+ unset _shunit_color_ _shunit_tput_
+}
+
+# colors returns the number of supported colors for the TERM.
+_shunit_colors() {
+ _shunit_tput_=`${SHUNIT_CMD_TPUT} colors 2>/dev/null`
+ if command [ $? -eq 0 ]; then
+ echo "${_shunit_tput_}"
+ else
+ echo 16
+ fi
+ unset _shunit_tput_
+}
+
+# The actual running of the tests happens here.
+#
+# Args:
+# None
+_shunit_execSuite() {
+ for _shunit_test_ in ${__shunit_suite}; do
+ __shunit_testSuccess=${SHUNIT_TRUE}
+
+ # Disable skipping.
+ endSkipping
+
+ # Execute the per-test setup function.
+ setUp
+ command [ $? -eq ${SHUNIT_TRUE} ] \
+ || _shunit_fatal "setup() returned non-zero return code."
+
+ # Execute the test.
+ echo "${__SHUNIT_TEST_PREFIX}${_shunit_test_}"
+ eval "${_shunit_test_}"
+ if command [ $? -ne ${SHUNIT_TRUE} ]; then
+ _shunit_error "${_shunit_test_}() returned non-zero return code."
+ __shunit_testSuccess=${SHUNIT_ERROR}
+ _shunit_incFailedCount
+ fi
+
+ # Execute the per-test tear-down function.
+ tearDown
+ command [ $? -eq ${SHUNIT_TRUE} ] \
+ || _shunit_fatal "tearDown() returned non-zero return code."
+
+ # Update stats.
+ if command [ ${__shunit_testSuccess} -eq ${SHUNIT_TRUE} ]; then
+ __shunit_testsPassed=`expr ${__shunit_testsPassed} + 1`
+ else
+ __shunit_testsFailed=`expr ${__shunit_testsFailed} + 1`
+ fi
+ done
+
+ unset _shunit_test_
+}
+
+# Generates the user friendly report with appropriate OK/FAILED message.
+#
+# Args:
+# None
+# Output:
+# string: the report of successful and failed tests, as well as totals.
+_shunit_generateReport() {
+ command [ "${__shunit_reportGenerated}" -eq ${SHUNIT_TRUE} ] && return
+
+ _shunit_ok_=${SHUNIT_TRUE}
+
+ # If no exit code was provided, determine an appropriate one.
+ command [ "${__shunit_testsFailed}" -gt 0 \
+ -o ${__shunit_testSuccess} -eq ${SHUNIT_FALSE} ] \
+ && _shunit_ok_=${SHUNIT_FALSE}
+
+ echo
+ _shunit_msg_="Ran ${__shunit_ansi_cyan}${__shunit_testsTotal}${__shunit_ansi_none}"
+ if command [ "${__shunit_testsTotal}" -eq 1 ]; then
+ ${__SHUNIT_CMD_ECHO_ESC} "${_shunit_msg_} test."
+ else
+ ${__SHUNIT_CMD_ECHO_ESC} "${_shunit_msg_} tests."
+ fi
+
+ if command [ ${_shunit_ok_} -eq ${SHUNIT_TRUE} ]; then
+ _shunit_msg_="${__shunit_ansi_green}OK${__shunit_ansi_none}"
+ command [ "${__shunit_assertsSkipped}" -gt 0 ] \
+ && _shunit_msg_="${_shunit_msg_} (${__shunit_ansi_yellow}skipped=${__shunit_assertsSkipped}${__shunit_ansi_none})"
+ else
+ _shunit_msg_="${__shunit_ansi_red}FAILED${__shunit_ansi_none}"
+ _shunit_msg_="${_shunit_msg_} (${__shunit_ansi_red}failures=${__shunit_assertsFailed}${__shunit_ansi_none}"
+ command [ "${__shunit_assertsSkipped}" -gt 0 ] \
+ && _shunit_msg_="${_shunit_msg_},${__shunit_ansi_yellow}skipped=${__shunit_assertsSkipped}${__shunit_ansi_none}"
+ _shunit_msg_="${_shunit_msg_})"
+ fi
+
+ echo
+ ${__SHUNIT_CMD_ECHO_ESC} "${_shunit_msg_}"
+ __shunit_reportGenerated=${SHUNIT_TRUE}
+
+ unset _shunit_msg_ _shunit_ok_
+}
+
+# Test for whether a function should be skipped.
+#
+# Args:
+# None
+# Returns:
+# boolean: whether the test should be skipped (TRUE/FALSE constant)
+_shunit_shouldSkip() {
+ command [ ${__shunit_skip} -eq ${SHUNIT_FALSE} ] && return ${SHUNIT_FALSE}
+ _shunit_assertSkip
+}
+
+# Records a successful test.
+#
+# Args:
+# None
+_shunit_assertPass() {
+ __shunit_assertsPassed=`expr ${__shunit_assertsPassed} + 1`
+ __shunit_assertsTotal=`expr ${__shunit_assertsTotal} + 1`
+}
+
+# Records a test failure.
+#
+# Args:
+# message: string: failure message to provide user
+_shunit_assertFail() {
+ __shunit_testSuccess=${SHUNIT_FALSE}
+ _shunit_incFailedCount
+
+ \[ $# -gt 0 ] && ${__SHUNIT_CMD_ECHO_ESC} \
+ "${__shunit_ansi_red}ASSERT:${__shunit_ansi_none}$*"
+}
+
+# Increment the count of failed asserts.
+#
+# Args:
+# none
+_shunit_incFailedCount() {
+ __shunit_assertsFailed=`expr "${__shunit_assertsFailed}" + 1`
+ __shunit_assertsTotal=`expr "${__shunit_assertsTotal}" + 1`
+}
+
+
+# Records a skipped test.
+#
+# Args:
+# None
+_shunit_assertSkip() {
+ __shunit_assertsSkipped=`expr "${__shunit_assertsSkipped}" + 1`
+ __shunit_assertsTotal=`expr "${__shunit_assertsTotal}" + 1`
+}
+
+# Prepare a script filename for sourcing.
+#
+# Args:
+# script: string: path to a script to source
+# Returns:
+# string: filename prefixed with ./ (if necessary)
+_shunit_prepForSourcing() {
+ _shunit_script_=$1
+ case "${_shunit_script_}" in
+ /*|./*) echo "${_shunit_script_}" ;;
+ *) echo "./${_shunit_script_}" ;;
+ esac
+ unset _shunit_script_
+}
+
+# Escape a character in a string.
+#
+# Args:
+# c: string: unescaped character
+# s: string: to escape character in
+# Returns:
+# string: with escaped character(s)
+_shunit_escapeCharInStr() {
+ command [ -n "$2" ] || return # No point in doing work on an empty string.
+
+ # Note: using shorter variable names to prevent conflicts with
+ # _shunit_escapeCharactersInString().
+ _shunit_c_=$1
+ _shunit_s_=$2
+
+ # Escape the character.
+ # shellcheck disable=SC1003,SC2086
+ echo ''${_shunit_s_}'' |command sed 's/\'${_shunit_c_}'/\\\'${_shunit_c_}'/g'
+
+ unset _shunit_c_ _shunit_s_
+}
+
+# Escape a character in a string.
+#
+# Args:
+# str: string: to escape characters in
+# Returns:
+# string: with escaped character(s)
+_shunit_escapeCharactersInString() {
+ command [ -n "$1" ] || return # No point in doing work on an empty string.
+
+ _shunit_str_=$1
+
+ # Note: using longer variable names to prevent conflicts with
+ # _shunit_escapeCharInStr().
+ for _shunit_char_ in '"' '$' "'" '`'; do
+ _shunit_str_=`_shunit_escapeCharInStr "${_shunit_char_}" "${_shunit_str_}"`
+ done
+
+ echo "${_shunit_str_}"
+ unset _shunit_char_ _shunit_str_
+}
+
+# Extract list of functions to run tests against.
+#
+# Args:
+# script: string: name of script to extract functions from
+# Returns:
+# string: of function names
+_shunit_extractTestFunctions() {
+ _shunit_script_=$1
+
+ # Extract the lines with test function names, strip of anything besides the
+ # function name, and output everything on a single line.
+ _shunit_regex_='^\s*((function test[A-Za-z0-9_-]*)|(test[A-Za-z0-9_-]* *\(\)))'
+ # shellcheck disable=SC2196
+ egrep "${_shunit_regex_}" "${_shunit_script_}" \
+ |command sed 's/^[^A-Za-z0-9_-]*//;s/^function //;s/\([A-Za-z0-9_-]*\).*/\1/g' \
+ |xargs
+
+ unset _shunit_regex_ _shunit_script_
+}
+
+#------------------------------------------------------------------------------
+# Main.
+#
+
+# Determine the operating mode.
+if command [ $# -eq 0 -o "${1:-}" = '--' ]; then
+ __shunit_script=${__SHUNIT_PARENT}
+ __shunit_mode=${__SHUNIT_MODE_SOURCED}
+else
+ __shunit_script=$1
+ command [ -r "${__shunit_script}" ] || \
+ _shunit_fatal "unable to read from ${__shunit_script}"
+ __shunit_mode=${__SHUNIT_MODE_STANDALONE}
+fi
+
+# Create a temporary storage location.
+__shunit_tmpDir=`_shunit_mktempDir`
+
+# Provide a public temporary directory for unit test scripts.
+# TODO(kward): document this.
+SHUNIT_TMPDIR="${__shunit_tmpDir}/tmp"
+command mkdir "${SHUNIT_TMPDIR}"
+
+# Setup traps to clean up after ourselves.
+trap '_shunit_cleanup EXIT' 0
+trap '_shunit_cleanup INT' 2
+trap '_shunit_cleanup TERM' 15
+
+# Create phantom functions to work around issues with Cygwin.
+_shunit_mktempFunc
+PATH="${__shunit_tmpDir}:${PATH}"
+
+# Make sure phantom functions are executable. This will bite if `/tmp` (or the
+# current `$TMPDIR`) points to a path on a partition that was mounted with the
+# 'noexec' option. The noexec command was created with `_shunit_mktempFunc()`.
+noexec 2>/dev/null || _shunit_fatal \
+ 'Please declare TMPDIR with path on partition with exec permission.'
+
+# We must manually source the tests in standalone mode.
+if command [ "${__shunit_mode}" = "${__SHUNIT_MODE_STANDALONE}" ]; then
+ # shellcheck disable=SC1090
+ command . "`_shunit_prepForSourcing \"${__shunit_script}\"`"
+fi
+
+# Configure default output coloring behavior.
+_shunit_configureColor "${SHUNIT_COLOR}"
+
+# Execute the oneTimeSetUp function (if it exists).
+oneTimeSetUp
+command [ $? -eq ${SHUNIT_TRUE} ] \
+ || _shunit_fatal "oneTimeSetUp() returned non-zero return code."
+
+# Command line selected tests or suite selected tests
+if command [ "$#" -ge 2 ]; then
+ # Argument $1 is either the filename of tests or '--'; either way, skip it.
+ shift
+ # Remaining arguments ($2 .. $#) are assumed to be test function names.
+ # Interate through all remaining args in "$@" in a POSIX (likely portable) way.
+ # Helpful tip: https://unix.stackexchange.com/questions/314032/how-to-use-arguments-like-1-2-in-a-for-loop
+ for _shunit_arg_ do
+ suite_addTest "${_shunit_arg_}"
+ done
+ unset _shunit_arg_
+else
+ # Execute the suite function defined in the parent test script.
+ # DEPRECATED as of 2.1.0.
+ suite
+fi
+
+# If no tests or suite specified, dynamically build a list of functions.
+if command [ -z "${__shunit_suite}" ]; then
+ shunit_funcs_=`_shunit_extractTestFunctions "${__shunit_script}"`
+ for shunit_func_ in ${shunit_funcs_}; do
+ suite_addTest "${shunit_func_}"
+ done
+fi
+unset shunit_func_ shunit_funcs_
+
+# Execute the suite of unit tests.
+_shunit_execSuite
+
+# Execute the oneTimeTearDown function (if it exists).
+oneTimeTearDown
+command [ $? -eq ${SHUNIT_TRUE} ] \
+ || _shunit_fatal "oneTimeTearDown() returned non-zero return code."
+
+# Generate a report summary.
+_shunit_generateReport
+
+# That's it folks.
+command [ "${__shunit_testsFailed}" -eq 0 ]
+exit $?
From 3f5db809b2bfddf2272b593d88e51761c4bc1f4a Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 12:25:32 +0200
Subject: [PATCH 02/20] "the script will remove the tests folder when executed"
---
SETUP_TEMPLATE.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/SETUP_TEMPLATE.sh b/SETUP_TEMPLATE.sh
index dbab27b..e78e92b 100644
--- a/SETUP_TEMPLATE.sh
+++ b/SETUP_TEMPLATE.sh
@@ -80,6 +80,7 @@ y | Y)
rm LICENSE # remove the license
rm -r bin/ # remove the bin folder
+ rm -r tests/ # remove the tests folder
writeREADME # write the new README.md
writeCHANGELOG # write the basic structure of the CHANGELOG.md
echo -e "# add your own funding links" >.github/FUNDING.yml # remove author's custom funding links
From 5304d604429c6c090bb0604db54ef8c523d08417 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 13:26:39 +0200
Subject: [PATCH 03/20] "added the main tests_runner script"
---
tests/TESTS_RUNNER.sh | 10 ++++++++++
1 file changed, 10 insertions(+)
create mode 100755 tests/TESTS_RUNNER.sh
diff --git a/tests/TESTS_RUNNER.sh b/tests/TESTS_RUNNER.sh
new file mode 100755
index 0000000..a0cb94d
--- /dev/null
+++ b/tests/TESTS_RUNNER.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# ADD AS MANY LINES AS TESTS FILE YOU HAVE TO RUN THEM ALL
+
+mkdir -p tests/.tests_trash/
+
+echo -e "\n\n--------------------------------\nrunning ./tests/project_scaffolding.sh"
+./tests/project_scaffolding.sh
+
+rm -r tests/.tests_trash
From 47a17cadf69c14bb03e2715375fdc0bb6d448066 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 13:26:53 +0200
Subject: [PATCH 04/20] "added some basic tests testing the scaffolding"
---
tests/project_scaffolding.sh | 58 ++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
create mode 100755 tests/project_scaffolding.sh
diff --git a/tests/project_scaffolding.sh b/tests/project_scaffolding.sh
new file mode 100755
index 0000000..f12f365
--- /dev/null
+++ b/tests/project_scaffolding.sh
@@ -0,0 +1,58 @@
+#! /bin/bash
+# file: examples/arguments_test.sh
+
+TESTS_TRASH_DIR="tests/.tests_trash"
+
+cp -r * $TESTS_TRASH_DIR --copy-content 2>/dev/null || :
+cp -r .github/ $TESTS_TRASH_DIR --copy-contents
+cp -r bin/ $TESTS_TRASH_DIR --copy-contents
+rm -r $TESTS_TRASH_DIR/tests/
+rm -r $TESTS_TRASH_DIR/.git/ 2>/dev/null || :
+
+#cd "tests/.tests_trash" || exit
+# TESTS
+
+suite() {
+ suite_addTest testDotGithubFolder
+ suite_addTest testDotGithubISSUE_TEMPLATE
+ suite_addTest testDotGithubISSUE_TEMPLATEFiles
+ suite_addTest testDotGithubFiles
+
+}
+
+testDotGithubFolder() {
+ githubFolderFound=0
+ if [ -e "$TESTS_TRASH_DIR/.github/" ]; then
+ githubFolderFound=1
+ fi
+ assertEquals 1 $githubFolderFound
+
+}
+
+testDotGithubISSUE_TEMPLATE() {
+ folderFound=0
+ if [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE" ]; then
+ folderFound=1
+ fi
+ assertEquals 1 $folderFound
+}
+
+testDotGithubISSUE_TEMPLATEFiles() {
+ filesFound=0
+ if [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/1-bug-report.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/2-failing-test.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/3-docs-bug.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/4-feature-request.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/5-enhancement-request.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/6-security-report.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/7-question-support.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/config.yml" ]; then
+ filesFound=1
+ fi
+ assertEquals 1 $filesFound
+}
+
+testDotGithubFiles() {
+ filesFound=0
+ if [ -e "$TESTS_TRASH_DIR/.github/CODEOWNERS" ] && [ -e "$TESTS_TRASH_DIR/.github/CODE_OF_CONDUCT.md" ] && [ -e "$TESTS_TRASH_DIR/.github/CONTRIBUTING.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE.md" ] && [ -e "$TESTS_TRASH_DIR/.github/pull_request_template.md" ] && [ -e "$TESTS_TRASH_DIR/.github/SECURITY.md" ] && [ -e "$TESTS_TRASH_DIR/.github/SUPPORT.md" ] && [ -e "$TESTS_TRASH_DIR/.github/issue_label_bot.yaml" ] && [ -e "$TESTS_TRASH_DIR/.github/config.yml" ] && [ -e "$TESTS_TRASH_DIR/.github/FUNDING.yml" ] && [ -e "$TESTS_TRASH_DIR/.github/settings.yml" ]; then
+ filesFound=1
+ fi
+ assertEquals 1 $filesFound
+}
+
+# Load and run shUnit2.
+#cd "../.." || exit
+. tests/shunit2
From 120e82ccd64a4a2a95e763eb05b4e4aefb188396 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 13:27:11 +0200
Subject: [PATCH 05/20] "documented how to run the tests"
---
README.md | 10 ++++++++++
tests/arguments_test.sh | 5 -----
2 files changed, 10 insertions(+), 5 deletions(-)
delete mode 100755 tests/arguments_test.sh
diff --git a/README.md b/README.md
index dc975e7..6cd70c9 100644
--- a/README.md
+++ b/README.md
@@ -208,6 +208,16 @@ and the read and understanding of the [keep a changelog guide](https://keepachan
Read and comment about it in this [dev.to post](https://dev.to/josee9988/the-ultimate-github-project-template-1264).
We also recommend installing all the [used bots](https://github.com/Josee9988/project-template#-used-github-bots).
+## π **Project tests**
+
+If you want to improve the development of this project, you must, after changing or improving whatever run the project's tests to prove that they are working.
+
+To do so:
+
+```bash
+bash tests/TESTS_RUNNER.sh
+```
+
---
## π° **Supporters and donators**
diff --git a/tests/arguments_test.sh b/tests/arguments_test.sh
deleted file mode 100755
index c0ba65f..0000000
--- a/tests/arguments_test.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#! /bin/sh
-# file: examples/arguments_test.sh
-
-# Load and run shUnit2.
-. tests/shunit2
From 46a83d9d5e7c78bcff1b37b08c56de66d96449ad Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 13:29:14 +0200
Subject: [PATCH 06/20] =?UTF-8?q?Set=20up=20'@Josee9988/project-template'?=
=?UTF-8?q?=20template:=20Personalized=20files=20by=20executing=20the=20SE?=
=?UTF-8?q?TUP=5FTEMPLATE.sh=20script.=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/CODEOWNERS | 6 +-
.github/CODE_OF_CONDUCT.md | 2 +-
.github/FUNDING.yml | 3 +-
.github/ISSUE_TEMPLATE/1-bug-report.md | 2 +-
.github/ISSUE_TEMPLATE/2-failing-test.md | 2 +-
.github/ISSUE_TEMPLATE/3-docs-bug.md | 2 +-
.github/ISSUE_TEMPLATE/4-feature-request.md | 2 +-
.../ISSUE_TEMPLATE/5-enhancement-request.md | 2 +-
.github/ISSUE_TEMPLATE/6-security-report.md | 4 +-
.github/ISSUE_TEMPLATE/7-question-support.md | 2 +-
.github/ISSUE_TEMPLATE/config.yml | 2 +-
.github/SECURITY.md | 2 +-
.github/config.yml | 2 +-
.gitignore | 4 +-
CHANGELOG.md | 244 +-----------------
LICENSE | 21 --
README.md | 237 +++--------------
bin/FUNCTION_HELPERS.sh | 191 --------------
18 files changed, 64 insertions(+), 666 deletions(-)
delete mode 100644 LICENSE
delete mode 100644 bin/FUNCTION_HELPERS.sh
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 4cb66d4..4534ddd 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,6 +1,6 @@
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
-# @Josee9988 will be requested for
+# @FAKE_TEST_USERNAME will be requested for
# review when someone opens a pull request.
-# if you want to add more owners just write it after @Josee9988
-* @Josee9988
+# if you want to add more owners just write it after @FAKE_TEST_USERNAME
+* @FAKE_TEST_USERNAME
diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
index b60dfc1..f1d964a 100644
--- a/.github/CODE_OF_CONDUCT.md
+++ b/.github/CODE_OF_CONDUCT.md
@@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing or otherwise unacceptable behaviour may be
-reported by contacting the project team at jgracia9988@gmail.com. All
+reported by contacting the project team at FAKE_TEST_EMAIL. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality concerning the reporter of an incident.
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index a2d624f..c942e4e 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,2 +1 @@
-github: Josee9988
-custom: ['https://www.paypal.me/josee9988']
+# add your own funding links
diff --git a/.github/ISSUE_TEMPLATE/1-bug-report.md b/.github/ISSUE_TEMPLATE/1-bug-report.md
index 1376422..a6e11cc 100644
--- a/.github/ISSUE_TEMPLATE/1-bug-report.md
+++ b/.github/ISSUE_TEMPLATE/1-bug-report.md
@@ -3,7 +3,7 @@ name: "π Bug Report"
about: "Report an issue to help the project improve."
title: "[Bug] "
labels: "Type: Bug"
-assignees: Josee9988
+assignees: FAKE_TEST_USERNAME
---
diff --git a/.github/ISSUE_TEMPLATE/2-failing-test.md b/.github/ISSUE_TEMPLATE/2-failing-test.md
index a239f2a..9b1cee9 100644
--- a/.github/ISSUE_TEMPLATE/2-failing-test.md
+++ b/.github/ISSUE_TEMPLATE/2-failing-test.md
@@ -3,7 +3,7 @@ name: "π Failing Test"
about: "Report failing tests or CI jobs."
title: "[Test] "
labels: "Type: Test"
-assignees: Josee9988
+assignees: FAKE_TEST_USERNAME
---
diff --git a/.github/ISSUE_TEMPLATE/3-docs-bug.md b/.github/ISSUE_TEMPLATE/3-docs-bug.md
index f987493..855d1d4 100644
--- a/.github/ISSUE_TEMPLATE/3-docs-bug.md
+++ b/.github/ISSUE_TEMPLATE/3-docs-bug.md
@@ -3,7 +3,7 @@ name: "π Documentation or README.md issue report"
about: "Report an issue in the project's documentation or README.md file."
title: ""
labels: "Documentation"
-assignees: Josee9988
+assignees: FAKE_TEST_USERNAME
---
# **π Documentation Issue Report**
diff --git a/.github/ISSUE_TEMPLATE/4-feature-request.md b/.github/ISSUE_TEMPLATE/4-feature-request.md
index 33ecf94..9550f60 100644
--- a/.github/ISSUE_TEMPLATE/4-feature-request.md
+++ b/.github/ISSUE_TEMPLATE/4-feature-request.md
@@ -3,7 +3,7 @@ name: "ππ Feature Request"
about: "Suggest an idea or possible new feature for this project."
title: ""
labels: "Type: Feature"
-assignees: Josee9988
+assignees: FAKE_TEST_USERNAME
---
diff --git a/.github/ISSUE_TEMPLATE/5-enhancement-request.md b/.github/ISSUE_TEMPLATE/5-enhancement-request.md
index 2b29bd5..6e0c123 100644
--- a/.github/ISSUE_TEMPLATE/5-enhancement-request.md
+++ b/.github/ISSUE_TEMPLATE/5-enhancement-request.md
@@ -3,7 +3,7 @@ name: "πβ Enhancement Request"
about: "Suggest an enhancement for this project. Improve an existing feature"
title: ""
labels: "Type: Enhancement"
-assignees: Josee9988
+assignees: FAKE_TEST_USERNAME
---
diff --git a/.github/ISSUE_TEMPLATE/6-security-report.md b/.github/ISSUE_TEMPLATE/6-security-report.md
index 81f6fef..3306b9d 100644
--- a/.github/ISSUE_TEMPLATE/6-security-report.md
+++ b/.github/ISSUE_TEMPLATE/6-security-report.md
@@ -3,7 +3,7 @@ name: "β οΈ Security Report"
about: "Report an issue to help the project improve."
title: ""
labels: "Type: Security"
-assignees: Josee9988
+assignees: FAKE_TEST_USERNAME
---
@@ -25,7 +25,7 @@ certain personal information or involves personal identifiable data, or you beli
that the data that you might leak by exposing the way on how to attack the project
could be considered as a data leak or could violate the privacy of any kind of
data or sensible data, please do not post it here and directly email the developer:
-(jgracia9988@gmail.com). You should post the issue with the least amount of
+(FAKE_TEST_EMAIL). You should post the issue with the least amount of
sensible or private data as possible to help us manage the security issue, and
with the extra data sent from your email to the developer (if any), we will deeply
analyze and try to fix it as fast as possible.
diff --git a/.github/ISSUE_TEMPLATE/7-question-support.md b/.github/ISSUE_TEMPLATE/7-question-support.md
index ec98c81..2b10fb5 100644
--- a/.github/ISSUE_TEMPLATE/7-question-support.md
+++ b/.github/ISSUE_TEMPLATE/7-question-support.md
@@ -3,7 +3,7 @@ name: "β Question or Support Request"
about: "Questions and requests for support."
title: ""
labels: "Type: Question"
-assignees: Josee9988
+assignees: FAKE_TEST_USERNAME
---
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index a053b0d..af993b3 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Send an e-mail the developer
- url: mailto:jgracia9988@gmail.com
+ url: mailto:FAKE_TEST_EMAIL
about: Please do NOT use this email to post issues or feature requests (only important business/personal contact).
diff --git a/.github/SECURITY.md b/.github/SECURITY.md
index 30a193d..a8d01ff 100644
--- a/.github/SECURITY.md
+++ b/.github/SECURITY.md
@@ -8,6 +8,6 @@ To report a security issue, go to the project's issues and create a new issue us
Read carefully the instructions of this issue template, and if your report could leak data or might expose
how to gain access to a restricted area or break the system,
-please email [jgracia9988@gmail.com](mailto:jgracia9988@gmail.com) and include the word "SECURITY" in the subject line.
+please email [FAKE_TEST_EMAIL](mailto:FAKE_TEST_EMAIL) and include the word "SECURITY" in the subject line.
We'll endeavour to respond quickly, and will keep you updated throughout the process.
diff --git a/.github/config.yml b/.github/config.yml
index 1e537f7..91e895a 100644
--- a/.github/config.yml
+++ b/.github/config.yml
@@ -2,7 +2,7 @@
# Comment to be posted to on first time issues
newIssueWelcomeComment: >
- Thanks for opening your first issue in Josee9988/project-template! Be sure to follow the issue template and provide every bit of information to help the developers!
+ Thanks for opening your first issue in FAKE_TEST_USERNAME/project-template! Be sure to follow the issue template and provide every bit of information to help the developers!
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
diff --git a/.gitignore b/.gitignore
index 49c69d3..f89f074 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-###> Josee9988/project-template ###
+###> FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME ###
# Folders
.vscode/
@@ -13,4 +13,4 @@ ignore.*
.env.test
*.pem
-###< Josee9988/project-template ###
+###< FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME ###
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 03f1f20..ae8df3e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,252 +1,14 @@
# **Change Log** ππ
-All notable changes to the "**Project template**" repository will be documented in this file.
+All notable changes to the "**FAKE_TEST_PROJECT_NAME**" DICK will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
-## [**1.7.2**] - 2021-07-08
+## [**0.0.1**] - 2021-07-08
### Added
-* Multiple new .gitignore lines and improved its comment structure.
-
-### Fixed
-
-* Minnor typo in the generated README.md
-
-## [**1.7.1**] - 2021-07-01
-
-### Added
-
-* `.env` file will be ignored in the `.gitignore`.
-* Disabled some markdownlint rules in the generated README.md
-* Fixed some minnor errors in the README.md file
-
-## [**1.7.0**] - 2021-06-01
-
-### Added
-
-* Type: Test issue label.
-* Failing test issue template adds the new Type Test issue label.
-* Updated README.md with the new label.
-
-## [**1.6.0**] - 2021-05-21
-
-### Added
-
-* Divided the feature request into feature and enhancement request, each one with its respective labels.
-
-### Changed
-
-* Position of disclaimers and comments in the issue templates are moved to the bottom (but the security report) as some users directly erased everything to not read the text.
-* Image of the issue templates in the readme.md file.
-
-## [**1.5.0**] - 2021-05-15
-
-### Added
-
-* Auto-detection of user email.
-
-## [**1.4.5**] - 2021-04-24
-
-### Added
-
-* Sponsor section in the project's main readme.md file.
-* Improved and added documentation in the scripts.
-
-### Fixed
-
-* Readme "What does it include" fixed list of files.
-* Sponsor link in the generated README.md file.
-* Some typos
-
-## [**1.4.4**] - 2021-04-22
-
-### Added
-
-* --help option in the script.
-* More documentation and information for the user in the script prompts
-
-## [**1.4.3**] - 2021-04-21
-
-### Added
-
-* Support for Github todo app.
-
-## [**1.4.2**] - 2021-04-20
-
-### Added
-
-* An extra informational message in the script.
-* Welcome bot and its config (.github/config.yml)
-
-### Fixed
-
-* Issue templates now auto assigns the new labels.
-
-## [**1.4.1**] - 2021-04-20
-
-### Added
-
-* Security label
-
-### Changed
-
-* Project tree to its updated version.
-
-## [**1.4.0**] - 2021-04-19
-
-### Added
-
-* Readme file with the section with the recommended/used bots that the users should install.
-* Some informational comments in the script referencing the project's documentation.
-* A total of 18 new labels will be created right when you clone your repo using Github Probot settings.
-
-## [**1.3.0**] - 2021-04-14
-
-### Added
-
-* CODEOWNERS file inside the .github folder.
-
-### Fixed
-
-* Some README.md markdownlint bugs.
-
-## [**1.2.0**] - 2021-04-07
-
-### Added
-
-* Bug report issue templates have the preceding "[BUG]" title.
-* Multiple readme template headings (About the project, project tree, screenshots, donators).
-* Improved README.md template by fixing some minor problems.
-
-## [**1.1.1**] - 2021-04-02
-
-### Added
-
-* Username and project name are automatically selected (user can manually force change them using bash parameters [Username] [Project-Name])
-
-### Changed
-
-* Asciinema video
-
-## [**1.1.0**] - 2021-03-31
-
-### Added
-
-* Gitignore file ignores all \*.ignore.\* files.
-* Basic README.md template.
-* bin/FUNCTION_HELPERS script to improve the readability of the SETUP_TEMPLATE.sh file.
-
-### Changed
-
-* Header's emoji from the end of the README.md headers to the beginning to be shown better by the new GitHub's README table of contents.
-
-### Fixed
-
-* Git status is shown before the commit.
-
-### Fixed
-
-* Some typos in the CHANGELOG.md.
-
-## [**1.0.11**] - 2021-03-20
-
-### Added
-
-* Social links of the repo in the README.md file.
-* Added badges in the README.md file.
-* Added sponsor link in the contributing.yml file.
-
-### Fixed
-
-* Some minor typos in the README.md file.
-
-## [**1.0.10**] - 2021-03-17
-
-### Changed
-
-* `EXECUTEME.sh` script changed to `SETUP_TEMPLATE.sh`.
-* Changed the execution video from the README.md file (Asciinema's video).
-
-## [**1.0.9**] - 2021-03-17
-
-### Added
-
-* The script will git add and commit the new files/changes for you.
-
-## [**1.0.8**] - 2021-03-17
-
-### Changed
-
-* Improved README.md structure and fixed some typos.
-
-### Added
-
-* 'Extra recommendations' section in the README.md file.
-
-## [**1.0.7**] - 2021-03-16
-
-### Fixed
-
-* Some minor typos
-
-## [**1.0.6**] - 2021-03-16
-
-### Changed
-
-* Simplified PR template to make it easier.
-
-## [**1.0.5**] - 2021-03-13
-
-### Added
-
-* Checks to the shell script (check if the files exist)
-* Colourized the output of the script.
-
-## [**1.0.4**] - 2021-02-26
-
-### Added
-
-* Markdownlint disable the rule in the CHANGELOG.md file"
-
-## [**1.0.3**] - 2021-02-23
-
-### Removed
-
-* Josee's funding links.
-
-### Added
-
-* Shell script now checks if the .github directory exists.
-
-## [**1.0.2**] - 2020-09-08
-
-### Added
-
-* One more screenshot to the README.md file showing the community profile.
-* Documentation for the SETUP_TEMPLATE.sh script.
-
-### Changed
-
-* The project tree view showing the new LICENSE file.
-
-## [**1.0.1**] - 2020-09-08
-
-### Added
-
-* A LICENSE for the project will be removed with the SETUP_TEMPLATE.sh script.
-
-### Changed
-
-* The location of the pull request template to the .github/ folder.
-
-## [**1.0.0**] - 2020-09-08
-
-### Added
-
-* Added a CHANGELOG.md.
-* Support for the CHANGELOG in the SETUP_TEMPLATE.sh file (when run, it will remove all of the content and create a new file from scratch).
+* The basic project structure from **[josee9988/project-template](https://github.com/Josee9988/project-template)**.
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 97d7d26..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2020 Jose Gracia Berenguer
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/README.md b/README.md
index 6cd70c9..642a694 100644
--- a/README.md
+++ b/README.md
@@ -1,248 +1,97 @@
-# π₯ **Josee9988's Github Project Template**
+
+# π₯ **FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME**
-
-
-
-
-
+
---
-## π€ **What is this template all about?**
+## π€ **About the project**
-* This template can be used as a base layer for any of your future repositories/projects.
-* Make your project easy to maintain with **8 issue templates**.
-* Quickstart your documentation with personalized **readme badges** and a cool readme structure.
-* Manage your issues with **20 issue labels** created just for you!
-* Make your _community healthier_ with all the guides like code of conduct, contributing, support, security...
-* Learn more with the [official Github guide on creating repositories from a template](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template).
-* To start using it; "**[click use this template](https://github.com/Josee9988/project-template/generate)**", create your new repository,
-* All the basic setup is made through an easy script that will auto-detect all your data to make it lightning fast! π²π² clone your new repository and execute the `SETUP_TEMPLATE.sh` shell script to personalize the files with your private details. Check how to execute it [here](https://asciinema.org/a/398761).
-* All the markdown follows [MarkdownLint rules](https://github.com/DavidAnson/markdownlint).
+*
---
## β‘ **Installation**
-1. To create a new repository from this template **[generate your new repository from this template](https://github.com/Josee9988/project-template/generate)**
-for more information or guidance, follow the [Github guide](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template).
-2. Clone your new repository **[generated from this template](https://github.com/Josee9988/project-template/generate)** and `cd` into it.
-3. **Execute** the `SETUP_TEMPLATE.sh` shell script to **customize** the files with your data.
-
- ```bash
- bash SETUP_TEMPLATE.sh # additional parameters [Username] [Project-Name] [Email]
- ```
-
- Or you can also do it like this:
-
- ```bash
- chmod u+x SETUP_TEMPLATE.sh && ./SETUP_TEMPLATE.sh # additional parameters [Username] [Project-Name] [Email]
- ```
+*
- Additionally, watch *[this video](https://asciinema.org/a/404568)* to see **how to execute the script** or use *`bash SETUP_TEMPLATE.sh --help`* to obtain some extra information.
-
- If the automatic detection of the username, project name or email is NOT right, please post an issue, and you can **manually correct** them like: `bash SETUP_TEMPLATE.sh RightUsername RightProjectName RightEmail` being `$1` the new username, `$2` the new project name and `$3` the new email.
+---
-4. **Review** every single file and **customize** it as you like.
-5. Build your project. π
+## π **Usage**
-β οΈ _Customize every file to fit your requirements_ β οΈ
+*
---
-## π **What does it include?**
-
-1. A **`SETUP_TEMPLATE.sh`** script that **MUST be executed right when you clone your repository**.
-The script will replace Jose's username and email (the author) with yours from all the.
-
- 1. A README template file with a default template to start documenting your project. (it includes personalized badges and text with your project details)
- 1. A CHANGELOG template file based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- 1. An [issue_label_bot.yaml](/.github/issue_label_bot.yaml) file to use the issue adder Github bot. [Activate it or check its documentation](https://github.com/marketplace/issue-label-bot).
- 1. A [config.yml](/.github/config.yml) file to modify multiple bot's behaviours.
- 1. A [settings.yml](/.github/settings.yml) file to use the popular settings Github bot. [Activate it or check its documentation](https://probot.github.io/apps/settings/).
- 1. A [CONTRIBUTING](/.github/CONTRIBUTING.md) explaining how to contribute to the project. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/setting-guidelines-for-repository-contributors).
- 1. A [SUPPORT](/.github/SUPPORT.md) explaining how to support the project. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/adding-support-resources-to-your-project).
- 1. A [SECURITY](/.github/SECURITY.md) with a guide on how to post a security issue. [Learn more with the Github guide](https://docs.github.com/es/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository).
- 1. A [CODEOWNERS](/.github/CODEOWNERS) with the new user as the main owner. [Learn more with the Github guide](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners).
- 1. A [CODE_OF_CONDUCT](/.github/CODE_OF_CONDUCT.md) with a basic code of conduct. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/adding-a-code-of-conduct-to-your-project).
- 1. A [PULL_REQUEST_TEMPLATE](/.github/pull_request_template.md) with a template for your pull request that closes issues with keywords. [Learn more with the Github guide](https://docs.github.com/es/github/building-a-strong-community/creating-a-pull-request-template-for-your-repository).
- 1. Multiple [issues templates](/.github/ISSUE_TEMPLATE). [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository).
- 1. A [config.yml](/.github/ISSUE_TEMPLATE/config.yml) with the config and information about the issue templates.
- 1. A [Blank issue template](/.github/ISSUE_TEMPLATE) with the super basic stuff, all the issues should contain.
- 1. A [Bug issue template](/.github/ISSUE_TEMPLATE/1-bug-report.md).
- 1. A [Failing test issue template](/.github/ISSUE_TEMPLATE/2-failing-test.md).
- 1. A [Documentation issue template](/.github/ISSUE_TEMPLATE/3-docs-bug.md).
- 1. A [Feature request issue template](/.github/ISSUE_TEMPLATE/4-feature-request.md).
- 1. A [Security report issue template](/.github/ISSUE_TEMPLATE/5-security-report.md).
- 1. A [Question or support issue template](/.github/ISSUE_TEMPLATE/6-question-support.md).
+## π² **Project tree**
----
-
-### π² **Project tree**
-
-Files that will get removed after the execution of `SETUP_TEMPLATE.sh` are not shown! π
-
-```text
-.
-βββ CHANGELOG.md
-βββ .github
-βΒ Β βββ CODE_OF_CONDUCT.md
-βΒ Β βββ CODEOWNERS
-βΒ Β βββ CONTRIBUTING.md
-βΒ Β βββ FUNDING.yml
-βΒ Β βββ issue_label_bot.yaml
-βΒ Β βββ config.yml
-βΒ Β βββ ISSUE_TEMPLATE
-βΒ Β βΒ Β βββ 1-bug-report.md
-β β βββ 2-failing-test.md
-β β βββ 3-docs-bug.md
-β β βββ 4-feature-request.md
-β β βββ 5-enhancement-request.md
-β β βββ 6-security-report.md
-β β βββ 7-question-support.md
-β β βββ config.yml
-βΒ Β βββ ISSUE_TEMPLATE.md
-βΒ Β βββ pull_request_template.md
-βΒ Β βββ SECURITY.md
-βΒ Β βββ settings.yml
-βΒ Β βββ SUPPORT.md
-βββ .gitignore
-βββ README.md
-
-2 directories, 21 files
-```
+
---
## π **Additional notes**
-* After **[generating your new repo with this template](https://github.com/Josee9988/project-template/generate)**, make sure to, right after you clone it, run the script `SETUP_TEMPLATE.sh`.
-
-* Then you will be presented with all the files modified with your project details and information. It is very important to **manually review every file** to check if it fits your requirements and performs any necessary changes to customize the project as you want.
-
-* If you are using **Windows** and you don't know how to execute the `SETUP_TEMPLATE.sh` script:
- 1. Install **[git for Windows](https://git-scm.com/download/win)**.
- 2. Right-click on the git repository folder and click "*git bash here*".
- 3. Then just perform *`bash SETUP_TEMPLATE.sh`* **or** *`chmod u+x SETUP_TEMPLATE.sh && ./SETUP_TEMPLATE.sh`*.
-
-### π€ **Used Github bots**
-
-These are recommended bots that are prepared and configured for this template. If you install them your coding experience will probably be much better.
-We deeply recommend at least installing the [issue label bot](https://github.com/marketplace/issue-label-bot) as this bot is the one that adds all the labels used in the issue templates.
-
-1. The `issue_label_bot.yaml` file depends on the **[issue label bot](https://github.com/marketplace/issue-label-bot)**.
-2. The `settings.yml` file depends on the **[settings label bot](https://probot.github.io/apps/settings/)**.
-3. The `config.yml` file depends on the bot **[welcome bot](https://probot.github.io/apps/welcome/)** and **[todo bot](https://probot.github.io/apps/todo/)**
+*
---
## πΈ **Screenshots**
-A couple of screenshots to delight you before you use this template.
-
-### πΊ All the issue templates
-
-
-
-
-
-### π» An issue template opened
-
-
-
-
-
-### π The README template
-
-Badges and texts will be replaced with your project details!
-
-
-
-
- Or watch [this video](https://gifs.com/gif/josee9988-s-readme-md-MwO5E3) to see the whole README template.
-
+
-### π The labels for your issues
-
-If the bot [probot-settings](https://probot.github.io/apps/settings/) is not installed you will not have these beautiful labels! (there are actually 1 more issue label than in the screenshot!)
-
-
-
-
-
-### π The CHANGELOG template
-
-(project name and project type will be replaced with yours)
+---
-
-
-
+## π° **Supporters and donators**
-### π‘οΈ Security policy
+We are currently looking for new donators to help and maintain this project! β€οΈ
-
-
-
+By donating, you will help the development of this project, and *you will be featured in this FAKE_TEST_PROJECT_NAME's README.md* so everyone can see your kindness and visit your content β.
-### πΌ Community profile at 100%
+
+
+
-
-
-
+
---
-## π΅οΈ **Extra recommendations**
-
-For the right maintenance of the CHANGELOG.md, we recommend this [VSCode extension](https://github.com/Josee9988/Changelog-and-Markdown-snippets)
-and the read and understanding of the [keep a changelog guide](https://keepachangelog.com/en/1.0.0/).
-Read and comment about it in this [dev.to post](https://dev.to/josee9988/the-ultimate-github-project-template-1264).
-We also recommend installing all the [used bots](https://github.com/Josee9988/project-template#-used-github-bots).
+FAKE_TEST_PROJECT_NAME was generated from *[Josee9988/project-template](https://github.com/Josee9988/project-template)* π
-## π **Project tests**
-
-If you want to improve the development of this project, you must, after changing or improving whatever run the project's tests to prove that they are working.
+---
-To do so:
+## π΅οΈ Extra recommendations
-```bash
-bash tests/TESTS_RUNNER.sh
-```
+*
---
-## π° **Supporters and donators**
-
-We are currently looking for new donators to help and maintain this project! β€οΈ
+## π Was the DICK helpful? Help us raise these numbers up
-By donating, you will help the development of this project, and *you will be featured in this project's README.md* so everyone can see your kindness and visit your content β.
+[![Github followers](https://img.shields.io/github/followers/FAKE_TEST_USERNAME.svg?style=social)](https://github.com/FAKE_TEST_USERNAME)
+[![Github stars](https://img.shields.io/github/stars/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME.svg?style=social)](https://github.com/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME/stargazers)
+[![Github watchers](https://img.shields.io/github/watchers/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME.svg?style=social)](https://github.com/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME/watchers)
+[![Github forks](https://img.shields.io/github/forks/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME.svg?style=social)](https://github.com/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME/network/members)
+
+[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=github-sponsors&color=red&style=social)](https://github.com/sponsors/FAKE_TEST_USERNAME)
-
-
-
+Enjoy! π
---
-## π Was the template helpful? Help us raise these numbers up
+## βοΈπ **License and Changelog**
-[![Github followers](https://img.shields.io/github/followers/Josee9988.svg?style=social)](https://github.com/Josee9988)
-[![Github stars](https://img.shields.io/github/stars/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/stargazers)
-[![Github watchers](https://img.shields.io/github/watchers/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/watchers)
-[![Github forks](https://img.shields.io/github/forks/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/network/members)
+See the license in the '**[LICENSE](LICENSE)**' file.
-Enjoy! π
+Watch the changes in the '**[CHANGELOG.md](CHANGELOG.md)**' file.
-> β οΈRemember that this template should be reviewed and modified to fit your requirements.
-> The script **SETUP_TEMPLATE.sh** should be executed right when you clone your new repository.
-> There will be files that will need *manual revision*β οΈ
+---
-_Made with a lot of β€οΈβ€οΈ by **[@Josee9988](https://github.com/Josee9988)**_
+_Made with a lot of β€οΈβ€οΈ by **[@FAKE_TEST_USERNAME](https://github.com/FAKE_TEST_USERNAME)**_
diff --git a/bin/FUNCTION_HELPERS.sh b/bin/FUNCTION_HELPERS.sh
deleted file mode 100644
index 368005c..0000000
--- a/bin/FUNCTION_HELPERS.sh
+++ /dev/null
@@ -1,191 +0,0 @@
-#!/bin/bash
-
-#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#
-# PURPOSE: Secondary (helper) script that is called by the main SETUP_TEMPLATE.sh file by
-# obtaining some functions to better modularize the code.
-# TITLE: FUNCTION_HELPERS
-# AUTHOR: Jose Gracia
-# VERSION: See in CHANGELOG.md
-# NOTES: This script will auto remove itself, and in case of wanting to run it again, the user must download
-# it again or do a 'git stash' and revert the changes.
-# BASH_VERSION: 5.0.17(1)-release
-# LICENSE: see in ../LICENSE (project root) or https://github.com/Josee9988/project-template/blob/master/LICENSE
-# GITHUB: https://github.com/Josee9988/
-# REPOSITORY: https://github.com/Josee9988/project-template
-# ISSUES: https://github.com/Josee9988/project-template/issues
-# MAIL: jgracia9988@gmail.com
-#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#
-
-# SCRIPT WITH EXPORTED FUNCTIONS AND VARIABLES USED IN THE MAIN SETUP_TEMPLATE
-RED='\033[1;31m'
-NC='\033[0m' # No Color
-UPurple='\033[4;35m'
-BBLUE='\033[1;34m'
-
-# Function that centers a text in the terminal
-center() {
- term_width="$(tput cols)"
- padding="$(printf '%0.1s' ={1..500})"
- echo -e "\n\n${BBLUE}$(printf '%*.*s %s %*.*s\n' 0 "$(((term_width - 2 - ${#1}) / 2))" "$padding" "$1" 0 "$(((term_width - 1 - ${#1}) / 2))" "$padding")${NC}\n"
-}
-
-checkFiles() {
- ### Check if the .github directory does exist ###
- if [ ! -d ".github/" ] || [ ! -d ".github/ISSUE_TEMPLATE" ]; then
- echo -e "${RED}Directory .github/ DOES NOT EXIST WITH ALL THE FILES NEEDED.${NC}"
- displayErrorInstructions
- exit 1 # exit with error code 1
- fi
-
- ### Checks if the root files exist and some extra important files ###
- if [ ! -f "CHANGELOG.md" ] || [ ! -f "README.md" ] || [ ! -f ".gitignore" ] || [ ! -f "LICENSE" ] || [ ! -f ".github/settings.yml" ] || [ ! -f ".github/pull_request_template.md" ] || [ ! -f ".github/ISSUE_TEMPLATE/1-bug-report.md" ] || [ ! -f ".github/ISSUE_TEMPLATE/config.yml" ]; then
- echo -e "${RED}The script couldn't find one or many of the template main files${NC}."
- displayErrorInstructions
- exit 1 # exit with error code 1
- fi
-}
-
-displayErrorInstructions() {
- echo -e "${RED}There are files missing! Have you modified the repository before executing this command?${NC}"
- echo -e "\nYou should try to 'git stash' your changes and execute this script from the project root again, or clone again the repository (the template) without any changes.\n"
- echo -e "For more information visit: ${UPurple}https://github.com/Josee9988/project-template${NC}"
- echo -e "If you think this may be an issue please post it at: ${UPurple}https://github.com/Josee9988/project-template/issues${NC}"
-}
-
-helpCommand() {
- if [[ "$1" == *"--help" ]] || [[ "$1" == *"-h" ]]; then # if the user specified help command
- displayHelpTexts
- exit 0
- fi
-}
-
-displayHelpTexts() {
- center "User help"
- echo -e "Script usage: ${BBLUE}$0 [Username] [Project-Name] [Email]${NC} (The project name should not contain spaces)${NC}\n"
- echo "Arguments of username, project-name and email are automatically gathered from your git repository and git config, so they are optional in case they are not detected correctly."
- echo -e "Make sure you have ${BBLUE}read the documentation before executing${NC} this script: ${UPurple}https://github.com/Josee9988/project-template${NC}"
- echo -e "If you have any questions or if any issue is found, please make sure to report it at: ${UPurple}https://github.com/Josee9988/project-template/issues${NC}"
-}
-
-writeREADME() {
- PROJECT_NAME_PARSED=${PROJECT_NAME/-/ }
- bash -c "NEW_USERNAME='NEW_USERNAME' PROJECT_NAME='PROJECT_NAME' PROJECT_TYPE='PROJECT_TYPE'; cat << EOF > README.md
-
-
-# π₯ **$NEW_USERNAME/$PROJECT_NAME**
-
-
-
----
-
-## π€ **About the project**
-
-*
-
----
-
-## β‘ **Installation**
-
-*
-
----
-
-## π **Usage**
-
-*
-
----
-
-## π² **Project tree**
-
-
-
----
-
-## π **Additional notes**
-
-*
-
----
-
-## πΈ **Screenshots**
-
-
-
----
-
-## π° **Supporters and donators**
-
-We are currently looking for new donators to help and maintain this project! β€οΈ
-
-By donating, you will help the development of this project, and *you will be featured in this $PROJECT_NAME's README.md* so everyone can see your kindness and visit your content β.
-
-
-
-
-
-
-
----
-
-$PROJECT_NAME was generated from *[Josee9988/project-template](https://github.com/Josee9988/project-template)* π
-
----
-
-## π΅οΈ Extra recommendations
-
-*
-
----
-
-## π Was the $PROJECT_TYPE helpful? Help us raise these numbers up
-
-[![Github followers](https://img.shields.io/github/followers/$NEW_USERNAME.svg?style=social)](https://github.com/$NEW_USERNAME)
-[![Github stars](https://img.shields.io/github/stars/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/stargazers)
-[![Github watchers](https://img.shields.io/github/watchers/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/watchers)
-[![Github forks](https://img.shields.io/github/forks/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/network/members)
-
-[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=github-sponsors&color=red&style=social)](https://github.com/sponsors/$NEW_USERNAME)
-
-Enjoy! π
-
----
-
-## βοΈπ **License and Changelog**
-
-See the license in the '**[LICENSE](LICENSE)**' file.
-
-Watch the changes in the '**[CHANGELOG.md](CHANGELOG.md)**' file.
-
----
-
-_Made with a lot of β€οΈβ€οΈ by **[@$NEW_USERNAME](https://github.com/$NEW_USERNAME)**_
-EOF"
-}
-
-writeCHANGELOG() {
- ACTUAL_DATE=$(date '+%Y-%m-%d')
- bash -c "PROJECT_NAME='PROJECT_NAME' PROJECT_TYPE='PROJECT_TYPE' ACTUAL_DATE='ACTUAL_DATE'; cat << EOF > CHANGELOG.md
-
-# **Change Log** ππ
-
-All notable changes to the \"**$PROJECT_NAME**\" $PROJECT_TYPE will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
----
-
-## [**0.0.1**] - $ACTUAL_DATE
-
-### Added
-
-* The basic project structure from **[josee9988/project-template](https://github.com/Josee9988/project-template)**.
-EOF"
-}
From f358d39bdb07dec746524db7452a8288a23bfe3a Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 13:32:32 +0200
Subject: [PATCH 07/20] =?UTF-8?q?Revert=20"Set=20up=20'@Josee9988/project-?=
=?UTF-8?q?template'=20template:=20Personalized=20files=20by=20executing?=
=?UTF-8?q?=20the=20SETUP=5FTEMPLATE.sh=20script.=F0=9F=9A=80"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit 46a83d9d5e7c78bcff1b37b08c56de66d96449ad.
---
.github/CODEOWNERS | 6 +-
.github/CODE_OF_CONDUCT.md | 2 +-
.github/FUNDING.yml | 3 +-
.github/ISSUE_TEMPLATE/1-bug-report.md | 2 +-
.github/ISSUE_TEMPLATE/2-failing-test.md | 2 +-
.github/ISSUE_TEMPLATE/3-docs-bug.md | 2 +-
.github/ISSUE_TEMPLATE/4-feature-request.md | 2 +-
.../ISSUE_TEMPLATE/5-enhancement-request.md | 2 +-
.github/ISSUE_TEMPLATE/6-security-report.md | 4 +-
.github/ISSUE_TEMPLATE/7-question-support.md | 2 +-
.github/ISSUE_TEMPLATE/config.yml | 2 +-
.github/SECURITY.md | 2 +-
.github/config.yml | 2 +-
.gitignore | 4 +-
CHANGELOG.md | 244 +++++++++++++++++-
LICENSE | 21 ++
README.md | 237 ++++++++++++++---
bin/FUNCTION_HELPERS.sh | 191 ++++++++++++++
18 files changed, 666 insertions(+), 64 deletions(-)
create mode 100644 LICENSE
create mode 100644 bin/FUNCTION_HELPERS.sh
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 4534ddd..4cb66d4 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,6 +1,6 @@
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
-# @FAKE_TEST_USERNAME will be requested for
+# @Josee9988 will be requested for
# review when someone opens a pull request.
-# if you want to add more owners just write it after @FAKE_TEST_USERNAME
-* @FAKE_TEST_USERNAME
+# if you want to add more owners just write it after @Josee9988
+* @Josee9988
diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
index f1d964a..b60dfc1 100644
--- a/.github/CODE_OF_CONDUCT.md
+++ b/.github/CODE_OF_CONDUCT.md
@@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing or otherwise unacceptable behaviour may be
-reported by contacting the project team at FAKE_TEST_EMAIL. All
+reported by contacting the project team at jgracia9988@gmail.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality concerning the reporter of an incident.
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index c942e4e..a2d624f 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1 +1,2 @@
-# add your own funding links
+github: Josee9988
+custom: ['https://www.paypal.me/josee9988']
diff --git a/.github/ISSUE_TEMPLATE/1-bug-report.md b/.github/ISSUE_TEMPLATE/1-bug-report.md
index a6e11cc..1376422 100644
--- a/.github/ISSUE_TEMPLATE/1-bug-report.md
+++ b/.github/ISSUE_TEMPLATE/1-bug-report.md
@@ -3,7 +3,7 @@ name: "π Bug Report"
about: "Report an issue to help the project improve."
title: "[Bug] "
labels: "Type: Bug"
-assignees: FAKE_TEST_USERNAME
+assignees: Josee9988
---
diff --git a/.github/ISSUE_TEMPLATE/2-failing-test.md b/.github/ISSUE_TEMPLATE/2-failing-test.md
index 9b1cee9..a239f2a 100644
--- a/.github/ISSUE_TEMPLATE/2-failing-test.md
+++ b/.github/ISSUE_TEMPLATE/2-failing-test.md
@@ -3,7 +3,7 @@ name: "π Failing Test"
about: "Report failing tests or CI jobs."
title: "[Test] "
labels: "Type: Test"
-assignees: FAKE_TEST_USERNAME
+assignees: Josee9988
---
diff --git a/.github/ISSUE_TEMPLATE/3-docs-bug.md b/.github/ISSUE_TEMPLATE/3-docs-bug.md
index 855d1d4..f987493 100644
--- a/.github/ISSUE_TEMPLATE/3-docs-bug.md
+++ b/.github/ISSUE_TEMPLATE/3-docs-bug.md
@@ -3,7 +3,7 @@ name: "π Documentation or README.md issue report"
about: "Report an issue in the project's documentation or README.md file."
title: ""
labels: "Documentation"
-assignees: FAKE_TEST_USERNAME
+assignees: Josee9988
---
# **π Documentation Issue Report**
diff --git a/.github/ISSUE_TEMPLATE/4-feature-request.md b/.github/ISSUE_TEMPLATE/4-feature-request.md
index 9550f60..33ecf94 100644
--- a/.github/ISSUE_TEMPLATE/4-feature-request.md
+++ b/.github/ISSUE_TEMPLATE/4-feature-request.md
@@ -3,7 +3,7 @@ name: "ππ Feature Request"
about: "Suggest an idea or possible new feature for this project."
title: ""
labels: "Type: Feature"
-assignees: FAKE_TEST_USERNAME
+assignees: Josee9988
---
diff --git a/.github/ISSUE_TEMPLATE/5-enhancement-request.md b/.github/ISSUE_TEMPLATE/5-enhancement-request.md
index 6e0c123..2b29bd5 100644
--- a/.github/ISSUE_TEMPLATE/5-enhancement-request.md
+++ b/.github/ISSUE_TEMPLATE/5-enhancement-request.md
@@ -3,7 +3,7 @@ name: "πβ Enhancement Request"
about: "Suggest an enhancement for this project. Improve an existing feature"
title: ""
labels: "Type: Enhancement"
-assignees: FAKE_TEST_USERNAME
+assignees: Josee9988
---
diff --git a/.github/ISSUE_TEMPLATE/6-security-report.md b/.github/ISSUE_TEMPLATE/6-security-report.md
index 3306b9d..81f6fef 100644
--- a/.github/ISSUE_TEMPLATE/6-security-report.md
+++ b/.github/ISSUE_TEMPLATE/6-security-report.md
@@ -3,7 +3,7 @@ name: "β οΈ Security Report"
about: "Report an issue to help the project improve."
title: ""
labels: "Type: Security"
-assignees: FAKE_TEST_USERNAME
+assignees: Josee9988
---
@@ -25,7 +25,7 @@ certain personal information or involves personal identifiable data, or you beli
that the data that you might leak by exposing the way on how to attack the project
could be considered as a data leak or could violate the privacy of any kind of
data or sensible data, please do not post it here and directly email the developer:
-(FAKE_TEST_EMAIL). You should post the issue with the least amount of
+(jgracia9988@gmail.com). You should post the issue with the least amount of
sensible or private data as possible to help us manage the security issue, and
with the extra data sent from your email to the developer (if any), we will deeply
analyze and try to fix it as fast as possible.
diff --git a/.github/ISSUE_TEMPLATE/7-question-support.md b/.github/ISSUE_TEMPLATE/7-question-support.md
index 2b10fb5..ec98c81 100644
--- a/.github/ISSUE_TEMPLATE/7-question-support.md
+++ b/.github/ISSUE_TEMPLATE/7-question-support.md
@@ -3,7 +3,7 @@ name: "β Question or Support Request"
about: "Questions and requests for support."
title: ""
labels: "Type: Question"
-assignees: FAKE_TEST_USERNAME
+assignees: Josee9988
---
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index af993b3..a053b0d 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Send an e-mail the developer
- url: mailto:FAKE_TEST_EMAIL
+ url: mailto:jgracia9988@gmail.com
about: Please do NOT use this email to post issues or feature requests (only important business/personal contact).
diff --git a/.github/SECURITY.md b/.github/SECURITY.md
index a8d01ff..30a193d 100644
--- a/.github/SECURITY.md
+++ b/.github/SECURITY.md
@@ -8,6 +8,6 @@ To report a security issue, go to the project's issues and create a new issue us
Read carefully the instructions of this issue template, and if your report could leak data or might expose
how to gain access to a restricted area or break the system,
-please email [FAKE_TEST_EMAIL](mailto:FAKE_TEST_EMAIL) and include the word "SECURITY" in the subject line.
+please email [jgracia9988@gmail.com](mailto:jgracia9988@gmail.com) and include the word "SECURITY" in the subject line.
We'll endeavour to respond quickly, and will keep you updated throughout the process.
diff --git a/.github/config.yml b/.github/config.yml
index 91e895a..1e537f7 100644
--- a/.github/config.yml
+++ b/.github/config.yml
@@ -2,7 +2,7 @@
# Comment to be posted to on first time issues
newIssueWelcomeComment: >
- Thanks for opening your first issue in FAKE_TEST_USERNAME/project-template! Be sure to follow the issue template and provide every bit of information to help the developers!
+ Thanks for opening your first issue in Josee9988/project-template! Be sure to follow the issue template and provide every bit of information to help the developers!
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
diff --git a/.gitignore b/.gitignore
index f89f074..49c69d3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-###> FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME ###
+###> Josee9988/project-template ###
# Folders
.vscode/
@@ -13,4 +13,4 @@ ignore.*
.env.test
*.pem
-###< FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME ###
+###< Josee9988/project-template ###
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ae8df3e..03f1f20 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,14 +1,252 @@
# **Change Log** ππ
-All notable changes to the "**FAKE_TEST_PROJECT_NAME**" DICK will be documented in this file.
+All notable changes to the "**Project template**" repository will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
-## [**0.0.1**] - 2021-07-08
+## [**1.7.2**] - 2021-07-08
### Added
-* The basic project structure from **[josee9988/project-template](https://github.com/Josee9988/project-template)**.
+* Multiple new .gitignore lines and improved its comment structure.
+
+### Fixed
+
+* Minnor typo in the generated README.md
+
+## [**1.7.1**] - 2021-07-01
+
+### Added
+
+* `.env` file will be ignored in the `.gitignore`.
+* Disabled some markdownlint rules in the generated README.md
+* Fixed some minnor errors in the README.md file
+
+## [**1.7.0**] - 2021-06-01
+
+### Added
+
+* Type: Test issue label.
+* Failing test issue template adds the new Type Test issue label.
+* Updated README.md with the new label.
+
+## [**1.6.0**] - 2021-05-21
+
+### Added
+
+* Divided the feature request into feature and enhancement request, each one with its respective labels.
+
+### Changed
+
+* Position of disclaimers and comments in the issue templates are moved to the bottom (but the security report) as some users directly erased everything to not read the text.
+* Image of the issue templates in the readme.md file.
+
+## [**1.5.0**] - 2021-05-15
+
+### Added
+
+* Auto-detection of user email.
+
+## [**1.4.5**] - 2021-04-24
+
+### Added
+
+* Sponsor section in the project's main readme.md file.
+* Improved and added documentation in the scripts.
+
+### Fixed
+
+* Readme "What does it include" fixed list of files.
+* Sponsor link in the generated README.md file.
+* Some typos
+
+## [**1.4.4**] - 2021-04-22
+
+### Added
+
+* --help option in the script.
+* More documentation and information for the user in the script prompts
+
+## [**1.4.3**] - 2021-04-21
+
+### Added
+
+* Support for Github todo app.
+
+## [**1.4.2**] - 2021-04-20
+
+### Added
+
+* An extra informational message in the script.
+* Welcome bot and its config (.github/config.yml)
+
+### Fixed
+
+* Issue templates now auto assigns the new labels.
+
+## [**1.4.1**] - 2021-04-20
+
+### Added
+
+* Security label
+
+### Changed
+
+* Project tree to its updated version.
+
+## [**1.4.0**] - 2021-04-19
+
+### Added
+
+* Readme file with the section with the recommended/used bots that the users should install.
+* Some informational comments in the script referencing the project's documentation.
+* A total of 18 new labels will be created right when you clone your repo using Github Probot settings.
+
+## [**1.3.0**] - 2021-04-14
+
+### Added
+
+* CODEOWNERS file inside the .github folder.
+
+### Fixed
+
+* Some README.md markdownlint bugs.
+
+## [**1.2.0**] - 2021-04-07
+
+### Added
+
+* Bug report issue templates have the preceding "[BUG]" title.
+* Multiple readme template headings (About the project, project tree, screenshots, donators).
+* Improved README.md template by fixing some minor problems.
+
+## [**1.1.1**] - 2021-04-02
+
+### Added
+
+* Username and project name are automatically selected (user can manually force change them using bash parameters [Username] [Project-Name])
+
+### Changed
+
+* Asciinema video
+
+## [**1.1.0**] - 2021-03-31
+
+### Added
+
+* Gitignore file ignores all \*.ignore.\* files.
+* Basic README.md template.
+* bin/FUNCTION_HELPERS script to improve the readability of the SETUP_TEMPLATE.sh file.
+
+### Changed
+
+* Header's emoji from the end of the README.md headers to the beginning to be shown better by the new GitHub's README table of contents.
+
+### Fixed
+
+* Git status is shown before the commit.
+
+### Fixed
+
+* Some typos in the CHANGELOG.md.
+
+## [**1.0.11**] - 2021-03-20
+
+### Added
+
+* Social links of the repo in the README.md file.
+* Added badges in the README.md file.
+* Added sponsor link in the contributing.yml file.
+
+### Fixed
+
+* Some minor typos in the README.md file.
+
+## [**1.0.10**] - 2021-03-17
+
+### Changed
+
+* `EXECUTEME.sh` script changed to `SETUP_TEMPLATE.sh`.
+* Changed the execution video from the README.md file (Asciinema's video).
+
+## [**1.0.9**] - 2021-03-17
+
+### Added
+
+* The script will git add and commit the new files/changes for you.
+
+## [**1.0.8**] - 2021-03-17
+
+### Changed
+
+* Improved README.md structure and fixed some typos.
+
+### Added
+
+* 'Extra recommendations' section in the README.md file.
+
+## [**1.0.7**] - 2021-03-16
+
+### Fixed
+
+* Some minor typos
+
+## [**1.0.6**] - 2021-03-16
+
+### Changed
+
+* Simplified PR template to make it easier.
+
+## [**1.0.5**] - 2021-03-13
+
+### Added
+
+* Checks to the shell script (check if the files exist)
+* Colourized the output of the script.
+
+## [**1.0.4**] - 2021-02-26
+
+### Added
+
+* Markdownlint disable the rule in the CHANGELOG.md file"
+
+## [**1.0.3**] - 2021-02-23
+
+### Removed
+
+* Josee's funding links.
+
+### Added
+
+* Shell script now checks if the .github directory exists.
+
+## [**1.0.2**] - 2020-09-08
+
+### Added
+
+* One more screenshot to the README.md file showing the community profile.
+* Documentation for the SETUP_TEMPLATE.sh script.
+
+### Changed
+
+* The project tree view showing the new LICENSE file.
+
+## [**1.0.1**] - 2020-09-08
+
+### Added
+
+* A LICENSE for the project will be removed with the SETUP_TEMPLATE.sh script.
+
+### Changed
+
+* The location of the pull request template to the .github/ folder.
+
+## [**1.0.0**] - 2020-09-08
+
+### Added
+
+* Added a CHANGELOG.md.
+* Support for the CHANGELOG in the SETUP_TEMPLATE.sh file (when run, it will remove all of the content and create a new file from scratch).
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..97d7d26
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Jose Gracia Berenguer
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index 642a694..6cd70c9 100644
--- a/README.md
+++ b/README.md
@@ -1,97 +1,248 @@
-
-# π₯ **FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME**
+# π₯ **Josee9988's Github Project Template**
-
+
+
+
+
---
-## π€ **About the project**
+## π€ **What is this template all about?**
-*
+* This template can be used as a base layer for any of your future repositories/projects.
+* Make your project easy to maintain with **8 issue templates**.
+* Quickstart your documentation with personalized **readme badges** and a cool readme structure.
+* Manage your issues with **20 issue labels** created just for you!
+* Make your _community healthier_ with all the guides like code of conduct, contributing, support, security...
+* Learn more with the [official Github guide on creating repositories from a template](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template).
+* To start using it; "**[click use this template](https://github.com/Josee9988/project-template/generate)**", create your new repository,
+* All the basic setup is made through an easy script that will auto-detect all your data to make it lightning fast! π²π² clone your new repository and execute the `SETUP_TEMPLATE.sh` shell script to personalize the files with your private details. Check how to execute it [here](https://asciinema.org/a/398761).
+* All the markdown follows [MarkdownLint rules](https://github.com/DavidAnson/markdownlint).
---
## β‘ **Installation**
-*
+1. To create a new repository from this template **[generate your new repository from this template](https://github.com/Josee9988/project-template/generate)**
+for more information or guidance, follow the [Github guide](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template).
+2. Clone your new repository **[generated from this template](https://github.com/Josee9988/project-template/generate)** and `cd` into it.
+3. **Execute** the `SETUP_TEMPLATE.sh` shell script to **customize** the files with your data.
+
+ ```bash
+ bash SETUP_TEMPLATE.sh # additional parameters [Username] [Project-Name] [Email]
+ ```
----
+ Or you can also do it like this:
+
+ ```bash
+ chmod u+x SETUP_TEMPLATE.sh && ./SETUP_TEMPLATE.sh # additional parameters [Username] [Project-Name] [Email]
+ ```
-## π **Usage**
+ Additionally, watch *[this video](https://asciinema.org/a/404568)* to see **how to execute the script** or use *`bash SETUP_TEMPLATE.sh --help`* to obtain some extra information.
+
+ If the automatic detection of the username, project name or email is NOT right, please post an issue, and you can **manually correct** them like: `bash SETUP_TEMPLATE.sh RightUsername RightProjectName RightEmail` being `$1` the new username, `$2` the new project name and `$3` the new email.
-*
+4. **Review** every single file and **customize** it as you like.
+5. Build your project. π
+
+β οΈ _Customize every file to fit your requirements_ β οΈ
---
-## π² **Project tree**
+## π **What does it include?**
+
+1. A **`SETUP_TEMPLATE.sh`** script that **MUST be executed right when you clone your repository**.
+The script will replace Jose's username and email (the author) with yours from all the.
+
+ 1. A README template file with a default template to start documenting your project. (it includes personalized badges and text with your project details)
+ 1. A CHANGELOG template file based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
+ 1. An [issue_label_bot.yaml](/.github/issue_label_bot.yaml) file to use the issue adder Github bot. [Activate it or check its documentation](https://github.com/marketplace/issue-label-bot).
+ 1. A [config.yml](/.github/config.yml) file to modify multiple bot's behaviours.
+ 1. A [settings.yml](/.github/settings.yml) file to use the popular settings Github bot. [Activate it or check its documentation](https://probot.github.io/apps/settings/).
+ 1. A [CONTRIBUTING](/.github/CONTRIBUTING.md) explaining how to contribute to the project. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/setting-guidelines-for-repository-contributors).
+ 1. A [SUPPORT](/.github/SUPPORT.md) explaining how to support the project. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/adding-support-resources-to-your-project).
+ 1. A [SECURITY](/.github/SECURITY.md) with a guide on how to post a security issue. [Learn more with the Github guide](https://docs.github.com/es/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository).
+ 1. A [CODEOWNERS](/.github/CODEOWNERS) with the new user as the main owner. [Learn more with the Github guide](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners).
+ 1. A [CODE_OF_CONDUCT](/.github/CODE_OF_CONDUCT.md) with a basic code of conduct. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/adding-a-code-of-conduct-to-your-project).
+ 1. A [PULL_REQUEST_TEMPLATE](/.github/pull_request_template.md) with a template for your pull request that closes issues with keywords. [Learn more with the Github guide](https://docs.github.com/es/github/building-a-strong-community/creating-a-pull-request-template-for-your-repository).
+ 1. Multiple [issues templates](/.github/ISSUE_TEMPLATE). [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository).
+ 1. A [config.yml](/.github/ISSUE_TEMPLATE/config.yml) with the config and information about the issue templates.
+ 1. A [Blank issue template](/.github/ISSUE_TEMPLATE) with the super basic stuff, all the issues should contain.
+ 1. A [Bug issue template](/.github/ISSUE_TEMPLATE/1-bug-report.md).
+ 1. A [Failing test issue template](/.github/ISSUE_TEMPLATE/2-failing-test.md).
+ 1. A [Documentation issue template](/.github/ISSUE_TEMPLATE/3-docs-bug.md).
+ 1. A [Feature request issue template](/.github/ISSUE_TEMPLATE/4-feature-request.md).
+ 1. A [Security report issue template](/.github/ISSUE_TEMPLATE/5-security-report.md).
+ 1. A [Question or support issue template](/.github/ISSUE_TEMPLATE/6-question-support.md).
-
+---
+
+### π² **Project tree**
+
+Files that will get removed after the execution of `SETUP_TEMPLATE.sh` are not shown! π
+
+```text
+.
+βββ CHANGELOG.md
+βββ .github
+βΒ Β βββ CODE_OF_CONDUCT.md
+βΒ Β βββ CODEOWNERS
+βΒ Β βββ CONTRIBUTING.md
+βΒ Β βββ FUNDING.yml
+βΒ Β βββ issue_label_bot.yaml
+βΒ Β βββ config.yml
+βΒ Β βββ ISSUE_TEMPLATE
+βΒ Β βΒ Β βββ 1-bug-report.md
+β β βββ 2-failing-test.md
+β β βββ 3-docs-bug.md
+β β βββ 4-feature-request.md
+β β βββ 5-enhancement-request.md
+β β βββ 6-security-report.md
+β β βββ 7-question-support.md
+β β βββ config.yml
+βΒ Β βββ ISSUE_TEMPLATE.md
+βΒ Β βββ pull_request_template.md
+βΒ Β βββ SECURITY.md
+βΒ Β βββ settings.yml
+βΒ Β βββ SUPPORT.md
+βββ .gitignore
+βββ README.md
+
+2 directories, 21 files
+```
---
## π **Additional notes**
-*
+* After **[generating your new repo with this template](https://github.com/Josee9988/project-template/generate)**, make sure to, right after you clone it, run the script `SETUP_TEMPLATE.sh`.
+
+* Then you will be presented with all the files modified with your project details and information. It is very important to **manually review every file** to check if it fits your requirements and performs any necessary changes to customize the project as you want.
+
+* If you are using **Windows** and you don't know how to execute the `SETUP_TEMPLATE.sh` script:
+ 1. Install **[git for Windows](https://git-scm.com/download/win)**.
+ 2. Right-click on the git repository folder and click "*git bash here*".
+ 3. Then just perform *`bash SETUP_TEMPLATE.sh`* **or** *`chmod u+x SETUP_TEMPLATE.sh && ./SETUP_TEMPLATE.sh`*.
+
+### π€ **Used Github bots**
+
+These are recommended bots that are prepared and configured for this template. If you install them your coding experience will probably be much better.
+We deeply recommend at least installing the [issue label bot](https://github.com/marketplace/issue-label-bot) as this bot is the one that adds all the labels used in the issue templates.
+
+1. The `issue_label_bot.yaml` file depends on the **[issue label bot](https://github.com/marketplace/issue-label-bot)**.
+2. The `settings.yml` file depends on the **[settings label bot](https://probot.github.io/apps/settings/)**.
+3. The `config.yml` file depends on the bot **[welcome bot](https://probot.github.io/apps/welcome/)** and **[todo bot](https://probot.github.io/apps/todo/)**
---
## πΈ **Screenshots**
-
+A couple of screenshots to delight you before you use this template.
----
+### πΊ All the issue templates
-## π° **Supporters and donators**
+
+
+
-We are currently looking for new donators to help and maintain this project! β€οΈ
+### π» An issue template opened
-By donating, you will help the development of this project, and *you will be featured in this FAKE_TEST_PROJECT_NAME's README.md* so everyone can see your kindness and visit your content β.
+
+
+
-
-
-
+### π The README template
-
+Badges and texts will be replaced with your project details!
----
+
+
+
+ Or watch [this video](https://gifs.com/gif/josee9988-s-readme-md-MwO5E3) to see the whole README template.
+
-FAKE_TEST_PROJECT_NAME was generated from *[Josee9988/project-template](https://github.com/Josee9988/project-template)* π
+### π The labels for your issues
----
+If the bot [probot-settings](https://probot.github.io/apps/settings/) is not installed you will not have these beautiful labels! (there are actually 1 more issue label than in the screenshot!)
+
+
+
+
-## π΅οΈ Extra recommendations
+### π The CHANGELOG template
-*
+(project name and project type will be replaced with yours)
+
+
+
+
+
+### π‘οΈ Security policy
+
+
+
+
+
+### πΌ Community profile at 100%
+
+
+
+
---
-## π Was the DICK helpful? Help us raise these numbers up
+## π΅οΈ **Extra recommendations**
-[![Github followers](https://img.shields.io/github/followers/FAKE_TEST_USERNAME.svg?style=social)](https://github.com/FAKE_TEST_USERNAME)
-[![Github stars](https://img.shields.io/github/stars/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME.svg?style=social)](https://github.com/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME/stargazers)
-[![Github watchers](https://img.shields.io/github/watchers/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME.svg?style=social)](https://github.com/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME/watchers)
-[![Github forks](https://img.shields.io/github/forks/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME.svg?style=social)](https://github.com/FAKE_TEST_USERNAME/FAKE_TEST_PROJECT_NAME/network/members)
-
-[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=github-sponsors&color=red&style=social)](https://github.com/sponsors/FAKE_TEST_USERNAME)
+For the right maintenance of the CHANGELOG.md, we recommend this [VSCode extension](https://github.com/Josee9988/Changelog-and-Markdown-snippets)
+and the read and understanding of the [keep a changelog guide](https://keepachangelog.com/en/1.0.0/).
+Read and comment about it in this [dev.to post](https://dev.to/josee9988/the-ultimate-github-project-template-1264).
+We also recommend installing all the [used bots](https://github.com/Josee9988/project-template#-used-github-bots).
-Enjoy! π
+## π **Project tests**
+
+If you want to improve the development of this project, you must, after changing or improving whatever run the project's tests to prove that they are working.
+
+To do so:
+
+```bash
+bash tests/TESTS_RUNNER.sh
+```
---
-## βοΈπ **License and Changelog**
+## π° **Supporters and donators**
-See the license in the '**[LICENSE](LICENSE)**' file.
+We are currently looking for new donators to help and maintain this project! β€οΈ
-Watch the changes in the '**[CHANGELOG.md](CHANGELOG.md)**' file.
+By donating, you will help the development of this project, and *you will be featured in this project's README.md* so everyone can see your kindness and visit your content β.
+
+
+
+
---
-_Made with a lot of β€οΈβ€οΈ by **[@FAKE_TEST_USERNAME](https://github.com/FAKE_TEST_USERNAME)**_
+## π Was the template helpful? Help us raise these numbers up
+
+[![Github followers](https://img.shields.io/github/followers/Josee9988.svg?style=social)](https://github.com/Josee9988)
+[![Github stars](https://img.shields.io/github/stars/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/stargazers)
+[![Github watchers](https://img.shields.io/github/watchers/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/watchers)
+[![Github forks](https://img.shields.io/github/forks/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/network/members)
+
+Enjoy! π
+
+> β οΈRemember that this template should be reviewed and modified to fit your requirements.
+> The script **SETUP_TEMPLATE.sh** should be executed right when you clone your new repository.
+> There will be files that will need *manual revision*β οΈ
+
+_Made with a lot of β€οΈβ€οΈ by **[@Josee9988](https://github.com/Josee9988)**_
diff --git a/bin/FUNCTION_HELPERS.sh b/bin/FUNCTION_HELPERS.sh
new file mode 100644
index 0000000..368005c
--- /dev/null
+++ b/bin/FUNCTION_HELPERS.sh
@@ -0,0 +1,191 @@
+#!/bin/bash
+
+#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#
+# PURPOSE: Secondary (helper) script that is called by the main SETUP_TEMPLATE.sh file by
+# obtaining some functions to better modularize the code.
+# TITLE: FUNCTION_HELPERS
+# AUTHOR: Jose Gracia
+# VERSION: See in CHANGELOG.md
+# NOTES: This script will auto remove itself, and in case of wanting to run it again, the user must download
+# it again or do a 'git stash' and revert the changes.
+# BASH_VERSION: 5.0.17(1)-release
+# LICENSE: see in ../LICENSE (project root) or https://github.com/Josee9988/project-template/blob/master/LICENSE
+# GITHUB: https://github.com/Josee9988/
+# REPOSITORY: https://github.com/Josee9988/project-template
+# ISSUES: https://github.com/Josee9988/project-template/issues
+# MAIL: jgracia9988@gmail.com
+#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#
+
+# SCRIPT WITH EXPORTED FUNCTIONS AND VARIABLES USED IN THE MAIN SETUP_TEMPLATE
+RED='\033[1;31m'
+NC='\033[0m' # No Color
+UPurple='\033[4;35m'
+BBLUE='\033[1;34m'
+
+# Function that centers a text in the terminal
+center() {
+ term_width="$(tput cols)"
+ padding="$(printf '%0.1s' ={1..500})"
+ echo -e "\n\n${BBLUE}$(printf '%*.*s %s %*.*s\n' 0 "$(((term_width - 2 - ${#1}) / 2))" "$padding" "$1" 0 "$(((term_width - 1 - ${#1}) / 2))" "$padding")${NC}\n"
+}
+
+checkFiles() {
+ ### Check if the .github directory does exist ###
+ if [ ! -d ".github/" ] || [ ! -d ".github/ISSUE_TEMPLATE" ]; then
+ echo -e "${RED}Directory .github/ DOES NOT EXIST WITH ALL THE FILES NEEDED.${NC}"
+ displayErrorInstructions
+ exit 1 # exit with error code 1
+ fi
+
+ ### Checks if the root files exist and some extra important files ###
+ if [ ! -f "CHANGELOG.md" ] || [ ! -f "README.md" ] || [ ! -f ".gitignore" ] || [ ! -f "LICENSE" ] || [ ! -f ".github/settings.yml" ] || [ ! -f ".github/pull_request_template.md" ] || [ ! -f ".github/ISSUE_TEMPLATE/1-bug-report.md" ] || [ ! -f ".github/ISSUE_TEMPLATE/config.yml" ]; then
+ echo -e "${RED}The script couldn't find one or many of the template main files${NC}."
+ displayErrorInstructions
+ exit 1 # exit with error code 1
+ fi
+}
+
+displayErrorInstructions() {
+ echo -e "${RED}There are files missing! Have you modified the repository before executing this command?${NC}"
+ echo -e "\nYou should try to 'git stash' your changes and execute this script from the project root again, or clone again the repository (the template) without any changes.\n"
+ echo -e "For more information visit: ${UPurple}https://github.com/Josee9988/project-template${NC}"
+ echo -e "If you think this may be an issue please post it at: ${UPurple}https://github.com/Josee9988/project-template/issues${NC}"
+}
+
+helpCommand() {
+ if [[ "$1" == *"--help" ]] || [[ "$1" == *"-h" ]]; then # if the user specified help command
+ displayHelpTexts
+ exit 0
+ fi
+}
+
+displayHelpTexts() {
+ center "User help"
+ echo -e "Script usage: ${BBLUE}$0 [Username] [Project-Name] [Email]${NC} (The project name should not contain spaces)${NC}\n"
+ echo "Arguments of username, project-name and email are automatically gathered from your git repository and git config, so they are optional in case they are not detected correctly."
+ echo -e "Make sure you have ${BBLUE}read the documentation before executing${NC} this script: ${UPurple}https://github.com/Josee9988/project-template${NC}"
+ echo -e "If you have any questions or if any issue is found, please make sure to report it at: ${UPurple}https://github.com/Josee9988/project-template/issues${NC}"
+}
+
+writeREADME() {
+ PROJECT_NAME_PARSED=${PROJECT_NAME/-/ }
+ bash -c "NEW_USERNAME='NEW_USERNAME' PROJECT_NAME='PROJECT_NAME' PROJECT_TYPE='PROJECT_TYPE'; cat << EOF > README.md
+
+
+# π₯ **$NEW_USERNAME/$PROJECT_NAME**
+
+
+
+---
+
+## π€ **About the project**
+
+*
+
+---
+
+## β‘ **Installation**
+
+*
+
+---
+
+## π **Usage**
+
+*
+
+---
+
+## π² **Project tree**
+
+
+
+---
+
+## π **Additional notes**
+
+*
+
+---
+
+## πΈ **Screenshots**
+
+
+
+---
+
+## π° **Supporters and donators**
+
+We are currently looking for new donators to help and maintain this project! β€οΈ
+
+By donating, you will help the development of this project, and *you will be featured in this $PROJECT_NAME's README.md* so everyone can see your kindness and visit your content β.
+
+
+
+
+
+
+
+---
+
+$PROJECT_NAME was generated from *[Josee9988/project-template](https://github.com/Josee9988/project-template)* π
+
+---
+
+## π΅οΈ Extra recommendations
+
+*
+
+---
+
+## π Was the $PROJECT_TYPE helpful? Help us raise these numbers up
+
+[![Github followers](https://img.shields.io/github/followers/$NEW_USERNAME.svg?style=social)](https://github.com/$NEW_USERNAME)
+[![Github stars](https://img.shields.io/github/stars/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/stargazers)
+[![Github watchers](https://img.shields.io/github/watchers/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/watchers)
+[![Github forks](https://img.shields.io/github/forks/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/network/members)
+
+[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=github-sponsors&color=red&style=social)](https://github.com/sponsors/$NEW_USERNAME)
+
+Enjoy! π
+
+---
+
+## βοΈπ **License and Changelog**
+
+See the license in the '**[LICENSE](LICENSE)**' file.
+
+Watch the changes in the '**[CHANGELOG.md](CHANGELOG.md)**' file.
+
+---
+
+_Made with a lot of β€οΈβ€οΈ by **[@$NEW_USERNAME](https://github.com/$NEW_USERNAME)**_
+EOF"
+}
+
+writeCHANGELOG() {
+ ACTUAL_DATE=$(date '+%Y-%m-%d')
+ bash -c "PROJECT_NAME='PROJECT_NAME' PROJECT_TYPE='PROJECT_TYPE' ACTUAL_DATE='ACTUAL_DATE'; cat << EOF > CHANGELOG.md
+
+# **Change Log** ππ
+
+All notable changes to the \"**$PROJECT_NAME**\" $PROJECT_TYPE will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+---
+
+## [**0.0.1**] - $ACTUAL_DATE
+
+### Added
+
+* The basic project structure from **[josee9988/project-template](https://github.com/Josee9988/project-template)**.
+EOF"
+}
From 119a7b153333fc83a58ee92430fbae4bc42abe40 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 13:33:27 +0200
Subject: [PATCH 08/20] =?UTF-8?q?Set=20up=20'@Josee9988/project-template'?=
=?UTF-8?q?=20template:=20Personalized=20files=20by=20executing=20the=20SE?=
=?UTF-8?q?TUP=5FTEMPLATE.sh=20script.=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/CODEOWNERS | 6 +-
.github/CODE_OF_CONDUCT.md | 2 +-
.github/FUNDING.yml | 3 +-
.github/ISSUE_TEMPLATE/1-bug-report.md | 2 +-
.github/ISSUE_TEMPLATE/2-failing-test.md | 2 +-
.github/ISSUE_TEMPLATE/3-docs-bug.md | 2 +-
.github/ISSUE_TEMPLATE/4-feature-request.md | 2 +-
.../ISSUE_TEMPLATE/5-enhancement-request.md | 2 +-
.github/ISSUE_TEMPLATE/6-security-report.md | 4 +-
.github/ISSUE_TEMPLATE/7-question-support.md | 2 +-
.github/ISSUE_TEMPLATE/config.yml | 2 +-
.github/SECURITY.md | 2 +-
.github/config.yml | 2 +-
.gitignore | 4 +-
CHANGELOG.md | 244 +-----------------
LICENSE | 21 --
README.md | 237 +++--------------
SETUP_TEMPLATE.sh | 18 +-
bin/FUNCTION_HELPERS.sh | 191 --------------
19 files changed, 78 insertions(+), 670 deletions(-)
delete mode 100644 LICENSE
delete mode 100644 bin/FUNCTION_HELPERS.sh
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 4cb66d4..2e80c9f 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,6 +1,6 @@
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
-# @Josee9988 will be requested for
+# @a will be requested for
# review when someone opens a pull request.
-# if you want to add more owners just write it after @Josee9988
-* @Josee9988
+# if you want to add more owners just write it after @a
+* @a
diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
index b60dfc1..5977109 100644
--- a/.github/CODE_OF_CONDUCT.md
+++ b/.github/CODE_OF_CONDUCT.md
@@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing or otherwise unacceptable behaviour may be
-reported by contacting the project team at jgracia9988@gmail.com. All
+reported by contacting the project team at c. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality concerning the reporter of an incident.
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index a2d624f..c942e4e 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,2 +1 @@
-github: Josee9988
-custom: ['https://www.paypal.me/josee9988']
+# add your own funding links
diff --git a/.github/ISSUE_TEMPLATE/1-bug-report.md b/.github/ISSUE_TEMPLATE/1-bug-report.md
index 1376422..a98661f 100644
--- a/.github/ISSUE_TEMPLATE/1-bug-report.md
+++ b/.github/ISSUE_TEMPLATE/1-bug-report.md
@@ -3,7 +3,7 @@ name: "π Bug Report"
about: "Report an issue to help the project improve."
title: "[Bug] "
labels: "Type: Bug"
-assignees: Josee9988
+assignees: a
---
diff --git a/.github/ISSUE_TEMPLATE/2-failing-test.md b/.github/ISSUE_TEMPLATE/2-failing-test.md
index a239f2a..5ef4708 100644
--- a/.github/ISSUE_TEMPLATE/2-failing-test.md
+++ b/.github/ISSUE_TEMPLATE/2-failing-test.md
@@ -3,7 +3,7 @@ name: "π Failing Test"
about: "Report failing tests or CI jobs."
title: "[Test] "
labels: "Type: Test"
-assignees: Josee9988
+assignees: a
---
diff --git a/.github/ISSUE_TEMPLATE/3-docs-bug.md b/.github/ISSUE_TEMPLATE/3-docs-bug.md
index f987493..501a522 100644
--- a/.github/ISSUE_TEMPLATE/3-docs-bug.md
+++ b/.github/ISSUE_TEMPLATE/3-docs-bug.md
@@ -3,7 +3,7 @@ name: "π Documentation or README.md issue report"
about: "Report an issue in the project's documentation or README.md file."
title: ""
labels: "Documentation"
-assignees: Josee9988
+assignees: a
---
# **π Documentation Issue Report**
diff --git a/.github/ISSUE_TEMPLATE/4-feature-request.md b/.github/ISSUE_TEMPLATE/4-feature-request.md
index 33ecf94..ae991b7 100644
--- a/.github/ISSUE_TEMPLATE/4-feature-request.md
+++ b/.github/ISSUE_TEMPLATE/4-feature-request.md
@@ -3,7 +3,7 @@ name: "ππ Feature Request"
about: "Suggest an idea or possible new feature for this project."
title: ""
labels: "Type: Feature"
-assignees: Josee9988
+assignees: a
---
diff --git a/.github/ISSUE_TEMPLATE/5-enhancement-request.md b/.github/ISSUE_TEMPLATE/5-enhancement-request.md
index 2b29bd5..c7797ac 100644
--- a/.github/ISSUE_TEMPLATE/5-enhancement-request.md
+++ b/.github/ISSUE_TEMPLATE/5-enhancement-request.md
@@ -3,7 +3,7 @@ name: "πβ Enhancement Request"
about: "Suggest an enhancement for this project. Improve an existing feature"
title: ""
labels: "Type: Enhancement"
-assignees: Josee9988
+assignees: a
---
diff --git a/.github/ISSUE_TEMPLATE/6-security-report.md b/.github/ISSUE_TEMPLATE/6-security-report.md
index 81f6fef..77dad56 100644
--- a/.github/ISSUE_TEMPLATE/6-security-report.md
+++ b/.github/ISSUE_TEMPLATE/6-security-report.md
@@ -3,7 +3,7 @@ name: "β οΈ Security Report"
about: "Report an issue to help the project improve."
title: ""
labels: "Type: Security"
-assignees: Josee9988
+assignees: a
---
@@ -25,7 +25,7 @@ certain personal information or involves personal identifiable data, or you beli
that the data that you might leak by exposing the way on how to attack the project
could be considered as a data leak or could violate the privacy of any kind of
data or sensible data, please do not post it here and directly email the developer:
-(jgracia9988@gmail.com). You should post the issue with the least amount of
+(c). You should post the issue with the least amount of
sensible or private data as possible to help us manage the security issue, and
with the extra data sent from your email to the developer (if any), we will deeply
analyze and try to fix it as fast as possible.
diff --git a/.github/ISSUE_TEMPLATE/7-question-support.md b/.github/ISSUE_TEMPLATE/7-question-support.md
index ec98c81..6178458 100644
--- a/.github/ISSUE_TEMPLATE/7-question-support.md
+++ b/.github/ISSUE_TEMPLATE/7-question-support.md
@@ -3,7 +3,7 @@ name: "β Question or Support Request"
about: "Questions and requests for support."
title: ""
labels: "Type: Question"
-assignees: Josee9988
+assignees: a
---
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index a053b0d..a30ea40 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Send an e-mail the developer
- url: mailto:jgracia9988@gmail.com
+ url: mailto:c
about: Please do NOT use this email to post issues or feature requests (only important business/personal contact).
diff --git a/.github/SECURITY.md b/.github/SECURITY.md
index 30a193d..a944e03 100644
--- a/.github/SECURITY.md
+++ b/.github/SECURITY.md
@@ -8,6 +8,6 @@ To report a security issue, go to the project's issues and create a new issue us
Read carefully the instructions of this issue template, and if your report could leak data or might expose
how to gain access to a restricted area or break the system,
-please email [jgracia9988@gmail.com](mailto:jgracia9988@gmail.com) and include the word "SECURITY" in the subject line.
+please email [c](mailto:c) and include the word "SECURITY" in the subject line.
We'll endeavour to respond quickly, and will keep you updated throughout the process.
diff --git a/.github/config.yml b/.github/config.yml
index 1e537f7..417f4d8 100644
--- a/.github/config.yml
+++ b/.github/config.yml
@@ -2,7 +2,7 @@
# Comment to be posted to on first time issues
newIssueWelcomeComment: >
- Thanks for opening your first issue in Josee9988/project-template! Be sure to follow the issue template and provide every bit of information to help the developers!
+ Thanks for opening your first issue in a/project-template! Be sure to follow the issue template and provide every bit of information to help the developers!
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
diff --git a/.gitignore b/.gitignore
index 49c69d3..e114e53 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-###> Josee9988/project-template ###
+###> a/b ###
# Folders
.vscode/
@@ -13,4 +13,4 @@ ignore.*
.env.test
*.pem
-###< Josee9988/project-template ###
+###< a/b ###
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 03f1f20..a9bc506 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,252 +1,14 @@
# **Change Log** ππ
-All notable changes to the "**Project template**" repository will be documented in this file.
+All notable changes to the "**b**" c will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
-## [**1.7.2**] - 2021-07-08
+## [**0.0.1**] - 2021-07-08
### Added
-* Multiple new .gitignore lines and improved its comment structure.
-
-### Fixed
-
-* Minnor typo in the generated README.md
-
-## [**1.7.1**] - 2021-07-01
-
-### Added
-
-* `.env` file will be ignored in the `.gitignore`.
-* Disabled some markdownlint rules in the generated README.md
-* Fixed some minnor errors in the README.md file
-
-## [**1.7.0**] - 2021-06-01
-
-### Added
-
-* Type: Test issue label.
-* Failing test issue template adds the new Type Test issue label.
-* Updated README.md with the new label.
-
-## [**1.6.0**] - 2021-05-21
-
-### Added
-
-* Divided the feature request into feature and enhancement request, each one with its respective labels.
-
-### Changed
-
-* Position of disclaimers and comments in the issue templates are moved to the bottom (but the security report) as some users directly erased everything to not read the text.
-* Image of the issue templates in the readme.md file.
-
-## [**1.5.0**] - 2021-05-15
-
-### Added
-
-* Auto-detection of user email.
-
-## [**1.4.5**] - 2021-04-24
-
-### Added
-
-* Sponsor section in the project's main readme.md file.
-* Improved and added documentation in the scripts.
-
-### Fixed
-
-* Readme "What does it include" fixed list of files.
-* Sponsor link in the generated README.md file.
-* Some typos
-
-## [**1.4.4**] - 2021-04-22
-
-### Added
-
-* --help option in the script.
-* More documentation and information for the user in the script prompts
-
-## [**1.4.3**] - 2021-04-21
-
-### Added
-
-* Support for Github todo app.
-
-## [**1.4.2**] - 2021-04-20
-
-### Added
-
-* An extra informational message in the script.
-* Welcome bot and its config (.github/config.yml)
-
-### Fixed
-
-* Issue templates now auto assigns the new labels.
-
-## [**1.4.1**] - 2021-04-20
-
-### Added
-
-* Security label
-
-### Changed
-
-* Project tree to its updated version.
-
-## [**1.4.0**] - 2021-04-19
-
-### Added
-
-* Readme file with the section with the recommended/used bots that the users should install.
-* Some informational comments in the script referencing the project's documentation.
-* A total of 18 new labels will be created right when you clone your repo using Github Probot settings.
-
-## [**1.3.0**] - 2021-04-14
-
-### Added
-
-* CODEOWNERS file inside the .github folder.
-
-### Fixed
-
-* Some README.md markdownlint bugs.
-
-## [**1.2.0**] - 2021-04-07
-
-### Added
-
-* Bug report issue templates have the preceding "[BUG]" title.
-* Multiple readme template headings (About the project, project tree, screenshots, donators).
-* Improved README.md template by fixing some minor problems.
-
-## [**1.1.1**] - 2021-04-02
-
-### Added
-
-* Username and project name are automatically selected (user can manually force change them using bash parameters [Username] [Project-Name])
-
-### Changed
-
-* Asciinema video
-
-## [**1.1.0**] - 2021-03-31
-
-### Added
-
-* Gitignore file ignores all \*.ignore.\* files.
-* Basic README.md template.
-* bin/FUNCTION_HELPERS script to improve the readability of the SETUP_TEMPLATE.sh file.
-
-### Changed
-
-* Header's emoji from the end of the README.md headers to the beginning to be shown better by the new GitHub's README table of contents.
-
-### Fixed
-
-* Git status is shown before the commit.
-
-### Fixed
-
-* Some typos in the CHANGELOG.md.
-
-## [**1.0.11**] - 2021-03-20
-
-### Added
-
-* Social links of the repo in the README.md file.
-* Added badges in the README.md file.
-* Added sponsor link in the contributing.yml file.
-
-### Fixed
-
-* Some minor typos in the README.md file.
-
-## [**1.0.10**] - 2021-03-17
-
-### Changed
-
-* `EXECUTEME.sh` script changed to `SETUP_TEMPLATE.sh`.
-* Changed the execution video from the README.md file (Asciinema's video).
-
-## [**1.0.9**] - 2021-03-17
-
-### Added
-
-* The script will git add and commit the new files/changes for you.
-
-## [**1.0.8**] - 2021-03-17
-
-### Changed
-
-* Improved README.md structure and fixed some typos.
-
-### Added
-
-* 'Extra recommendations' section in the README.md file.
-
-## [**1.0.7**] - 2021-03-16
-
-### Fixed
-
-* Some minor typos
-
-## [**1.0.6**] - 2021-03-16
-
-### Changed
-
-* Simplified PR template to make it easier.
-
-## [**1.0.5**] - 2021-03-13
-
-### Added
-
-* Checks to the shell script (check if the files exist)
-* Colourized the output of the script.
-
-## [**1.0.4**] - 2021-02-26
-
-### Added
-
-* Markdownlint disable the rule in the CHANGELOG.md file"
-
-## [**1.0.3**] - 2021-02-23
-
-### Removed
-
-* Josee's funding links.
-
-### Added
-
-* Shell script now checks if the .github directory exists.
-
-## [**1.0.2**] - 2020-09-08
-
-### Added
-
-* One more screenshot to the README.md file showing the community profile.
-* Documentation for the SETUP_TEMPLATE.sh script.
-
-### Changed
-
-* The project tree view showing the new LICENSE file.
-
-## [**1.0.1**] - 2020-09-08
-
-### Added
-
-* A LICENSE for the project will be removed with the SETUP_TEMPLATE.sh script.
-
-### Changed
-
-* The location of the pull request template to the .github/ folder.
-
-## [**1.0.0**] - 2020-09-08
-
-### Added
-
-* Added a CHANGELOG.md.
-* Support for the CHANGELOG in the SETUP_TEMPLATE.sh file (when run, it will remove all of the content and create a new file from scratch).
+* The basic project structure from **[josee9988/project-template](https://github.com/Josee9988/project-template)**.
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 97d7d26..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2020 Jose Gracia Berenguer
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/README.md b/README.md
index 6cd70c9..8adb718 100644
--- a/README.md
+++ b/README.md
@@ -1,248 +1,97 @@
-# π₯ **Josee9988's Github Project Template**
+
+# π₯ **a/b**
-
-
-
-
-
+
---
-## π€ **What is this template all about?**
+## π€ **About the project**
-* This template can be used as a base layer for any of your future repositories/projects.
-* Make your project easy to maintain with **8 issue templates**.
-* Quickstart your documentation with personalized **readme badges** and a cool readme structure.
-* Manage your issues with **20 issue labels** created just for you!
-* Make your _community healthier_ with all the guides like code of conduct, contributing, support, security...
-* Learn more with the [official Github guide on creating repositories from a template](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template).
-* To start using it; "**[click use this template](https://github.com/Josee9988/project-template/generate)**", create your new repository,
-* All the basic setup is made through an easy script that will auto-detect all your data to make it lightning fast! π²π² clone your new repository and execute the `SETUP_TEMPLATE.sh` shell script to personalize the files with your private details. Check how to execute it [here](https://asciinema.org/a/398761).
-* All the markdown follows [MarkdownLint rules](https://github.com/DavidAnson/markdownlint).
+*
---
## β‘ **Installation**
-1. To create a new repository from this template **[generate your new repository from this template](https://github.com/Josee9988/project-template/generate)**
-for more information or guidance, follow the [Github guide](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template).
-2. Clone your new repository **[generated from this template](https://github.com/Josee9988/project-template/generate)** and `cd` into it.
-3. **Execute** the `SETUP_TEMPLATE.sh` shell script to **customize** the files with your data.
-
- ```bash
- bash SETUP_TEMPLATE.sh # additional parameters [Username] [Project-Name] [Email]
- ```
-
- Or you can also do it like this:
-
- ```bash
- chmod u+x SETUP_TEMPLATE.sh && ./SETUP_TEMPLATE.sh # additional parameters [Username] [Project-Name] [Email]
- ```
+*
- Additionally, watch *[this video](https://asciinema.org/a/404568)* to see **how to execute the script** or use *`bash SETUP_TEMPLATE.sh --help`* to obtain some extra information.
-
- If the automatic detection of the username, project name or email is NOT right, please post an issue, and you can **manually correct** them like: `bash SETUP_TEMPLATE.sh RightUsername RightProjectName RightEmail` being `$1` the new username, `$2` the new project name and `$3` the new email.
+---
-4. **Review** every single file and **customize** it as you like.
-5. Build your project. π
+## π **Usage**
-β οΈ _Customize every file to fit your requirements_ β οΈ
+*
---
-## π **What does it include?**
-
-1. A **`SETUP_TEMPLATE.sh`** script that **MUST be executed right when you clone your repository**.
-The script will replace Jose's username and email (the author) with yours from all the.
-
- 1. A README template file with a default template to start documenting your project. (it includes personalized badges and text with your project details)
- 1. A CHANGELOG template file based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- 1. An [issue_label_bot.yaml](/.github/issue_label_bot.yaml) file to use the issue adder Github bot. [Activate it or check its documentation](https://github.com/marketplace/issue-label-bot).
- 1. A [config.yml](/.github/config.yml) file to modify multiple bot's behaviours.
- 1. A [settings.yml](/.github/settings.yml) file to use the popular settings Github bot. [Activate it or check its documentation](https://probot.github.io/apps/settings/).
- 1. A [CONTRIBUTING](/.github/CONTRIBUTING.md) explaining how to contribute to the project. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/setting-guidelines-for-repository-contributors).
- 1. A [SUPPORT](/.github/SUPPORT.md) explaining how to support the project. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/adding-support-resources-to-your-project).
- 1. A [SECURITY](/.github/SECURITY.md) with a guide on how to post a security issue. [Learn more with the Github guide](https://docs.github.com/es/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository).
- 1. A [CODEOWNERS](/.github/CODEOWNERS) with the new user as the main owner. [Learn more with the Github guide](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners).
- 1. A [CODE_OF_CONDUCT](/.github/CODE_OF_CONDUCT.md) with a basic code of conduct. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/adding-a-code-of-conduct-to-your-project).
- 1. A [PULL_REQUEST_TEMPLATE](/.github/pull_request_template.md) with a template for your pull request that closes issues with keywords. [Learn more with the Github guide](https://docs.github.com/es/github/building-a-strong-community/creating-a-pull-request-template-for-your-repository).
- 1. Multiple [issues templates](/.github/ISSUE_TEMPLATE). [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository).
- 1. A [config.yml](/.github/ISSUE_TEMPLATE/config.yml) with the config and information about the issue templates.
- 1. A [Blank issue template](/.github/ISSUE_TEMPLATE) with the super basic stuff, all the issues should contain.
- 1. A [Bug issue template](/.github/ISSUE_TEMPLATE/1-bug-report.md).
- 1. A [Failing test issue template](/.github/ISSUE_TEMPLATE/2-failing-test.md).
- 1. A [Documentation issue template](/.github/ISSUE_TEMPLATE/3-docs-bug.md).
- 1. A [Feature request issue template](/.github/ISSUE_TEMPLATE/4-feature-request.md).
- 1. A [Security report issue template](/.github/ISSUE_TEMPLATE/5-security-report.md).
- 1. A [Question or support issue template](/.github/ISSUE_TEMPLATE/6-question-support.md).
+## π² **Project tree**
----
-
-### π² **Project tree**
-
-Files that will get removed after the execution of `SETUP_TEMPLATE.sh` are not shown! π
-
-```text
-.
-βββ CHANGELOG.md
-βββ .github
-βΒ Β βββ CODE_OF_CONDUCT.md
-βΒ Β βββ CODEOWNERS
-βΒ Β βββ CONTRIBUTING.md
-βΒ Β βββ FUNDING.yml
-βΒ Β βββ issue_label_bot.yaml
-βΒ Β βββ config.yml
-βΒ Β βββ ISSUE_TEMPLATE
-βΒ Β βΒ Β βββ 1-bug-report.md
-β β βββ 2-failing-test.md
-β β βββ 3-docs-bug.md
-β β βββ 4-feature-request.md
-β β βββ 5-enhancement-request.md
-β β βββ 6-security-report.md
-β β βββ 7-question-support.md
-β β βββ config.yml
-βΒ Β βββ ISSUE_TEMPLATE.md
-βΒ Β βββ pull_request_template.md
-βΒ Β βββ SECURITY.md
-βΒ Β βββ settings.yml
-βΒ Β βββ SUPPORT.md
-βββ .gitignore
-βββ README.md
-
-2 directories, 21 files
-```
+
---
## π **Additional notes**
-* After **[generating your new repo with this template](https://github.com/Josee9988/project-template/generate)**, make sure to, right after you clone it, run the script `SETUP_TEMPLATE.sh`.
-
-* Then you will be presented with all the files modified with your project details and information. It is very important to **manually review every file** to check if it fits your requirements and performs any necessary changes to customize the project as you want.
-
-* If you are using **Windows** and you don't know how to execute the `SETUP_TEMPLATE.sh` script:
- 1. Install **[git for Windows](https://git-scm.com/download/win)**.
- 2. Right-click on the git repository folder and click "*git bash here*".
- 3. Then just perform *`bash SETUP_TEMPLATE.sh`* **or** *`chmod u+x SETUP_TEMPLATE.sh && ./SETUP_TEMPLATE.sh`*.
-
-### π€ **Used Github bots**
-
-These are recommended bots that are prepared and configured for this template. If you install them your coding experience will probably be much better.
-We deeply recommend at least installing the [issue label bot](https://github.com/marketplace/issue-label-bot) as this bot is the one that adds all the labels used in the issue templates.
-
-1. The `issue_label_bot.yaml` file depends on the **[issue label bot](https://github.com/marketplace/issue-label-bot)**.
-2. The `settings.yml` file depends on the **[settings label bot](https://probot.github.io/apps/settings/)**.
-3. The `config.yml` file depends on the bot **[welcome bot](https://probot.github.io/apps/welcome/)** and **[todo bot](https://probot.github.io/apps/todo/)**
+*
---
## πΈ **Screenshots**
-A couple of screenshots to delight you before you use this template.
-
-### πΊ All the issue templates
-
-
-
-
-
-### π» An issue template opened
-
-
-
-
-
-### π The README template
-
-Badges and texts will be replaced with your project details!
-
-
-
-
- Or watch [this video](https://gifs.com/gif/josee9988-s-readme-md-MwO5E3) to see the whole README template.
-
+
-### π The labels for your issues
-
-If the bot [probot-settings](https://probot.github.io/apps/settings/) is not installed you will not have these beautiful labels! (there are actually 1 more issue label than in the screenshot!)
-
-
-
-
-
-### π The CHANGELOG template
-
-(project name and project type will be replaced with yours)
+---
-
-
-
+## π° **Supporters and donators**
-### π‘οΈ Security policy
+We are currently looking for new donators to help and maintain this project! β€οΈ
-
-
-
+By donating, you will help the development of this project, and *you will be featured in this b's README.md* so everyone can see your kindness and visit your content β.
-### πΌ Community profile at 100%
+
+
+
-
-
-
+
---
-## π΅οΈ **Extra recommendations**
-
-For the right maintenance of the CHANGELOG.md, we recommend this [VSCode extension](https://github.com/Josee9988/Changelog-and-Markdown-snippets)
-and the read and understanding of the [keep a changelog guide](https://keepachangelog.com/en/1.0.0/).
-Read and comment about it in this [dev.to post](https://dev.to/josee9988/the-ultimate-github-project-template-1264).
-We also recommend installing all the [used bots](https://github.com/Josee9988/project-template#-used-github-bots).
+b was generated from *[Josee9988/project-template](https://github.com/Josee9988/project-template)* π
-## π **Project tests**
-
-If you want to improve the development of this project, you must, after changing or improving whatever run the project's tests to prove that they are working.
+---
-To do so:
+## π΅οΈ Extra recommendations
-```bash
-bash tests/TESTS_RUNNER.sh
-```
+*
---
-## π° **Supporters and donators**
-
-We are currently looking for new donators to help and maintain this project! β€οΈ
+## π Was the c helpful? Help us raise these numbers up
-By donating, you will help the development of this project, and *you will be featured in this project's README.md* so everyone can see your kindness and visit your content β.
+[![Github followers](https://img.shields.io/github/followers/a.svg?style=social)](https://github.com/a)
+[![Github stars](https://img.shields.io/github/stars/a/b.svg?style=social)](https://github.com/a/b/stargazers)
+[![Github watchers](https://img.shields.io/github/watchers/a/b.svg?style=social)](https://github.com/a/b/watchers)
+[![Github forks](https://img.shields.io/github/forks/a/b.svg?style=social)](https://github.com/a/b/network/members)
+
+[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=github-sponsors&color=red&style=social)](https://github.com/sponsors/a)
-
-
-
+Enjoy! π
---
-## π Was the template helpful? Help us raise these numbers up
+## βοΈπ **License and Changelog**
-[![Github followers](https://img.shields.io/github/followers/Josee9988.svg?style=social)](https://github.com/Josee9988)
-[![Github stars](https://img.shields.io/github/stars/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/stargazers)
-[![Github watchers](https://img.shields.io/github/watchers/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/watchers)
-[![Github forks](https://img.shields.io/github/forks/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/network/members)
+See the license in the '**[LICENSE](LICENSE)**' file.
-Enjoy! π
+Watch the changes in the '**[CHANGELOG.md](CHANGELOG.md)**' file.
-> β οΈRemember that this template should be reviewed and modified to fit your requirements.
-> The script **SETUP_TEMPLATE.sh** should be executed right when you clone your new repository.
-> There will be files that will need *manual revision*β οΈ
+---
-_Made with a lot of β€οΈβ€οΈ by **[@Josee9988](https://github.com/Josee9988)**_
+_Made with a lot of β€οΈβ€οΈ by **[@a](https://github.com/a)**_
diff --git a/SETUP_TEMPLATE.sh b/SETUP_TEMPLATE.sh
index e78e92b..83bd655 100644
--- a/SETUP_TEMPLATE.sh
+++ b/SETUP_TEMPLATE.sh
@@ -61,14 +61,24 @@ else
NEW_EMAIL=$3
fi
-###### START OF THE SCRIPT ######
echo -e "Thanks for using ${GREEN}Josee9988/project-template${NC}"
echo -e "Read carefully all the documentation before you continue executing this script: ${UPurple}https://github.com/Josee9988/project-template${NC}\n"
-# prompt for the, mail and type of the project
-read -p "Enter $(echo -e "$BBLUE""what your project is""$NC") (program/extension/API/web/CLI tool/backend/frontend/scrapper/automation tool/etc): " PROJECT_TYPE
+
+if [ -z "$4" ]; then # if the project's type has been manually specified
+ read -p "Enter $(echo -e "$BBLUE""what your project is""$NC") (program/extension/API/web/CLI tool/backend/frontend/scrapper/automation tool/etc): " PROJECT_TYPE
+else
+ PROJECT_TYPE=$3
+fi
+
+if [ -z "$4" ]; then # if the ignore option for tests has been specified
+ read -p "Is this data correct: username \"$(echo -e "$GREEN""$NEW_USERNAME""$NC")\", email: \"$(echo -e "$GREEN""$NEW_EMAIL""$NC")\", project name: \"$(echo -e "$GREEN""$PROJECT_NAME""$NC")\", of type: \"$(echo -e "$GREEN""$PROJECT_TYPE""$NC")\" (y/n)? " choice
+else
+ choice="y"
+fi
+
+###### START OF THE SCRIPT ######
# confirm that the data is correct
-read -p "Is this data correct: username \"$(echo -e "$GREEN""$NEW_USERNAME""$NC")\", email: \"$(echo -e "$GREEN""$NEW_EMAIL""$NC")\", project name: \"$(echo -e "$GREEN""$PROJECT_NAME""$NC")\", of type: \"$(echo -e "$GREEN""$PROJECT_TYPE""$NC")\" (y/n)? " choice
case "$choice" in
y | Y)
center "Setting everything up for you ;)"
diff --git a/bin/FUNCTION_HELPERS.sh b/bin/FUNCTION_HELPERS.sh
deleted file mode 100644
index 368005c..0000000
--- a/bin/FUNCTION_HELPERS.sh
+++ /dev/null
@@ -1,191 +0,0 @@
-#!/bin/bash
-
-#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#
-# PURPOSE: Secondary (helper) script that is called by the main SETUP_TEMPLATE.sh file by
-# obtaining some functions to better modularize the code.
-# TITLE: FUNCTION_HELPERS
-# AUTHOR: Jose Gracia
-# VERSION: See in CHANGELOG.md
-# NOTES: This script will auto remove itself, and in case of wanting to run it again, the user must download
-# it again or do a 'git stash' and revert the changes.
-# BASH_VERSION: 5.0.17(1)-release
-# LICENSE: see in ../LICENSE (project root) or https://github.com/Josee9988/project-template/blob/master/LICENSE
-# GITHUB: https://github.com/Josee9988/
-# REPOSITORY: https://github.com/Josee9988/project-template
-# ISSUES: https://github.com/Josee9988/project-template/issues
-# MAIL: jgracia9988@gmail.com
-#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#
-
-# SCRIPT WITH EXPORTED FUNCTIONS AND VARIABLES USED IN THE MAIN SETUP_TEMPLATE
-RED='\033[1;31m'
-NC='\033[0m' # No Color
-UPurple='\033[4;35m'
-BBLUE='\033[1;34m'
-
-# Function that centers a text in the terminal
-center() {
- term_width="$(tput cols)"
- padding="$(printf '%0.1s' ={1..500})"
- echo -e "\n\n${BBLUE}$(printf '%*.*s %s %*.*s\n' 0 "$(((term_width - 2 - ${#1}) / 2))" "$padding" "$1" 0 "$(((term_width - 1 - ${#1}) / 2))" "$padding")${NC}\n"
-}
-
-checkFiles() {
- ### Check if the .github directory does exist ###
- if [ ! -d ".github/" ] || [ ! -d ".github/ISSUE_TEMPLATE" ]; then
- echo -e "${RED}Directory .github/ DOES NOT EXIST WITH ALL THE FILES NEEDED.${NC}"
- displayErrorInstructions
- exit 1 # exit with error code 1
- fi
-
- ### Checks if the root files exist and some extra important files ###
- if [ ! -f "CHANGELOG.md" ] || [ ! -f "README.md" ] || [ ! -f ".gitignore" ] || [ ! -f "LICENSE" ] || [ ! -f ".github/settings.yml" ] || [ ! -f ".github/pull_request_template.md" ] || [ ! -f ".github/ISSUE_TEMPLATE/1-bug-report.md" ] || [ ! -f ".github/ISSUE_TEMPLATE/config.yml" ]; then
- echo -e "${RED}The script couldn't find one or many of the template main files${NC}."
- displayErrorInstructions
- exit 1 # exit with error code 1
- fi
-}
-
-displayErrorInstructions() {
- echo -e "${RED}There are files missing! Have you modified the repository before executing this command?${NC}"
- echo -e "\nYou should try to 'git stash' your changes and execute this script from the project root again, or clone again the repository (the template) without any changes.\n"
- echo -e "For more information visit: ${UPurple}https://github.com/Josee9988/project-template${NC}"
- echo -e "If you think this may be an issue please post it at: ${UPurple}https://github.com/Josee9988/project-template/issues${NC}"
-}
-
-helpCommand() {
- if [[ "$1" == *"--help" ]] || [[ "$1" == *"-h" ]]; then # if the user specified help command
- displayHelpTexts
- exit 0
- fi
-}
-
-displayHelpTexts() {
- center "User help"
- echo -e "Script usage: ${BBLUE}$0 [Username] [Project-Name] [Email]${NC} (The project name should not contain spaces)${NC}\n"
- echo "Arguments of username, project-name and email are automatically gathered from your git repository and git config, so they are optional in case they are not detected correctly."
- echo -e "Make sure you have ${BBLUE}read the documentation before executing${NC} this script: ${UPurple}https://github.com/Josee9988/project-template${NC}"
- echo -e "If you have any questions or if any issue is found, please make sure to report it at: ${UPurple}https://github.com/Josee9988/project-template/issues${NC}"
-}
-
-writeREADME() {
- PROJECT_NAME_PARSED=${PROJECT_NAME/-/ }
- bash -c "NEW_USERNAME='NEW_USERNAME' PROJECT_NAME='PROJECT_NAME' PROJECT_TYPE='PROJECT_TYPE'; cat << EOF > README.md
-
-
-# π₯ **$NEW_USERNAME/$PROJECT_NAME**
-
-
-
----
-
-## π€ **About the project**
-
-*
-
----
-
-## β‘ **Installation**
-
-*
-
----
-
-## π **Usage**
-
-*
-
----
-
-## π² **Project tree**
-
-
-
----
-
-## π **Additional notes**
-
-*
-
----
-
-## πΈ **Screenshots**
-
-
-
----
-
-## π° **Supporters and donators**
-
-We are currently looking for new donators to help and maintain this project! β€οΈ
-
-By donating, you will help the development of this project, and *you will be featured in this $PROJECT_NAME's README.md* so everyone can see your kindness and visit your content β.
-
-
-
-
-
-
-
----
-
-$PROJECT_NAME was generated from *[Josee9988/project-template](https://github.com/Josee9988/project-template)* π
-
----
-
-## π΅οΈ Extra recommendations
-
-*
-
----
-
-## π Was the $PROJECT_TYPE helpful? Help us raise these numbers up
-
-[![Github followers](https://img.shields.io/github/followers/$NEW_USERNAME.svg?style=social)](https://github.com/$NEW_USERNAME)
-[![Github stars](https://img.shields.io/github/stars/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/stargazers)
-[![Github watchers](https://img.shields.io/github/watchers/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/watchers)
-[![Github forks](https://img.shields.io/github/forks/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/network/members)
-
-[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=github-sponsors&color=red&style=social)](https://github.com/sponsors/$NEW_USERNAME)
-
-Enjoy! π
-
----
-
-## βοΈπ **License and Changelog**
-
-See the license in the '**[LICENSE](LICENSE)**' file.
-
-Watch the changes in the '**[CHANGELOG.md](CHANGELOG.md)**' file.
-
----
-
-_Made with a lot of β€οΈβ€οΈ by **[@$NEW_USERNAME](https://github.com/$NEW_USERNAME)**_
-EOF"
-}
-
-writeCHANGELOG() {
- ACTUAL_DATE=$(date '+%Y-%m-%d')
- bash -c "PROJECT_NAME='PROJECT_NAME' PROJECT_TYPE='PROJECT_TYPE' ACTUAL_DATE='ACTUAL_DATE'; cat << EOF > CHANGELOG.md
-
-# **Change Log** ππ
-
-All notable changes to the \"**$PROJECT_NAME**\" $PROJECT_TYPE will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
----
-
-## [**0.0.1**] - $ACTUAL_DATE
-
-### Added
-
-* The basic project structure from **[josee9988/project-template](https://github.com/Josee9988/project-template)**.
-EOF"
-}
From 0244da2125679a9efeac83de46ea022fc3d50bb2 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 13:33:30 +0200
Subject: [PATCH 09/20] =?UTF-8?q?Revert=20"Set=20up=20'@Josee9988/project-?=
=?UTF-8?q?template'=20template:=20Personalized=20files=20by=20executing?=
=?UTF-8?q?=20the=20SETUP=5FTEMPLATE.sh=20script.=F0=9F=9A=80"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit 119a7b153333fc83a58ee92430fbae4bc42abe40.
---
.github/CODEOWNERS | 6 +-
.github/CODE_OF_CONDUCT.md | 2 +-
.github/FUNDING.yml | 3 +-
.github/ISSUE_TEMPLATE/1-bug-report.md | 2 +-
.github/ISSUE_TEMPLATE/2-failing-test.md | 2 +-
.github/ISSUE_TEMPLATE/3-docs-bug.md | 2 +-
.github/ISSUE_TEMPLATE/4-feature-request.md | 2 +-
.../ISSUE_TEMPLATE/5-enhancement-request.md | 2 +-
.github/ISSUE_TEMPLATE/6-security-report.md | 4 +-
.github/ISSUE_TEMPLATE/7-question-support.md | 2 +-
.github/ISSUE_TEMPLATE/config.yml | 2 +-
.github/SECURITY.md | 2 +-
.github/config.yml | 2 +-
.gitignore | 4 +-
CHANGELOG.md | 244 +++++++++++++++++-
LICENSE | 21 ++
README.md | 237 ++++++++++++++---
SETUP_TEMPLATE.sh | 18 +-
bin/FUNCTION_HELPERS.sh | 191 ++++++++++++++
19 files changed, 670 insertions(+), 78 deletions(-)
create mode 100644 LICENSE
create mode 100644 bin/FUNCTION_HELPERS.sh
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 2e80c9f..4cb66d4 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,6 +1,6 @@
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
-# @a will be requested for
+# @Josee9988 will be requested for
# review when someone opens a pull request.
-# if you want to add more owners just write it after @a
-* @a
+# if you want to add more owners just write it after @Josee9988
+* @Josee9988
diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
index 5977109..b60dfc1 100644
--- a/.github/CODE_OF_CONDUCT.md
+++ b/.github/CODE_OF_CONDUCT.md
@@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing or otherwise unacceptable behaviour may be
-reported by contacting the project team at c. All
+reported by contacting the project team at jgracia9988@gmail.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality concerning the reporter of an incident.
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index c942e4e..a2d624f 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1 +1,2 @@
-# add your own funding links
+github: Josee9988
+custom: ['https://www.paypal.me/josee9988']
diff --git a/.github/ISSUE_TEMPLATE/1-bug-report.md b/.github/ISSUE_TEMPLATE/1-bug-report.md
index a98661f..1376422 100644
--- a/.github/ISSUE_TEMPLATE/1-bug-report.md
+++ b/.github/ISSUE_TEMPLATE/1-bug-report.md
@@ -3,7 +3,7 @@ name: "π Bug Report"
about: "Report an issue to help the project improve."
title: "[Bug] "
labels: "Type: Bug"
-assignees: a
+assignees: Josee9988
---
diff --git a/.github/ISSUE_TEMPLATE/2-failing-test.md b/.github/ISSUE_TEMPLATE/2-failing-test.md
index 5ef4708..a239f2a 100644
--- a/.github/ISSUE_TEMPLATE/2-failing-test.md
+++ b/.github/ISSUE_TEMPLATE/2-failing-test.md
@@ -3,7 +3,7 @@ name: "π Failing Test"
about: "Report failing tests or CI jobs."
title: "[Test] "
labels: "Type: Test"
-assignees: a
+assignees: Josee9988
---
diff --git a/.github/ISSUE_TEMPLATE/3-docs-bug.md b/.github/ISSUE_TEMPLATE/3-docs-bug.md
index 501a522..f987493 100644
--- a/.github/ISSUE_TEMPLATE/3-docs-bug.md
+++ b/.github/ISSUE_TEMPLATE/3-docs-bug.md
@@ -3,7 +3,7 @@ name: "π Documentation or README.md issue report"
about: "Report an issue in the project's documentation or README.md file."
title: ""
labels: "Documentation"
-assignees: a
+assignees: Josee9988
---
# **π Documentation Issue Report**
diff --git a/.github/ISSUE_TEMPLATE/4-feature-request.md b/.github/ISSUE_TEMPLATE/4-feature-request.md
index ae991b7..33ecf94 100644
--- a/.github/ISSUE_TEMPLATE/4-feature-request.md
+++ b/.github/ISSUE_TEMPLATE/4-feature-request.md
@@ -3,7 +3,7 @@ name: "ππ Feature Request"
about: "Suggest an idea or possible new feature for this project."
title: ""
labels: "Type: Feature"
-assignees: a
+assignees: Josee9988
---
diff --git a/.github/ISSUE_TEMPLATE/5-enhancement-request.md b/.github/ISSUE_TEMPLATE/5-enhancement-request.md
index c7797ac..2b29bd5 100644
--- a/.github/ISSUE_TEMPLATE/5-enhancement-request.md
+++ b/.github/ISSUE_TEMPLATE/5-enhancement-request.md
@@ -3,7 +3,7 @@ name: "πβ Enhancement Request"
about: "Suggest an enhancement for this project. Improve an existing feature"
title: ""
labels: "Type: Enhancement"
-assignees: a
+assignees: Josee9988
---
diff --git a/.github/ISSUE_TEMPLATE/6-security-report.md b/.github/ISSUE_TEMPLATE/6-security-report.md
index 77dad56..81f6fef 100644
--- a/.github/ISSUE_TEMPLATE/6-security-report.md
+++ b/.github/ISSUE_TEMPLATE/6-security-report.md
@@ -3,7 +3,7 @@ name: "β οΈ Security Report"
about: "Report an issue to help the project improve."
title: ""
labels: "Type: Security"
-assignees: a
+assignees: Josee9988
---
@@ -25,7 +25,7 @@ certain personal information or involves personal identifiable data, or you beli
that the data that you might leak by exposing the way on how to attack the project
could be considered as a data leak or could violate the privacy of any kind of
data or sensible data, please do not post it here and directly email the developer:
-(c). You should post the issue with the least amount of
+(jgracia9988@gmail.com). You should post the issue with the least amount of
sensible or private data as possible to help us manage the security issue, and
with the extra data sent from your email to the developer (if any), we will deeply
analyze and try to fix it as fast as possible.
diff --git a/.github/ISSUE_TEMPLATE/7-question-support.md b/.github/ISSUE_TEMPLATE/7-question-support.md
index 6178458..ec98c81 100644
--- a/.github/ISSUE_TEMPLATE/7-question-support.md
+++ b/.github/ISSUE_TEMPLATE/7-question-support.md
@@ -3,7 +3,7 @@ name: "β Question or Support Request"
about: "Questions and requests for support."
title: ""
labels: "Type: Question"
-assignees: a
+assignees: Josee9988
---
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index a30ea40..a053b0d 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Send an e-mail the developer
- url: mailto:c
+ url: mailto:jgracia9988@gmail.com
about: Please do NOT use this email to post issues or feature requests (only important business/personal contact).
diff --git a/.github/SECURITY.md b/.github/SECURITY.md
index a944e03..30a193d 100644
--- a/.github/SECURITY.md
+++ b/.github/SECURITY.md
@@ -8,6 +8,6 @@ To report a security issue, go to the project's issues and create a new issue us
Read carefully the instructions of this issue template, and if your report could leak data or might expose
how to gain access to a restricted area or break the system,
-please email [c](mailto:c) and include the word "SECURITY" in the subject line.
+please email [jgracia9988@gmail.com](mailto:jgracia9988@gmail.com) and include the word "SECURITY" in the subject line.
We'll endeavour to respond quickly, and will keep you updated throughout the process.
diff --git a/.github/config.yml b/.github/config.yml
index 417f4d8..1e537f7 100644
--- a/.github/config.yml
+++ b/.github/config.yml
@@ -2,7 +2,7 @@
# Comment to be posted to on first time issues
newIssueWelcomeComment: >
- Thanks for opening your first issue in a/project-template! Be sure to follow the issue template and provide every bit of information to help the developers!
+ Thanks for opening your first issue in Josee9988/project-template! Be sure to follow the issue template and provide every bit of information to help the developers!
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
diff --git a/.gitignore b/.gitignore
index e114e53..49c69d3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-###> a/b ###
+###> Josee9988/project-template ###
# Folders
.vscode/
@@ -13,4 +13,4 @@ ignore.*
.env.test
*.pem
-###< a/b ###
+###< Josee9988/project-template ###
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a9bc506..03f1f20 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,14 +1,252 @@
# **Change Log** ππ
-All notable changes to the "**b**" c will be documented in this file.
+All notable changes to the "**Project template**" repository will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
-## [**0.0.1**] - 2021-07-08
+## [**1.7.2**] - 2021-07-08
### Added
-* The basic project structure from **[josee9988/project-template](https://github.com/Josee9988/project-template)**.
+* Multiple new .gitignore lines and improved its comment structure.
+
+### Fixed
+
+* Minnor typo in the generated README.md
+
+## [**1.7.1**] - 2021-07-01
+
+### Added
+
+* `.env` file will be ignored in the `.gitignore`.
+* Disabled some markdownlint rules in the generated README.md
+* Fixed some minnor errors in the README.md file
+
+## [**1.7.0**] - 2021-06-01
+
+### Added
+
+* Type: Test issue label.
+* Failing test issue template adds the new Type Test issue label.
+* Updated README.md with the new label.
+
+## [**1.6.0**] - 2021-05-21
+
+### Added
+
+* Divided the feature request into feature and enhancement request, each one with its respective labels.
+
+### Changed
+
+* Position of disclaimers and comments in the issue templates are moved to the bottom (but the security report) as some users directly erased everything to not read the text.
+* Image of the issue templates in the readme.md file.
+
+## [**1.5.0**] - 2021-05-15
+
+### Added
+
+* Auto-detection of user email.
+
+## [**1.4.5**] - 2021-04-24
+
+### Added
+
+* Sponsor section in the project's main readme.md file.
+* Improved and added documentation in the scripts.
+
+### Fixed
+
+* Readme "What does it include" fixed list of files.
+* Sponsor link in the generated README.md file.
+* Some typos
+
+## [**1.4.4**] - 2021-04-22
+
+### Added
+
+* --help option in the script.
+* More documentation and information for the user in the script prompts
+
+## [**1.4.3**] - 2021-04-21
+
+### Added
+
+* Support for Github todo app.
+
+## [**1.4.2**] - 2021-04-20
+
+### Added
+
+* An extra informational message in the script.
+* Welcome bot and its config (.github/config.yml)
+
+### Fixed
+
+* Issue templates now auto assigns the new labels.
+
+## [**1.4.1**] - 2021-04-20
+
+### Added
+
+* Security label
+
+### Changed
+
+* Project tree to its updated version.
+
+## [**1.4.0**] - 2021-04-19
+
+### Added
+
+* Readme file with the section with the recommended/used bots that the users should install.
+* Some informational comments in the script referencing the project's documentation.
+* A total of 18 new labels will be created right when you clone your repo using Github Probot settings.
+
+## [**1.3.0**] - 2021-04-14
+
+### Added
+
+* CODEOWNERS file inside the .github folder.
+
+### Fixed
+
+* Some README.md markdownlint bugs.
+
+## [**1.2.0**] - 2021-04-07
+
+### Added
+
+* Bug report issue templates have the preceding "[BUG]" title.
+* Multiple readme template headings (About the project, project tree, screenshots, donators).
+* Improved README.md template by fixing some minor problems.
+
+## [**1.1.1**] - 2021-04-02
+
+### Added
+
+* Username and project name are automatically selected (user can manually force change them using bash parameters [Username] [Project-Name])
+
+### Changed
+
+* Asciinema video
+
+## [**1.1.0**] - 2021-03-31
+
+### Added
+
+* Gitignore file ignores all \*.ignore.\* files.
+* Basic README.md template.
+* bin/FUNCTION_HELPERS script to improve the readability of the SETUP_TEMPLATE.sh file.
+
+### Changed
+
+* Header's emoji from the end of the README.md headers to the beginning to be shown better by the new GitHub's README table of contents.
+
+### Fixed
+
+* Git status is shown before the commit.
+
+### Fixed
+
+* Some typos in the CHANGELOG.md.
+
+## [**1.0.11**] - 2021-03-20
+
+### Added
+
+* Social links of the repo in the README.md file.
+* Added badges in the README.md file.
+* Added sponsor link in the contributing.yml file.
+
+### Fixed
+
+* Some minor typos in the README.md file.
+
+## [**1.0.10**] - 2021-03-17
+
+### Changed
+
+* `EXECUTEME.sh` script changed to `SETUP_TEMPLATE.sh`.
+* Changed the execution video from the README.md file (Asciinema's video).
+
+## [**1.0.9**] - 2021-03-17
+
+### Added
+
+* The script will git add and commit the new files/changes for you.
+
+## [**1.0.8**] - 2021-03-17
+
+### Changed
+
+* Improved README.md structure and fixed some typos.
+
+### Added
+
+* 'Extra recommendations' section in the README.md file.
+
+## [**1.0.7**] - 2021-03-16
+
+### Fixed
+
+* Some minor typos
+
+## [**1.0.6**] - 2021-03-16
+
+### Changed
+
+* Simplified PR template to make it easier.
+
+## [**1.0.5**] - 2021-03-13
+
+### Added
+
+* Checks to the shell script (check if the files exist)
+* Colourized the output of the script.
+
+## [**1.0.4**] - 2021-02-26
+
+### Added
+
+* Markdownlint disable the rule in the CHANGELOG.md file"
+
+## [**1.0.3**] - 2021-02-23
+
+### Removed
+
+* Josee's funding links.
+
+### Added
+
+* Shell script now checks if the .github directory exists.
+
+## [**1.0.2**] - 2020-09-08
+
+### Added
+
+* One more screenshot to the README.md file showing the community profile.
+* Documentation for the SETUP_TEMPLATE.sh script.
+
+### Changed
+
+* The project tree view showing the new LICENSE file.
+
+## [**1.0.1**] - 2020-09-08
+
+### Added
+
+* A LICENSE for the project will be removed with the SETUP_TEMPLATE.sh script.
+
+### Changed
+
+* The location of the pull request template to the .github/ folder.
+
+## [**1.0.0**] - 2020-09-08
+
+### Added
+
+* Added a CHANGELOG.md.
+* Support for the CHANGELOG in the SETUP_TEMPLATE.sh file (when run, it will remove all of the content and create a new file from scratch).
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..97d7d26
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Jose Gracia Berenguer
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index 8adb718..6cd70c9 100644
--- a/README.md
+++ b/README.md
@@ -1,97 +1,248 @@
-
-# π₯ **a/b**
+# π₯ **Josee9988's Github Project Template**
-
+
+
+
+
---
-## π€ **About the project**
+## π€ **What is this template all about?**
-*
+* This template can be used as a base layer for any of your future repositories/projects.
+* Make your project easy to maintain with **8 issue templates**.
+* Quickstart your documentation with personalized **readme badges** and a cool readme structure.
+* Manage your issues with **20 issue labels** created just for you!
+* Make your _community healthier_ with all the guides like code of conduct, contributing, support, security...
+* Learn more with the [official Github guide on creating repositories from a template](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template).
+* To start using it; "**[click use this template](https://github.com/Josee9988/project-template/generate)**", create your new repository,
+* All the basic setup is made through an easy script that will auto-detect all your data to make it lightning fast! π²π² clone your new repository and execute the `SETUP_TEMPLATE.sh` shell script to personalize the files with your private details. Check how to execute it [here](https://asciinema.org/a/398761).
+* All the markdown follows [MarkdownLint rules](https://github.com/DavidAnson/markdownlint).
---
## β‘ **Installation**
-*
+1. To create a new repository from this template **[generate your new repository from this template](https://github.com/Josee9988/project-template/generate)**
+for more information or guidance, follow the [Github guide](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template).
+2. Clone your new repository **[generated from this template](https://github.com/Josee9988/project-template/generate)** and `cd` into it.
+3. **Execute** the `SETUP_TEMPLATE.sh` shell script to **customize** the files with your data.
+
+ ```bash
+ bash SETUP_TEMPLATE.sh # additional parameters [Username] [Project-Name] [Email]
+ ```
----
+ Or you can also do it like this:
+
+ ```bash
+ chmod u+x SETUP_TEMPLATE.sh && ./SETUP_TEMPLATE.sh # additional parameters [Username] [Project-Name] [Email]
+ ```
-## π **Usage**
+ Additionally, watch *[this video](https://asciinema.org/a/404568)* to see **how to execute the script** or use *`bash SETUP_TEMPLATE.sh --help`* to obtain some extra information.
+
+ If the automatic detection of the username, project name or email is NOT right, please post an issue, and you can **manually correct** them like: `bash SETUP_TEMPLATE.sh RightUsername RightProjectName RightEmail` being `$1` the new username, `$2` the new project name and `$3` the new email.
-*
+4. **Review** every single file and **customize** it as you like.
+5. Build your project. π
+
+β οΈ _Customize every file to fit your requirements_ β οΈ
---
-## π² **Project tree**
+## π **What does it include?**
+
+1. A **`SETUP_TEMPLATE.sh`** script that **MUST be executed right when you clone your repository**.
+The script will replace Jose's username and email (the author) with yours from all the.
+
+ 1. A README template file with a default template to start documenting your project. (it includes personalized badges and text with your project details)
+ 1. A CHANGELOG template file based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
+ 1. An [issue_label_bot.yaml](/.github/issue_label_bot.yaml) file to use the issue adder Github bot. [Activate it or check its documentation](https://github.com/marketplace/issue-label-bot).
+ 1. A [config.yml](/.github/config.yml) file to modify multiple bot's behaviours.
+ 1. A [settings.yml](/.github/settings.yml) file to use the popular settings Github bot. [Activate it or check its documentation](https://probot.github.io/apps/settings/).
+ 1. A [CONTRIBUTING](/.github/CONTRIBUTING.md) explaining how to contribute to the project. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/setting-guidelines-for-repository-contributors).
+ 1. A [SUPPORT](/.github/SUPPORT.md) explaining how to support the project. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/adding-support-resources-to-your-project).
+ 1. A [SECURITY](/.github/SECURITY.md) with a guide on how to post a security issue. [Learn more with the Github guide](https://docs.github.com/es/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository).
+ 1. A [CODEOWNERS](/.github/CODEOWNERS) with the new user as the main owner. [Learn more with the Github guide](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners).
+ 1. A [CODE_OF_CONDUCT](/.github/CODE_OF_CONDUCT.md) with a basic code of conduct. [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/adding-a-code-of-conduct-to-your-project).
+ 1. A [PULL_REQUEST_TEMPLATE](/.github/pull_request_template.md) with a template for your pull request that closes issues with keywords. [Learn more with the Github guide](https://docs.github.com/es/github/building-a-strong-community/creating-a-pull-request-template-for-your-repository).
+ 1. Multiple [issues templates](/.github/ISSUE_TEMPLATE). [Learn more with the Github guide](https://docs.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository).
+ 1. A [config.yml](/.github/ISSUE_TEMPLATE/config.yml) with the config and information about the issue templates.
+ 1. A [Blank issue template](/.github/ISSUE_TEMPLATE) with the super basic stuff, all the issues should contain.
+ 1. A [Bug issue template](/.github/ISSUE_TEMPLATE/1-bug-report.md).
+ 1. A [Failing test issue template](/.github/ISSUE_TEMPLATE/2-failing-test.md).
+ 1. A [Documentation issue template](/.github/ISSUE_TEMPLATE/3-docs-bug.md).
+ 1. A [Feature request issue template](/.github/ISSUE_TEMPLATE/4-feature-request.md).
+ 1. A [Security report issue template](/.github/ISSUE_TEMPLATE/5-security-report.md).
+ 1. A [Question or support issue template](/.github/ISSUE_TEMPLATE/6-question-support.md).
-
+---
+
+### π² **Project tree**
+
+Files that will get removed after the execution of `SETUP_TEMPLATE.sh` are not shown! π
+
+```text
+.
+βββ CHANGELOG.md
+βββ .github
+βΒ Β βββ CODE_OF_CONDUCT.md
+βΒ Β βββ CODEOWNERS
+βΒ Β βββ CONTRIBUTING.md
+βΒ Β βββ FUNDING.yml
+βΒ Β βββ issue_label_bot.yaml
+βΒ Β βββ config.yml
+βΒ Β βββ ISSUE_TEMPLATE
+βΒ Β βΒ Β βββ 1-bug-report.md
+β β βββ 2-failing-test.md
+β β βββ 3-docs-bug.md
+β β βββ 4-feature-request.md
+β β βββ 5-enhancement-request.md
+β β βββ 6-security-report.md
+β β βββ 7-question-support.md
+β β βββ config.yml
+βΒ Β βββ ISSUE_TEMPLATE.md
+βΒ Β βββ pull_request_template.md
+βΒ Β βββ SECURITY.md
+βΒ Β βββ settings.yml
+βΒ Β βββ SUPPORT.md
+βββ .gitignore
+βββ README.md
+
+2 directories, 21 files
+```
---
## π **Additional notes**
-*
+* After **[generating your new repo with this template](https://github.com/Josee9988/project-template/generate)**, make sure to, right after you clone it, run the script `SETUP_TEMPLATE.sh`.
+
+* Then you will be presented with all the files modified with your project details and information. It is very important to **manually review every file** to check if it fits your requirements and performs any necessary changes to customize the project as you want.
+
+* If you are using **Windows** and you don't know how to execute the `SETUP_TEMPLATE.sh` script:
+ 1. Install **[git for Windows](https://git-scm.com/download/win)**.
+ 2. Right-click on the git repository folder and click "*git bash here*".
+ 3. Then just perform *`bash SETUP_TEMPLATE.sh`* **or** *`chmod u+x SETUP_TEMPLATE.sh && ./SETUP_TEMPLATE.sh`*.
+
+### π€ **Used Github bots**
+
+These are recommended bots that are prepared and configured for this template. If you install them your coding experience will probably be much better.
+We deeply recommend at least installing the [issue label bot](https://github.com/marketplace/issue-label-bot) as this bot is the one that adds all the labels used in the issue templates.
+
+1. The `issue_label_bot.yaml` file depends on the **[issue label bot](https://github.com/marketplace/issue-label-bot)**.
+2. The `settings.yml` file depends on the **[settings label bot](https://probot.github.io/apps/settings/)**.
+3. The `config.yml` file depends on the bot **[welcome bot](https://probot.github.io/apps/welcome/)** and **[todo bot](https://probot.github.io/apps/todo/)**
---
## πΈ **Screenshots**
-
+A couple of screenshots to delight you before you use this template.
----
+### πΊ All the issue templates
-## π° **Supporters and donators**
+
+
+
-We are currently looking for new donators to help and maintain this project! β€οΈ
+### π» An issue template opened
-By donating, you will help the development of this project, and *you will be featured in this b's README.md* so everyone can see your kindness and visit your content β.
+
+
+
-
-
-
+### π The README template
-
+Badges and texts will be replaced with your project details!
----
+
+
+
+ Or watch [this video](https://gifs.com/gif/josee9988-s-readme-md-MwO5E3) to see the whole README template.
+
-b was generated from *[Josee9988/project-template](https://github.com/Josee9988/project-template)* π
+### π The labels for your issues
----
+If the bot [probot-settings](https://probot.github.io/apps/settings/) is not installed you will not have these beautiful labels! (there are actually 1 more issue label than in the screenshot!)
+
+
+
+
-## π΅οΈ Extra recommendations
+### π The CHANGELOG template
-*
+(project name and project type will be replaced with yours)
+
+
+
+
+
+### π‘οΈ Security policy
+
+
+
+
+
+### πΌ Community profile at 100%
+
+
+
+
---
-## π Was the c helpful? Help us raise these numbers up
+## π΅οΈ **Extra recommendations**
-[![Github followers](https://img.shields.io/github/followers/a.svg?style=social)](https://github.com/a)
-[![Github stars](https://img.shields.io/github/stars/a/b.svg?style=social)](https://github.com/a/b/stargazers)
-[![Github watchers](https://img.shields.io/github/watchers/a/b.svg?style=social)](https://github.com/a/b/watchers)
-[![Github forks](https://img.shields.io/github/forks/a/b.svg?style=social)](https://github.com/a/b/network/members)
-
-[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=github-sponsors&color=red&style=social)](https://github.com/sponsors/a)
+For the right maintenance of the CHANGELOG.md, we recommend this [VSCode extension](https://github.com/Josee9988/Changelog-and-Markdown-snippets)
+and the read and understanding of the [keep a changelog guide](https://keepachangelog.com/en/1.0.0/).
+Read and comment about it in this [dev.to post](https://dev.to/josee9988/the-ultimate-github-project-template-1264).
+We also recommend installing all the [used bots](https://github.com/Josee9988/project-template#-used-github-bots).
-Enjoy! π
+## π **Project tests**
+
+If you want to improve the development of this project, you must, after changing or improving whatever run the project's tests to prove that they are working.
+
+To do so:
+
+```bash
+bash tests/TESTS_RUNNER.sh
+```
---
-## βοΈπ **License and Changelog**
+## π° **Supporters and donators**
-See the license in the '**[LICENSE](LICENSE)**' file.
+We are currently looking for new donators to help and maintain this project! β€οΈ
-Watch the changes in the '**[CHANGELOG.md](CHANGELOG.md)**' file.
+By donating, you will help the development of this project, and *you will be featured in this project's README.md* so everyone can see your kindness and visit your content β.
+
+
+
+
---
-_Made with a lot of β€οΈβ€οΈ by **[@a](https://github.com/a)**_
+## π Was the template helpful? Help us raise these numbers up
+
+[![Github followers](https://img.shields.io/github/followers/Josee9988.svg?style=social)](https://github.com/Josee9988)
+[![Github stars](https://img.shields.io/github/stars/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/stargazers)
+[![Github watchers](https://img.shields.io/github/watchers/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/watchers)
+[![Github forks](https://img.shields.io/github/forks/Josee9988/project-template.svg?style=social)](https://github.com/Josee9988/project-template/network/members)
+
+Enjoy! π
+
+> β οΈRemember that this template should be reviewed and modified to fit your requirements.
+> The script **SETUP_TEMPLATE.sh** should be executed right when you clone your new repository.
+> There will be files that will need *manual revision*β οΈ
+
+_Made with a lot of β€οΈβ€οΈ by **[@Josee9988](https://github.com/Josee9988)**_
diff --git a/SETUP_TEMPLATE.sh b/SETUP_TEMPLATE.sh
index 83bd655..e78e92b 100644
--- a/SETUP_TEMPLATE.sh
+++ b/SETUP_TEMPLATE.sh
@@ -61,24 +61,14 @@ else
NEW_EMAIL=$3
fi
+###### START OF THE SCRIPT ######
echo -e "Thanks for using ${GREEN}Josee9988/project-template${NC}"
echo -e "Read carefully all the documentation before you continue executing this script: ${UPurple}https://github.com/Josee9988/project-template${NC}\n"
-
-if [ -z "$4" ]; then # if the project's type has been manually specified
- read -p "Enter $(echo -e "$BBLUE""what your project is""$NC") (program/extension/API/web/CLI tool/backend/frontend/scrapper/automation tool/etc): " PROJECT_TYPE
-else
- PROJECT_TYPE=$3
-fi
-
-if [ -z "$4" ]; then # if the ignore option for tests has been specified
- read -p "Is this data correct: username \"$(echo -e "$GREEN""$NEW_USERNAME""$NC")\", email: \"$(echo -e "$GREEN""$NEW_EMAIL""$NC")\", project name: \"$(echo -e "$GREEN""$PROJECT_NAME""$NC")\", of type: \"$(echo -e "$GREEN""$PROJECT_TYPE""$NC")\" (y/n)? " choice
-else
- choice="y"
-fi
-
-###### START OF THE SCRIPT ######
+# prompt for the, mail and type of the project
+read -p "Enter $(echo -e "$BBLUE""what your project is""$NC") (program/extension/API/web/CLI tool/backend/frontend/scrapper/automation tool/etc): " PROJECT_TYPE
# confirm that the data is correct
+read -p "Is this data correct: username \"$(echo -e "$GREEN""$NEW_USERNAME""$NC")\", email: \"$(echo -e "$GREEN""$NEW_EMAIL""$NC")\", project name: \"$(echo -e "$GREEN""$PROJECT_NAME""$NC")\", of type: \"$(echo -e "$GREEN""$PROJECT_TYPE""$NC")\" (y/n)? " choice
case "$choice" in
y | Y)
center "Setting everything up for you ;)"
diff --git a/bin/FUNCTION_HELPERS.sh b/bin/FUNCTION_HELPERS.sh
new file mode 100644
index 0000000..368005c
--- /dev/null
+++ b/bin/FUNCTION_HELPERS.sh
@@ -0,0 +1,191 @@
+#!/bin/bash
+
+#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#
+# PURPOSE: Secondary (helper) script that is called by the main SETUP_TEMPLATE.sh file by
+# obtaining some functions to better modularize the code.
+# TITLE: FUNCTION_HELPERS
+# AUTHOR: Jose Gracia
+# VERSION: See in CHANGELOG.md
+# NOTES: This script will auto remove itself, and in case of wanting to run it again, the user must download
+# it again or do a 'git stash' and revert the changes.
+# BASH_VERSION: 5.0.17(1)-release
+# LICENSE: see in ../LICENSE (project root) or https://github.com/Josee9988/project-template/blob/master/LICENSE
+# GITHUB: https://github.com/Josee9988/
+# REPOSITORY: https://github.com/Josee9988/project-template
+# ISSUES: https://github.com/Josee9988/project-template/issues
+# MAIL: jgracia9988@gmail.com
+#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#
+
+# SCRIPT WITH EXPORTED FUNCTIONS AND VARIABLES USED IN THE MAIN SETUP_TEMPLATE
+RED='\033[1;31m'
+NC='\033[0m' # No Color
+UPurple='\033[4;35m'
+BBLUE='\033[1;34m'
+
+# Function that centers a text in the terminal
+center() {
+ term_width="$(tput cols)"
+ padding="$(printf '%0.1s' ={1..500})"
+ echo -e "\n\n${BBLUE}$(printf '%*.*s %s %*.*s\n' 0 "$(((term_width - 2 - ${#1}) / 2))" "$padding" "$1" 0 "$(((term_width - 1 - ${#1}) / 2))" "$padding")${NC}\n"
+}
+
+checkFiles() {
+ ### Check if the .github directory does exist ###
+ if [ ! -d ".github/" ] || [ ! -d ".github/ISSUE_TEMPLATE" ]; then
+ echo -e "${RED}Directory .github/ DOES NOT EXIST WITH ALL THE FILES NEEDED.${NC}"
+ displayErrorInstructions
+ exit 1 # exit with error code 1
+ fi
+
+ ### Checks if the root files exist and some extra important files ###
+ if [ ! -f "CHANGELOG.md" ] || [ ! -f "README.md" ] || [ ! -f ".gitignore" ] || [ ! -f "LICENSE" ] || [ ! -f ".github/settings.yml" ] || [ ! -f ".github/pull_request_template.md" ] || [ ! -f ".github/ISSUE_TEMPLATE/1-bug-report.md" ] || [ ! -f ".github/ISSUE_TEMPLATE/config.yml" ]; then
+ echo -e "${RED}The script couldn't find one or many of the template main files${NC}."
+ displayErrorInstructions
+ exit 1 # exit with error code 1
+ fi
+}
+
+displayErrorInstructions() {
+ echo -e "${RED}There are files missing! Have you modified the repository before executing this command?${NC}"
+ echo -e "\nYou should try to 'git stash' your changes and execute this script from the project root again, or clone again the repository (the template) without any changes.\n"
+ echo -e "For more information visit: ${UPurple}https://github.com/Josee9988/project-template${NC}"
+ echo -e "If you think this may be an issue please post it at: ${UPurple}https://github.com/Josee9988/project-template/issues${NC}"
+}
+
+helpCommand() {
+ if [[ "$1" == *"--help" ]] || [[ "$1" == *"-h" ]]; then # if the user specified help command
+ displayHelpTexts
+ exit 0
+ fi
+}
+
+displayHelpTexts() {
+ center "User help"
+ echo -e "Script usage: ${BBLUE}$0 [Username] [Project-Name] [Email]${NC} (The project name should not contain spaces)${NC}\n"
+ echo "Arguments of username, project-name and email are automatically gathered from your git repository and git config, so they are optional in case they are not detected correctly."
+ echo -e "Make sure you have ${BBLUE}read the documentation before executing${NC} this script: ${UPurple}https://github.com/Josee9988/project-template${NC}"
+ echo -e "If you have any questions or if any issue is found, please make sure to report it at: ${UPurple}https://github.com/Josee9988/project-template/issues${NC}"
+}
+
+writeREADME() {
+ PROJECT_NAME_PARSED=${PROJECT_NAME/-/ }
+ bash -c "NEW_USERNAME='NEW_USERNAME' PROJECT_NAME='PROJECT_NAME' PROJECT_TYPE='PROJECT_TYPE'; cat << EOF > README.md
+
+
+# π₯ **$NEW_USERNAME/$PROJECT_NAME**
+
+
+
+---
+
+## π€ **About the project**
+
+*
+
+---
+
+## β‘ **Installation**
+
+*
+
+---
+
+## π **Usage**
+
+*
+
+---
+
+## π² **Project tree**
+
+
+
+---
+
+## π **Additional notes**
+
+*
+
+---
+
+## πΈ **Screenshots**
+
+
+
+---
+
+## π° **Supporters and donators**
+
+We are currently looking for new donators to help and maintain this project! β€οΈ
+
+By donating, you will help the development of this project, and *you will be featured in this $PROJECT_NAME's README.md* so everyone can see your kindness and visit your content β.
+
+
+
+
+
+
+
+---
+
+$PROJECT_NAME was generated from *[Josee9988/project-template](https://github.com/Josee9988/project-template)* π
+
+---
+
+## π΅οΈ Extra recommendations
+
+*
+
+---
+
+## π Was the $PROJECT_TYPE helpful? Help us raise these numbers up
+
+[![Github followers](https://img.shields.io/github/followers/$NEW_USERNAME.svg?style=social)](https://github.com/$NEW_USERNAME)
+[![Github stars](https://img.shields.io/github/stars/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/stargazers)
+[![Github watchers](https://img.shields.io/github/watchers/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/watchers)
+[![Github forks](https://img.shields.io/github/forks/$NEW_USERNAME/$PROJECT_NAME.svg?style=social)](https://github.com/$NEW_USERNAME/$PROJECT_NAME/network/members)
+
+[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=github-sponsors&color=red&style=social)](https://github.com/sponsors/$NEW_USERNAME)
+
+Enjoy! π
+
+---
+
+## βοΈπ **License and Changelog**
+
+See the license in the '**[LICENSE](LICENSE)**' file.
+
+Watch the changes in the '**[CHANGELOG.md](CHANGELOG.md)**' file.
+
+---
+
+_Made with a lot of β€οΈβ€οΈ by **[@$NEW_USERNAME](https://github.com/$NEW_USERNAME)**_
+EOF"
+}
+
+writeCHANGELOG() {
+ ACTUAL_DATE=$(date '+%Y-%m-%d')
+ bash -c "PROJECT_NAME='PROJECT_NAME' PROJECT_TYPE='PROJECT_TYPE' ACTUAL_DATE='ACTUAL_DATE'; cat << EOF > CHANGELOG.md
+
+# **Change Log** ππ
+
+All notable changes to the \"**$PROJECT_NAME**\" $PROJECT_TYPE will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+---
+
+## [**0.0.1**] - $ACTUAL_DATE
+
+### Added
+
+* The basic project structure from **[josee9988/project-template](https://github.com/Josee9988/project-template)**.
+EOF"
+}
From 40f64d6936b2c5fd3b7d28a294b7bc5486f83fe3 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 13:43:45 +0200
Subject: [PATCH 10/20] "added a 4th argument for the tests"
---
SETUP_TEMPLATE.sh | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
diff --git a/SETUP_TEMPLATE.sh b/SETUP_TEMPLATE.sh
index e78e92b..8180472 100644
--- a/SETUP_TEMPLATE.sh
+++ b/SETUP_TEMPLATE.sh
@@ -28,6 +28,7 @@ UPurple='\033[4;35m'
BBLUE='\033[1;34m'
GREEN='\033[1;32m'
FILE_FUNCTION_HELPERS=bin/FUNCTION_HELPERS.sh
+OMIT_STR="--omit-commit-and-confirmation"
if [ ! -f "$FILE_FUNCTION_HELPERS" ]; then # check if the function helpers file is not found
echo -e "${RED}Can not find ${FILE_FUNCTION_HELPERS}"
@@ -61,14 +62,19 @@ else
NEW_EMAIL=$3
fi
-###### START OF THE SCRIPT ######
echo -e "Thanks for using ${GREEN}Josee9988/project-template${NC}"
echo -e "Read carefully all the documentation before you continue executing this script: ${UPurple}https://github.com/Josee9988/project-template${NC}\n"
-# prompt for the, mail and type of the project
-read -p "Enter $(echo -e "$BBLUE""what your project is""$NC") (program/extension/API/web/CLI tool/backend/frontend/scrapper/automation tool/etc): " PROJECT_TYPE
+
+if [ ! $4 = "$OMIT_STR" ]; then # if the project's type has been manually specified
+ read -p "Enter $(echo -e "$BBLUE""what your project is""$NC") (program/extension/API/web/CLI tool/backend/frontend/scrapper/automation tool/etc): " PROJECT_TYPE
+ read -p "Is this data correct: username \"$(echo -e "$GREEN""$NEW_USERNAME""$NC")\", email: \"$(echo -e "$GREEN""$NEW_EMAIL""$NC")\", project name: \"$(echo -e "$GREEN""$PROJECT_NAME""$NC")\", of type: \"$(echo -e "$GREEN""$PROJECT_TYPE""$NC")\" (y/n)? " choice
+else
+ choice="y"
+fi
+
+###### START OF THE SCRIPT ######
# confirm that the data is correct
-read -p "Is this data correct: username \"$(echo -e "$GREEN""$NEW_USERNAME""$NC")\", email: \"$(echo -e "$GREEN""$NEW_EMAIL""$NC")\", project name: \"$(echo -e "$GREEN""$PROJECT_NAME""$NC")\", of type: \"$(echo -e "$GREEN""$PROJECT_TYPE""$NC")\" (y/n)? " choice
case "$choice" in
y | Y)
center "Setting everything up for you ;)"
@@ -85,11 +91,14 @@ y | Y)
writeCHANGELOG # write the basic structure of the CHANGELOG.md
echo -e "# add your own funding links" >.github/FUNDING.yml # remove author's custom funding links
- git add CHANGELOG.md README.md .gitignore .github SETUP_TEMPLATE.sh LICENSE bin # commit the new files
- git -c color.status=always status | less -REX # show git status with colours
- echo -e "Committing the changes for you :)\n"
- git commit -m "Set up '@Josee9988/project-template' template: Personalized files by executing the SETUP_TEMPLATE.sh script.π"
- echo -e "\nRemember to review every file and customize it as you like.\nYou are ready to start your brand new awesome projectππ."
+ if [ ! "$4" = "$OMIT_STR" ]; then # if the ignore option for tests has been specified
+ git add CHANGELOG.md README.md .gitignore .github SETUP_TEMPLATE.sh LICENSE bin # commit the new files
+ git -c color.status=always status | less -REX # show git status with colours
+ echo -e "Committing the changes for you :)\n"
+ git commit -m "Set up '@Josee9988/project-template' template: Personalized files by executing the SETUP_TEMPLATE.sh script.π"
+ echo -e "\nRemember to review every file and customize it as you like.\nYou are ready to start your brand new awesome projectππ." else
+ fi
+
# self remove this script
rm -- "$0"
;;
From fe02d20d3f44d1dba2e5490d2349c2afc4534da5 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 13:44:15 +0200
Subject: [PATCH 11/20] "some fixes"
---
SETUP_TEMPLATE.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/SETUP_TEMPLATE.sh b/SETUP_TEMPLATE.sh
index 8180472..6e03f74 100644
--- a/SETUP_TEMPLATE.sh
+++ b/SETUP_TEMPLATE.sh
@@ -27,8 +27,8 @@ NC='\033[0m' # No Color
UPurple='\033[4;35m'
BBLUE='\033[1;34m'
GREEN='\033[1;32m'
-FILE_FUNCTION_HELPERS=bin/FUNCTION_HELPERS.sh
OMIT_STR="--omit-commit-and-confirmation"
+FILE_FUNCTION_HELPERS=bin/FUNCTION_HELPERS.sh
if [ ! -f "$FILE_FUNCTION_HELPERS" ]; then # check if the function helpers file is not found
echo -e "${RED}Can not find ${FILE_FUNCTION_HELPERS}"
@@ -65,7 +65,7 @@ fi
echo -e "Thanks for using ${GREEN}Josee9988/project-template${NC}"
echo -e "Read carefully all the documentation before you continue executing this script: ${UPurple}https://github.com/Josee9988/project-template${NC}\n"
-if [ ! $4 = "$OMIT_STR" ]; then # if the project's type has been manually specified
+if [ ! "$4" = "$OMIT_STR" ]; then # if the project's type has been manually specified
read -p "Enter $(echo -e "$BBLUE""what your project is""$NC") (program/extension/API/web/CLI tool/backend/frontend/scrapper/automation tool/etc): " PROJECT_TYPE
read -p "Is this data correct: username \"$(echo -e "$GREEN""$NEW_USERNAME""$NC")\", email: \"$(echo -e "$GREEN""$NEW_EMAIL""$NC")\", project name: \"$(echo -e "$GREEN""$PROJECT_NAME""$NC")\", of type: \"$(echo -e "$GREEN""$PROJECT_TYPE""$NC")\" (y/n)? " choice
else
From 8cb87831b4abc294a9165162f00e0156176b129c Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 14:02:46 +0200
Subject: [PATCH 12/20] "improved and prepared all the folders for the tests"
---
SETUP_TEMPLATE.sh | 2 +-
bin/FUNCTION_HELPERS.sh | 4 ++--
tests/TESTS_RUNNER.sh | 4 ++--
tests/project_scaffolding.sh | 24 ++++++++++++++++--------
4 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/SETUP_TEMPLATE.sh b/SETUP_TEMPLATE.sh
index 6e03f74..65f0719 100644
--- a/SETUP_TEMPLATE.sh
+++ b/SETUP_TEMPLATE.sh
@@ -86,7 +86,7 @@ y | Y)
rm LICENSE # remove the license
rm -r bin/ # remove the bin folder
- rm -r tests/ # remove the tests folder
+ rm -r tests/ 2>/dev/null || : # remove the tests folder
writeREADME # write the new README.md
writeCHANGELOG # write the basic structure of the CHANGELOG.md
echo -e "# add your own funding links" >.github/FUNDING.yml # remove author's custom funding links
diff --git a/bin/FUNCTION_HELPERS.sh b/bin/FUNCTION_HELPERS.sh
index 368005c..5cbc1f8 100644
--- a/bin/FUNCTION_HELPERS.sh
+++ b/bin/FUNCTION_HELPERS.sh
@@ -31,14 +31,14 @@ center() {
checkFiles() {
### Check if the .github directory does exist ###
- if [ ! -d ".github/" ] || [ ! -d ".github/ISSUE_TEMPLATE" ]; then
+ if [ ! -d ".github/" ] && [ ! -d ".github/ISSUE_TEMPLATE" ]; then
echo -e "${RED}Directory .github/ DOES NOT EXIST WITH ALL THE FILES NEEDED.${NC}"
displayErrorInstructions
exit 1 # exit with error code 1
fi
### Checks if the root files exist and some extra important files ###
- if [ ! -f "CHANGELOG.md" ] || [ ! -f "README.md" ] || [ ! -f ".gitignore" ] || [ ! -f "LICENSE" ] || [ ! -f ".github/settings.yml" ] || [ ! -f ".github/pull_request_template.md" ] || [ ! -f ".github/ISSUE_TEMPLATE/1-bug-report.md" ] || [ ! -f ".github/ISSUE_TEMPLATE/config.yml" ]; then
+ if [ ! -f "CHANGELOG.md" ] && [ ! -f "README.md" ] && [ ! -f ".gitignore" ] && [ ! -f "LICENSE" ] && [ ! -f ".github/settings.yml" ] && [ ! -f ".github/pull_request_template.md" ] && [ ! -f ".github/ISSUE_TEMPLATE/1-bug-report.md" ] && [ ! -f ".github/ISSUE_TEMPLATE/config.yml" ]; then
echo -e "${RED}The script couldn't find one or many of the template main files${NC}."
displayErrorInstructions
exit 1 # exit with error code 1
diff --git a/tests/TESTS_RUNNER.sh b/tests/TESTS_RUNNER.sh
index a0cb94d..41c5f4a 100755
--- a/tests/TESTS_RUNNER.sh
+++ b/tests/TESTS_RUNNER.sh
@@ -2,9 +2,9 @@
# ADD AS MANY LINES AS TESTS FILE YOU HAVE TO RUN THEM ALL
-mkdir -p tests/.tests_trash/
+mkdir -p tests/.ignore.tests_trash
echo -e "\n\n--------------------------------\nrunning ./tests/project_scaffolding.sh"
./tests/project_scaffolding.sh
-rm -r tests/.tests_trash
+#rm -r tests/.ignore.tests_trash
diff --git a/tests/project_scaffolding.sh b/tests/project_scaffolding.sh
index f12f365..bb5611f 100755
--- a/tests/project_scaffolding.sh
+++ b/tests/project_scaffolding.sh
@@ -1,18 +1,26 @@
#! /bin/bash
# file: examples/arguments_test.sh
-TESTS_TRASH_DIR="tests/.tests_trash"
+TESTS_TRASH_DIR="tests/.ignore.tests_trash"
+USERNAME="FAKE_USERNAME_TESTS"
+NAME="FAKE_NAME_TESTS"
+MAIL="FAKE_EMAIL_TESTS"
+OMIT_STR="--omit-commit-and-confirmation"
cp -r * $TESTS_TRASH_DIR --copy-content 2>/dev/null || :
cp -r .github/ $TESTS_TRASH_DIR --copy-contents
cp -r bin/ $TESTS_TRASH_DIR --copy-contents
-rm -r $TESTS_TRASH_DIR/tests/
+cp .gitignore $TESTS_TRASH_DIR --copy-contents
+rm -r $TESTS_TRASH_DIR/tests/ 2>/dev/null || :
rm -r $TESTS_TRASH_DIR/.git/ 2>/dev/null || :
-#cd "tests/.tests_trash" || exit
# TESTS
suite() {
+ cd $TESTS_TRASH_DIR || exit
+
+ bash SETUP_TEMPLATE.sh $USERNAME $NAME $MAIL $OMIT_STR
+
suite_addTest testDotGithubFolder
suite_addTest testDotGithubISSUE_TEMPLATE
suite_addTest testDotGithubISSUE_TEMPLATEFiles
@@ -22,7 +30,7 @@ suite() {
testDotGithubFolder() {
githubFolderFound=0
- if [ -e "$TESTS_TRASH_DIR/.github/" ]; then
+ if [ -e ".github/" ]; then
githubFolderFound=1
fi
assertEquals 1 $githubFolderFound
@@ -31,7 +39,7 @@ testDotGithubFolder() {
testDotGithubISSUE_TEMPLATE() {
folderFound=0
- if [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE" ]; then
+ if [ -e ".github/ISSUE_TEMPLATE" ]; then
folderFound=1
fi
assertEquals 1 $folderFound
@@ -39,7 +47,7 @@ testDotGithubISSUE_TEMPLATE() {
testDotGithubISSUE_TEMPLATEFiles() {
filesFound=0
- if [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/1-bug-report.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/2-failing-test.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/3-docs-bug.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/4-feature-request.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/5-enhancement-request.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/6-security-report.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/7-question-support.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE/config.yml" ]; then
+ if [ -e ".github/ISSUE_TEMPLATE/1-bug-report.md" ] && [ -e ".github/ISSUE_TEMPLATE/2-failing-test.md" ] && [ -e ".github/ISSUE_TEMPLATE/3-docs-bug.md" ] && [ -e ".github/ISSUE_TEMPLATE/4-feature-request.md" ] && [ -e ".github/ISSUE_TEMPLATE/5-enhancement-request.md" ] && [ -e ".github/ISSUE_TEMPLATE/6-security-report.md" ] && [ -e ".github/ISSUE_TEMPLATE/7-question-support.md" ] && [ -e ".github/ISSUE_TEMPLATE/config.yml" ]; then
filesFound=1
fi
assertEquals 1 $filesFound
@@ -47,12 +55,12 @@ testDotGithubISSUE_TEMPLATEFiles() {
testDotGithubFiles() {
filesFound=0
- if [ -e "$TESTS_TRASH_DIR/.github/CODEOWNERS" ] && [ -e "$TESTS_TRASH_DIR/.github/CODE_OF_CONDUCT.md" ] && [ -e "$TESTS_TRASH_DIR/.github/CONTRIBUTING.md" ] && [ -e "$TESTS_TRASH_DIR/.github/ISSUE_TEMPLATE.md" ] && [ -e "$TESTS_TRASH_DIR/.github/pull_request_template.md" ] && [ -e "$TESTS_TRASH_DIR/.github/SECURITY.md" ] && [ -e "$TESTS_TRASH_DIR/.github/SUPPORT.md" ] && [ -e "$TESTS_TRASH_DIR/.github/issue_label_bot.yaml" ] && [ -e "$TESTS_TRASH_DIR/.github/config.yml" ] && [ -e "$TESTS_TRASH_DIR/.github/FUNDING.yml" ] && [ -e "$TESTS_TRASH_DIR/.github/settings.yml" ]; then
+ if [ -e ".github/CODEOWNERS" ] && [ -e ".github/CODE_OF_CONDUCT.md" ] && [ -e ".github/CONTRIBUTING.md" ] && [ -e ".github/ISSUE_TEMPLATE.md" ] && [ -e ".github/pull_request_template.md" ] && [ -e ".github/SECURITY.md" ] && [ -e ".github/SUPPORT.md" ] && [ -e ".github/issue_label_bot.yaml" ] && [ -e ".github/config.yml" ] && [ -e ".github/FUNDING.yml" ] && [ -e ".github/settings.yml" ]; then
filesFound=1
fi
assertEquals 1 $filesFound
}
# Load and run shUnit2.
-#cd "../.." || exit
. tests/shunit2
+cd "../.." || exit
From e9113049413019f98095f1725664d0051ef41552 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 15:34:17 +0200
Subject: [PATCH 13/20] "improved test structure"
---
tests/TESTS_RUNNER.sh | 21 ++++--
...ect_scaffolding.sh => custom_data_test.sh} | 28 ++++----
tests/project_scaffolding_test.sh | 68 +++++++++++++++++++
3 files changed, 98 insertions(+), 19 deletions(-)
rename tests/{project_scaffolding.sh => custom_data_test.sh} (78%)
create mode 100755 tests/project_scaffolding_test.sh
diff --git a/tests/TESTS_RUNNER.sh b/tests/TESTS_RUNNER.sh
index 41c5f4a..7e680b4 100755
--- a/tests/TESTS_RUNNER.sh
+++ b/tests/TESTS_RUNNER.sh
@@ -1,10 +1,19 @@
#!/bin/bash
-# ADD AS MANY LINES AS TESTS FILE YOU HAVE TO RUN THEM ALL
+LGREEN='\033[0;32m'
+NC='\033[0m' # No Color
+TESTS_TRASH_DIR="tests/.ignore.tests_trash/"
+declare -a files=("tests/project_scaffolding_test.sh" "tests/custom_data_test.sh") # all the tests
-mkdir -p tests/.ignore.tests_trash
+center() {
+ term_width="$(tput cols)"
+ padding="$(printf '%0.1s' +{1..500})"
+ echo -e "\n\n${LGREEN}$(printf '%*.*s %s %*.*s\n' 0 "$(((term_width - 2 - ${#1}) / 2))" "$padding" "$1" 0 "$(((term_width - 1 - ${#1}) / 2))" "$padding")${NC}\n"
+}
-echo -e "\n\n--------------------------------\nrunning ./tests/project_scaffolding.sh"
-./tests/project_scaffolding.sh
-
-#rm -r tests/.ignore.tests_trash
+for file in "${files[@]}"; do
+ mkdir -p tests/.ignore.tests_trash
+ center "TEST: running test ./$file"
+ ./"$file"
+ rm -r $TESTS_TRASH_DIR
+done
diff --git a/tests/project_scaffolding.sh b/tests/custom_data_test.sh
similarity index 78%
rename from tests/project_scaffolding.sh
rename to tests/custom_data_test.sh
index bb5611f..393b993 100755
--- a/tests/project_scaffolding.sh
+++ b/tests/custom_data_test.sh
@@ -1,5 +1,5 @@
#! /bin/bash
-# file: examples/arguments_test.sh
+# file: examples/custom_data_test.sh
TESTS_TRASH_DIR="tests/.ignore.tests_trash"
USERNAME="FAKE_USERNAME_TESTS"
@@ -7,25 +7,28 @@ NAME="FAKE_NAME_TESTS"
MAIL="FAKE_EMAIL_TESTS"
OMIT_STR="--omit-commit-and-confirmation"
-cp -r * $TESTS_TRASH_DIR --copy-content 2>/dev/null || :
-cp -r .github/ $TESTS_TRASH_DIR --copy-contents
-cp -r bin/ $TESTS_TRASH_DIR --copy-contents
-cp .gitignore $TESTS_TRASH_DIR --copy-contents
-rm -r $TESTS_TRASH_DIR/tests/ 2>/dev/null || :
-rm -r $TESTS_TRASH_DIR/.git/ 2>/dev/null || :
+oneTimeSetUp() {
+ cp -r * $TESTS_TRASH_DIR --copy-content 2>/dev/null || :
+ cp -r .github/ $TESTS_TRASH_DIR --copy-contents
+ cp -r bin/ $TESTS_TRASH_DIR --copy-contents
+ cp .gitignore $TESTS_TRASH_DIR --copy-contents
+ rm -r $TESTS_TRASH_DIR/tests/ 2>/dev/null || :
+ rm -r $TESTS_TRASH_DIR/.git/ 2>/dev/null || :
+ cd $TESTS_TRASH_DIR || exit
+ bash SETUP_TEMPLATE.sh $USERNAME $NAME $MAIL $OMIT_STR >/dev/null
+}
-# TESTS
+oneTimeTearDown() {
+ cd "../.." || exit
+}
+# TESTS
suite() {
- cd $TESTS_TRASH_DIR || exit
-
- bash SETUP_TEMPLATE.sh $USERNAME $NAME $MAIL $OMIT_STR
suite_addTest testDotGithubFolder
suite_addTest testDotGithubISSUE_TEMPLATE
suite_addTest testDotGithubISSUE_TEMPLATEFiles
suite_addTest testDotGithubFiles
-
}
testDotGithubFolder() {
@@ -63,4 +66,3 @@ testDotGithubFiles() {
# Load and run shUnit2.
. tests/shunit2
-cd "../.." || exit
diff --git a/tests/project_scaffolding_test.sh b/tests/project_scaffolding_test.sh
new file mode 100755
index 0000000..b4dad54
--- /dev/null
+++ b/tests/project_scaffolding_test.sh
@@ -0,0 +1,68 @@
+#! /bin/bash
+# file: examples/project_scaffolding_test.sh
+
+TESTS_TRASH_DIR="tests/.ignore.tests_trash"
+USERNAME="FAKE_USERNAME_TESTS"
+NAME="FAKE_NAME_TESTS"
+MAIL="FAKE_EMAIL_TESTS"
+OMIT_STR="--omit-commit-and-confirmation"
+
+oneTimeSetUp() {
+ cp -r * $TESTS_TRASH_DIR --copy-content 2>/dev/null || :
+ cp -r .github/ $TESTS_TRASH_DIR --copy-contents
+ cp -r bin/ $TESTS_TRASH_DIR --copy-contents
+ cp .gitignore $TESTS_TRASH_DIR --copy-contents
+ rm -r $TESTS_TRASH_DIR/tests/ 2>/dev/null || :
+ rm -r $TESTS_TRASH_DIR/.git/ 2>/dev/null || :
+ cd $TESTS_TRASH_DIR || exit
+ bash SETUP_TEMPLATE.sh $USERNAME $NAME $MAIL $OMIT_STR >/dev/null
+}
+
+oneTimeTearDown() {
+ cd "../.." || exit
+}
+
+# TESTS
+suite() {
+
+ suite_addTest testDotGithubFolder
+ suite_addTest testDotGithubISSUE_TEMPLATE
+ suite_addTest testDotGithubISSUE_TEMPLATEFiles
+ suite_addTest testDotGithubFiles
+}
+
+testDotGithubFolder() {
+ githubFolderFound=0
+ if [ -e ".github/" ]; then
+ githubFolderFound=1
+ fi
+ assertEquals 1 $githubFolderFound
+
+}
+
+testDotGithubISSUE_TEMPLATE() {
+ folderFound=0
+ if [ -e ".github/ISSUE_TEMPLATE" ]; then
+ folderFound=1
+ fi
+ assertEquals 1 $folderFound
+}
+
+testDotGithubISSUE_TEMPLATEFiles() {
+ filesFound=0
+ if [ -e ".github/ISSUE_TEMPLATE/1-bug-report.md" ] && [ -e ".github/ISSUE_TEMPLATE/2-failing-test.md" ] && [ -e ".github/ISSUE_TEMPLATE/3-docs-bug.md" ] && [ -e ".github/ISSUE_TEMPLATE/4-feature-request.md" ] && [ -e ".github/ISSUE_TEMPLATE/5-enhancement-request.md" ] && [ -e ".github/ISSUE_TEMPLATE/6-security-report.md" ] && [ -e ".github/ISSUE_TEMPLATE/7-question-support.md" ] && [ -e ".github/ISSUE_TEMPLATE/config.yml" ]; then
+ filesFound=1
+ fi
+ assertEquals 1 $filesFound
+}
+
+testDotGithubFiles() {
+ filesFound=0
+ if [ -e ".github/CODEOWNERS" ] && [ -e ".github/CODE_OF_CONDUCT.md" ] && [ -e ".github/CONTRIBUTING.md" ] && [ -e ".github/ISSUE_TEMPLATE.md" ] && [ -e ".github/pull_request_template.md" ] && [ -e ".github/SECURITY.md" ] && [ -e ".github/SUPPORT.md" ] && [ -e ".github/issue_label_bot.yaml" ] && [ -e ".github/config.yml" ] && [ -e ".github/FUNDING.yml" ] && [ -e ".github/settings.yml" ]; then
+ filesFound=1
+ fi
+ assertEquals 1 $filesFound
+}
+
+# Load and run shUnit2.
+. tests/shunit2
From b385d94afda97a915f769896289d9183a5f2528c Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 15:48:49 +0200
Subject: [PATCH 14/20] "finished project scaffolding"
---
tests/TESTS_RUNNER.sh | 2 +-
tests/project_scaffolding_test.sh | 28 +++++++++++++++++++++++++++-
2 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/tests/TESTS_RUNNER.sh b/tests/TESTS_RUNNER.sh
index 7e680b4..31e3771 100755
--- a/tests/TESTS_RUNNER.sh
+++ b/tests/TESTS_RUNNER.sh
@@ -8,7 +8,7 @@ declare -a files=("tests/project_scaffolding_test.sh" "tests/custom_data_test.sh
center() {
term_width="$(tput cols)"
padding="$(printf '%0.1s' +{1..500})"
- echo -e "\n\n${LGREEN}$(printf '%*.*s %s %*.*s\n' 0 "$(((term_width - 2 - ${#1}) / 2))" "$padding" "$1" 0 "$(((term_width - 1 - ${#1}) / 2))" "$padding")${NC}\n"
+ echo -e "\n${LGREEN}$(printf '%*.*s %s %*.*s\n' 0 "$(((term_width - 2 - ${#1}) / 2))" "$padding" "$1" 0 "$(((term_width - 1 - ${#1}) / 2))" "$padding")${NC}"
}
for file in "${files[@]}"; do
diff --git a/tests/project_scaffolding_test.sh b/tests/project_scaffolding_test.sh
index b4dad54..2e1526b 100755
--- a/tests/project_scaffolding_test.sh
+++ b/tests/project_scaffolding_test.sh
@@ -24,11 +24,13 @@ oneTimeTearDown() {
# TESTS
suite() {
-
suite_addTest testDotGithubFolder
suite_addTest testDotGithubISSUE_TEMPLATE
suite_addTest testDotGithubISSUE_TEMPLATEFiles
suite_addTest testDotGithubFiles
+ suite_addTest testTestRemovedFiles
+ suite_addTest testGlobalFiles
+ suite_addTest testRemovedFiles
}
testDotGithubFolder() {
@@ -64,5 +66,29 @@ testDotGithubFiles() {
assertEquals 1 $filesFound
}
+testTestRemovedFiles() {
+ filesFound=0
+ if [ -e "tests/" ] && [ -e "tests/shunit2" ] && [ -e "tests/TESTS_RUNNER.sh" ]; then
+ filesFound=1
+ fi
+ assertNotEquals 1 $filesFound
+}
+
+testGlobalFiles() {
+ filesFound=0
+ if [ -e ".gitignore" ] && [ -e "CHANGELOG.md" ] && [ -e "README.md" ]; then
+ filesFound=1
+ fi
+ assertEquals 1 $filesFound
+}
+
+testRemovedFiles() {
+ filesFound=0
+ if [ -e "LICENSE" ] && [ -e "bin" ] && [ -e "bin/FUNCTION_HELPERS.sh" ]; then
+ filesFound=1
+ fi
+ assertNotEquals 1 $filesFound
+}
+
# Load and run shUnit2.
. tests/shunit2
From 34da14d4918bde703e4b80eca4ebbd149459b9d5 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 16:16:34 +0200
Subject: [PATCH 15/20] "fixed config.yml proejct name was not parsed"
---
SETUP_TEMPLATE.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/SETUP_TEMPLATE.sh b/SETUP_TEMPLATE.sh
index 65f0719..49f1a28 100644
--- a/SETUP_TEMPLATE.sh
+++ b/SETUP_TEMPLATE.sh
@@ -82,6 +82,7 @@ y | Y)
# replace the username and email
find .github/ -type f -name "*" -print0 | xargs -0 sed -i "s/Josee9988/${NEW_USERNAME}/g"
find .github/ -type f -name "*" -print0 | xargs -0 sed -i "s/jgracia9988@gmail.com/${NEW_EMAIL}/g"
+ find .github/ -type f -name "*" -print0 | xargs -0 sed -i "s/project-template/${PROJECT_NAME}/g"
find .gitignore -type f -name "*" -print0 | xargs -0 sed -i "s/Josee9988\/project-template/${NEW_USERNAME}\/${PROJECT_NAME}/g"
rm LICENSE # remove the license
From 446e720840e677877a8e1d9f93abe32de685e692 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Thu, 8 Jul 2021 20:48:00 +0200
Subject: [PATCH 16/20] "refactored the code"
---
tests/custom_data_test.sh | 102 ++++++++++++++++++++++--------
tests/project_scaffolding_test.sh | 30 +++++----
2 files changed, 95 insertions(+), 37 deletions(-)
diff --git a/tests/custom_data_test.sh b/tests/custom_data_test.sh
index 393b993..b7e2edb 100755
--- a/tests/custom_data_test.sh
+++ b/tests/custom_data_test.sh
@@ -5,6 +5,7 @@ TESTS_TRASH_DIR="tests/.ignore.tests_trash"
USERNAME="FAKE_USERNAME_TESTS"
NAME="FAKE_NAME_TESTS"
MAIL="FAKE_EMAIL_TESTS"
+TYPE="FAKE_TYPE_TESTS"
OMIT_STR="--omit-commit-and-confirmation"
oneTimeSetUp() {
@@ -15,7 +16,7 @@ oneTimeSetUp() {
rm -r $TESTS_TRASH_DIR/tests/ 2>/dev/null || :
rm -r $TESTS_TRASH_DIR/.git/ 2>/dev/null || :
cd $TESTS_TRASH_DIR || exit
- bash SETUP_TEMPLATE.sh $USERNAME $NAME $MAIL $OMIT_STR >/dev/null
+ bash SETUP_TEMPLATE.sh $USERNAME $NAME $MAIL $TYPE $OMIT_STR >/dev/null
}
oneTimeTearDown() {
@@ -24,44 +25,95 @@ oneTimeTearDown() {
# TESTS
suite() {
+ suite_addTest testDotGithubISSUE_TEMPLATEAsignees
+ suite_addTest testDotGithubISSUE_TEMPLATEConfig
+ suite_addTest testDotGithubConfig
+ suite_addTest testDotGithubSecurity
+ suite_addTest testDotGithubCODEOWNERS
+ suite_addTest testDotGitignore
+ suite_addTest testDotChangelog
+}
+
+testDotGithubISSUE_TEMPLATEAsignees() {
+ isTheAssigneeNotFound=0
+ assigneesWithName="assignees: $USERNAME"
+ declare -a files=(
+ ".github/ISSUE_TEMPLATE/1-bug-report.md" ".github/ISSUE_TEMPLATE/2-failing-test.md"
+ ".github/ISSUE_TEMPLATE/3-docs-bug.md" ".github/ISSUE_TEMPLATE/4-feature-request.md"
+ ".github/ISSUE_TEMPLATE/5-enhancement-request.md" ".github/ISSUE_TEMPLATE/6-security-report.md"
+ ".github/ISSUE_TEMPLATE/7-question-support.md")
- suite_addTest testDotGithubFolder
- suite_addTest testDotGithubISSUE_TEMPLATE
- suite_addTest testDotGithubISSUE_TEMPLATEFiles
- suite_addTest testDotGithubFiles
+ for file in "${files[@]}"; do
+ if ! grep -q "$assigneesWithName" "$file"; then
+ isTheAssigneeNotFound=1
+ fi
+ done
+ assertNotEquals 1 $isTheAssigneeNotFound
}
-testDotGithubFolder() {
- githubFolderFound=0
- if [ -e ".github/" ]; then
- githubFolderFound=1
+testDotGithubISSUE_TEMPLATEConfig() {
+ isTheAssigneeNotFound=0
+ mailInConfig="url: mailto:$MAIL"
+
+ if grep -q "$mailInConfig" ".github/ISSUE_TEMPLATE/config.yml"; then
+ isTheAssigneeNotFound=1
fi
- assertEquals 1 $githubFolderFound
+ assertEquals 1 $isTheAssigneeNotFound
+}
+testDotGithubConfig() {
+ isNewIssueWelcomeCommentFound=0
+ newIssueWelcomeComment="Thanks for opening your first issue in $USERNAME/$NAME! Be sure to"
+
+ if grep -q "$newIssueWelcomeComment" ".github/config.yml"; then
+ isNewIssueWelcomeCommentFound=1
+ fi
+ assertEquals 1 $isNewIssueWelcomeCommentFound
}
-testDotGithubISSUE_TEMPLATE() {
- folderFound=0
- if [ -e ".github/ISSUE_TEMPLATE" ]; then
- folderFound=1
+testDotGithubSecurity() {
+ isSecurityDataFound=0
+ securityData1="(mailto:$MAIL)"
+ securityData2="[$MAIL]"
+ securityData3="he project's team and community take security issues"
+
+ if grep -q "$securityData1" ".github/SECURITY.md" && grep -q "$securityData2" ".github/SECURITY.md" && grep -q "$securityData3" ".github/SECURITY.md"; then
+ isSecurityDataFound=1
fi
- assertEquals 1 $folderFound
+ assertEquals 1 $isSecurityDataFound
}
-testDotGithubISSUE_TEMPLATEFiles() {
- filesFound=0
- if [ -e ".github/ISSUE_TEMPLATE/1-bug-report.md" ] && [ -e ".github/ISSUE_TEMPLATE/2-failing-test.md" ] && [ -e ".github/ISSUE_TEMPLATE/3-docs-bug.md" ] && [ -e ".github/ISSUE_TEMPLATE/4-feature-request.md" ] && [ -e ".github/ISSUE_TEMPLATE/5-enhancement-request.md" ] && [ -e ".github/ISSUE_TEMPLATE/6-security-report.md" ] && [ -e ".github/ISSUE_TEMPLATE/7-question-support.md" ] && [ -e ".github/ISSUE_TEMPLATE/config.yml" ]; then
- filesFound=1
+testDotGithubCODEOWNERS() {
+ isCodeownersDataFound=0
+ usernameData="$USERNAME"
+
+ if grep -q "$usernameData" ".github/CODEOWNERS"; then
+ isCodeownersDataFound=1
+ fi
+ assertEquals 1 $isCodeownersDataFound
+}
+
+testDotGitignore() {
+ isGitignoreDataFound=0
+ gitignoreData1="###> $USERNAME/$NAME ###"
+ gitignoreData2="###< $USERNAME/$NAME ###"
+
+ if grep -q "$gitignoreData1" ".gitignore" && grep -q "$gitignoreData2" ".gitignore"; then
+ isGitignoreDataFound=1
fi
- assertEquals 1 $filesFound
+ assertEquals 1 $isGitignoreDataFound
}
-testDotGithubFiles() {
- filesFound=0
- if [ -e ".github/CODEOWNERS" ] && [ -e ".github/CODE_OF_CONDUCT.md" ] && [ -e ".github/CONTRIBUTING.md" ] && [ -e ".github/ISSUE_TEMPLATE.md" ] && [ -e ".github/pull_request_template.md" ] && [ -e ".github/SECURITY.md" ] && [ -e ".github/SUPPORT.md" ] && [ -e ".github/issue_label_bot.yaml" ] && [ -e ".github/config.yml" ] && [ -e ".github/FUNDING.yml" ] && [ -e ".github/settings.yml" ]; then
- filesFound=1
+testDotChangelog() {
+ isChangelogDataFound=0
+ changelogData1="All notable changes to the"
+ changelogData2="**$NAME**"
+ changelogData3="$TYPE will be documented in this file."
+
+ if grep -q "$changelogData1" "CHANGELOG.md" && grep -q "$changelogData2" "CHANGELOG.md" && grep -q "$changelogData3" "CHANGELOG.md"; then
+ isChangelogDataFound=1
fi
- assertEquals 1 $filesFound
+ assertEquals 1 $isChangelogDataFound
}
# Load and run shUnit2.
diff --git a/tests/project_scaffolding_test.sh b/tests/project_scaffolding_test.sh
index 2e1526b..a338b9c 100755
--- a/tests/project_scaffolding_test.sh
+++ b/tests/project_scaffolding_test.sh
@@ -5,6 +5,7 @@ TESTS_TRASH_DIR="tests/.ignore.tests_trash"
USERNAME="FAKE_USERNAME_TESTS"
NAME="FAKE_NAME_TESTS"
MAIL="FAKE_EMAIL_TESTS"
+TYPE="FAKE_TYPE_TESTS"
OMIT_STR="--omit-commit-and-confirmation"
oneTimeSetUp() {
@@ -15,7 +16,7 @@ oneTimeSetUp() {
rm -r $TESTS_TRASH_DIR/tests/ 2>/dev/null || :
rm -r $TESTS_TRASH_DIR/.git/ 2>/dev/null || :
cd $TESTS_TRASH_DIR || exit
- bash SETUP_TEMPLATE.sh $USERNAME $NAME $MAIL $OMIT_STR >/dev/null
+ bash SETUP_TEMPLATE.sh $USERNAME $NAME $MAIL $TYPE $OMIT_STR >/dev/null
}
oneTimeTearDown() {
@@ -39,7 +40,6 @@ testDotGithubFolder() {
githubFolderFound=1
fi
assertEquals 1 $githubFolderFound
-
}
testDotGithubISSUE_TEMPLATE() {
@@ -51,19 +51,25 @@ testDotGithubISSUE_TEMPLATE() {
}
testDotGithubISSUE_TEMPLATEFiles() {
- filesFound=0
- if [ -e ".github/ISSUE_TEMPLATE/1-bug-report.md" ] && [ -e ".github/ISSUE_TEMPLATE/2-failing-test.md" ] && [ -e ".github/ISSUE_TEMPLATE/3-docs-bug.md" ] && [ -e ".github/ISSUE_TEMPLATE/4-feature-request.md" ] && [ -e ".github/ISSUE_TEMPLATE/5-enhancement-request.md" ] && [ -e ".github/ISSUE_TEMPLATE/6-security-report.md" ] && [ -e ".github/ISSUE_TEMPLATE/7-question-support.md" ] && [ -e ".github/ISSUE_TEMPLATE/config.yml" ]; then
- filesFound=1
- fi
- assertEquals 1 $filesFound
+ declare -a files=(
+ ".github/ISSUE_TEMPLATE/1-bug-report.md" ".github/ISSUE_TEMPLATE/2-failing-test.md"
+ ".github/ISSUE_TEMPLATE/3-docs-bug.md" ".github/ISSUE_TEMPLATE/4-feature-request.md"
+ ".github/ISSUE_TEMPLATE/5-enhancement-request.md" ".github/ISSUE_TEMPLATE/6-security-report.md"
+ ".github/ISSUE_TEMPLATE/7-question-support.md")
+
+ for file in "${files[@]}"; do
+ assertTrue " $file does not exist" "[ -e \"$file\" ]"
+ done
}
testDotGithubFiles() {
- filesFound=0
- if [ -e ".github/CODEOWNERS" ] && [ -e ".github/CODE_OF_CONDUCT.md" ] && [ -e ".github/CONTRIBUTING.md" ] && [ -e ".github/ISSUE_TEMPLATE.md" ] && [ -e ".github/pull_request_template.md" ] && [ -e ".github/SECURITY.md" ] && [ -e ".github/SUPPORT.md" ] && [ -e ".github/issue_label_bot.yaml" ] && [ -e ".github/config.yml" ] && [ -e ".github/FUNDING.yml" ] && [ -e ".github/settings.yml" ]; then
- filesFound=1
- fi
- assertEquals 1 $filesFound
+ declare -a files=(
+ ".github/CODEOWNERS" ".github/CODE_OF_CONDUCT.md" ".github/CONTRIBUTING.md" ".github/ISSUE_TEMPLATE.md"
+ ".github/pull_request_template.md" ".github/SECURITY.md" ".github/SUPPORT.md" ".github/issue_label_bot.yaml"
+ ".github/config.yml" ".github/FUNDING.yml" ".github/settings.yml")
+ for file in "${files[@]}"; do
+ assertTrue " $file does not exist" "[ -e \"$file\" ]"
+ done
}
testTestRemovedFiles() {
From b6c40070a1008f7a354e35936267dae240dac4c3 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Fri, 9 Jul 2021 13:32:45 +0200
Subject: [PATCH 17/20] "improved security md file"
---
.github/SECURITY.md | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/.github/SECURITY.md b/.github/SECURITY.md
index 30a193d..1d67596 100644
--- a/.github/SECURITY.md
+++ b/.github/SECURITY.md
@@ -4,10 +4,8 @@ The project's team and community take security issues.
We appreciate your efforts to responsibly disclose your findings and will make every effort to acknowledge your contributions.
-To report a security issue, go to the project's issues and create a new issue using the β οΈ Security Report``issue template.
+To report a security issue, go to the project's issues and create a new issue using the β οΈ Security Report 'issue template'.
-Read carefully the instructions of this issue template, and if your report could leak data or might expose
-how to gain access to a restricted area or break the system,
-please email [jgracia9988@gmail.com](mailto:jgracia9988@gmail.com) and include the word "SECURITY" in the subject line.
+Read carefully the instructions of this issue template, and if your report could leak data or might expose how to gain access to a restricted area or break the system, please email [jgracia9988@gmail.com](mailto:jgracia9988@gmail.com) and include the word "SECURITY" in the subject line.
We'll endeavour to respond quickly, and will keep you updated throughout the process.
From aa4e41439d85b1195de8550d1878e980fb48db11 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Fri, 9 Jul 2021 13:33:04 +0200
Subject: [PATCH 18/20] "improved the setup template for the tests; fixed some
test issues"
---
SETUP_TEMPLATE.sh | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/SETUP_TEMPLATE.sh b/SETUP_TEMPLATE.sh
index 49f1a28..088dc07 100644
--- a/SETUP_TEMPLATE.sh
+++ b/SETUP_TEMPLATE.sh
@@ -65,11 +65,16 @@ fi
echo -e "Thanks for using ${GREEN}Josee9988/project-template${NC}"
echo -e "Read carefully all the documentation before you continue executing this script: ${UPurple}https://github.com/Josee9988/project-template${NC}\n"
-if [ ! "$4" = "$OMIT_STR" ]; then # if the project's type has been manually specified
- read -p "Enter $(echo -e "$BBLUE""what your project is""$NC") (program/extension/API/web/CLI tool/backend/frontend/scrapper/automation tool/etc): " PROJECT_TYPE
- read -p "Is this data correct: username \"$(echo -e "$GREEN""$NEW_USERNAME""$NC")\", email: \"$(echo -e "$GREEN""$NEW_EMAIL""$NC")\", project name: \"$(echo -e "$GREEN""$PROJECT_NAME""$NC")\", of type: \"$(echo -e "$GREEN""$PROJECT_TYPE""$NC")\" (y/n)? " choice
+if [ -n "$4" ]; then # if the project's type has been manually specified
+ PROJECT_TYPE=$4
else
+ read -p "Enter $(echo -e "$BBLUE""what your project is""$NC") (program/extension/API/web/CLI tool/backend/frontend/scrapper/automation tool/etc): " PROJECT_TYPE
+fi
+
+if [ "$5" = "$OMIT_STR" ]; then # if the ignore flag has been manually specified
choice="y"
+else
+ read -p "Is this data correct: username \"$(echo -e "$GREEN""$NEW_USERNAME""$NC")\", email: \"$(echo -e "$GREEN""$NEW_EMAIL""$NC")\", project name: \"$(echo -e "$GREEN""$PROJECT_NAME""$NC")\", of type: \"$(echo -e "$GREEN""$PROJECT_TYPE""$NC")\" (y/n)? " choice
fi
###### START OF THE SCRIPT ######
@@ -92,7 +97,7 @@ y | Y)
writeCHANGELOG # write the basic structure of the CHANGELOG.md
echo -e "# add your own funding links" >.github/FUNDING.yml # remove author's custom funding links
- if [ ! "$4" = "$OMIT_STR" ]; then # if the ignore option for tests has been specified
+ if [ ! "$5" = "$OMIT_STR" ]; then # if the ignore option for tests has been specified
git add CHANGELOG.md README.md .gitignore .github SETUP_TEMPLATE.sh LICENSE bin # commit the new files
git -c color.status=always status | less -REX # show git status with colours
echo -e "Committing the changes for you :)\n"
From b6c1351e697aeb5104aa59780f8c52a7915b1a1a Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Fri, 9 Jul 2021 13:33:18 +0200
Subject: [PATCH 19/20] "refactored and simplified some code"
---
tests/project_scaffolding_test.sh | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/tests/project_scaffolding_test.sh b/tests/project_scaffolding_test.sh
index a338b9c..9b36d7e 100755
--- a/tests/project_scaffolding_test.sh
+++ b/tests/project_scaffolding_test.sh
@@ -35,19 +35,15 @@ suite() {
}
testDotGithubFolder() {
- githubFolderFound=0
- if [ -e ".github/" ]; then
- githubFolderFound=1
+ if [ ! -e ".github/" ]; then
+ assertEquals ".github file does not exist" 1 0 # error
fi
- assertEquals 1 $githubFolderFound
}
testDotGithubISSUE_TEMPLATE() {
- folderFound=0
- if [ -e ".github/ISSUE_TEMPLATE" ]; then
- folderFound=1
+ if [ ! -e ".github/ISSUE_TEMPLATE" ]; then
+ assertEquals ".github/ISSUE_TEMPLATE was not found" 1 0 # error
fi
- assertEquals 1 $folderFound
}
testDotGithubISSUE_TEMPLATEFiles() {
@@ -67,6 +63,7 @@ testDotGithubFiles() {
".github/CODEOWNERS" ".github/CODE_OF_CONDUCT.md" ".github/CONTRIBUTING.md" ".github/ISSUE_TEMPLATE.md"
".github/pull_request_template.md" ".github/SECURITY.md" ".github/SUPPORT.md" ".github/issue_label_bot.yaml"
".github/config.yml" ".github/FUNDING.yml" ".github/settings.yml")
+
for file in "${files[@]}"; do
assertTrue " $file does not exist" "[ -e \"$file\" ]"
done
@@ -77,7 +74,7 @@ testTestRemovedFiles() {
if [ -e "tests/" ] && [ -e "tests/shunit2" ] && [ -e "tests/TESTS_RUNNER.sh" ]; then
filesFound=1
fi
- assertNotEquals 1 $filesFound
+ assertNotEquals " tests folder of some files were found" 1 $filesFound
}
testGlobalFiles() {
@@ -85,7 +82,7 @@ testGlobalFiles() {
if [ -e ".gitignore" ] && [ -e "CHANGELOG.md" ] && [ -e "README.md" ]; then
filesFound=1
fi
- assertEquals 1 $filesFound
+ assertEquals " gitignore, changelog or readme were not found" 1 $filesFound
}
testRemovedFiles() {
@@ -93,7 +90,7 @@ testRemovedFiles() {
if [ -e "LICENSE" ] && [ -e "bin" ] && [ -e "bin/FUNCTION_HELPERS.sh" ]; then
filesFound=1
fi
- assertNotEquals 1 $filesFound
+ assertNotEquals " LICENSE or the bin directory were found" 1 $filesFound
}
# Load and run shUnit2.
From 83c04600d6161da5c9134b152ec81cbc4336fa34 Mon Sep 17 00:00:00 2001
From: Josee9988
Date: Fri, 9 Jul 2021 13:43:47 +0200
Subject: [PATCH 20/20] "refactored and improved the code"
---
tests/custom_data_test.sh | 51 +++++++--------------------------------
1 file changed, 9 insertions(+), 42 deletions(-)
diff --git a/tests/custom_data_test.sh b/tests/custom_data_test.sh
index b7e2edb..7c69650 100755
--- a/tests/custom_data_test.sh
+++ b/tests/custom_data_test.sh
@@ -31,11 +31,10 @@ suite() {
suite_addTest testDotGithubSecurity
suite_addTest testDotGithubCODEOWNERS
suite_addTest testDotGitignore
- suite_addTest testDotChangelog
+ suite_addTest testChangelog
}
testDotGithubISSUE_TEMPLATEAsignees() {
- isTheAssigneeNotFound=0
assigneesWithName="assignees: $USERNAME"
declare -a files=(
".github/ISSUE_TEMPLATE/1-bug-report.md" ".github/ISSUE_TEMPLATE/2-failing-test.md"
@@ -44,76 +43,44 @@ testDotGithubISSUE_TEMPLATEAsignees() {
".github/ISSUE_TEMPLATE/7-question-support.md")
for file in "${files[@]}"; do
- if ! grep -q "$assigneesWithName" "$file"; then
- isTheAssigneeNotFound=1
- fi
+ assertTrue " assignee was not found for file $file" "grep -q \"$assigneesWithName\" \"$file\""
done
- assertNotEquals 1 $isTheAssigneeNotFound
}
-
testDotGithubISSUE_TEMPLATEConfig() {
- isTheAssigneeNotFound=0
mailInConfig="url: mailto:$MAIL"
-
- if grep -q "$mailInConfig" ".github/ISSUE_TEMPLATE/config.yml"; then
- isTheAssigneeNotFound=1
- fi
- assertEquals 1 $isTheAssigneeNotFound
+ assertTrue "The mail $MAIL was not found in .github/ISSUE_TEMPLATE/config.yml" "grep -q \"$mailInConfig\" \".github/ISSUE_TEMPLATE/config.yml\""
}
testDotGithubConfig() {
- isNewIssueWelcomeCommentFound=0
newIssueWelcomeComment="Thanks for opening your first issue in $USERNAME/$NAME! Be sure to"
-
- if grep -q "$newIssueWelcomeComment" ".github/config.yml"; then
- isNewIssueWelcomeCommentFound=1
- fi
- assertEquals 1 $isNewIssueWelcomeCommentFound
+ assertTrue "The $USERNAME/$NAME was not found in " "grep -q \"$newIssueWelcomeComment\" \".github/config.yml\""
}
testDotGithubSecurity() {
- isSecurityDataFound=0
securityData1="(mailto:$MAIL)"
securityData2="[$MAIL]"
securityData3="he project's team and community take security issues"
-
- if grep -q "$securityData1" ".github/SECURITY.md" && grep -q "$securityData2" ".github/SECURITY.md" && grep -q "$securityData3" ".github/SECURITY.md"; then
- isSecurityDataFound=1
- fi
- assertEquals 1 $isSecurityDataFound
+ assertTrue "The mail $MAIL was not found in .github/SECURITY.md" "grep -q \"$securityData1\" \".github/SECURITY.md\" && grep -q \"$securityData2\" \".github/SECURITY.md\" && grep -q \"$securityData3\" \".github/SECURITY.md\""
}
testDotGithubCODEOWNERS() {
- isCodeownersDataFound=0
usernameData="$USERNAME"
-
- if grep -q "$usernameData" ".github/CODEOWNERS"; then
- isCodeownersDataFound=1
- fi
- assertEquals 1 $isCodeownersDataFound
+ assertTrue "Could not find the username $USERNAME in the file .github/CODEOWNERS" "grep -q \"$usernameData\" \".github/CODEOWNERS\""
}
testDotGitignore() {
- isGitignoreDataFound=0
gitignoreData1="###> $USERNAME/$NAME ###"
gitignoreData2="###< $USERNAME/$NAME ###"
- if grep -q "$gitignoreData1" ".gitignore" && grep -q "$gitignoreData2" ".gitignore"; then
- isGitignoreDataFound=1
- fi
- assertEquals 1 $isGitignoreDataFound
+ assertTrue "Could not find the username $USERNAME and the name $NAME in the .gitignore file" "grep -q \"$gitignoreData1\" \".gitignore\" && grep -q \"$gitignoreData2\" \".gitignore\""
}
-testDotChangelog() {
- isChangelogDataFound=0
+testChangelog() {
changelogData1="All notable changes to the"
changelogData2="**$NAME**"
changelogData3="$TYPE will be documented in this file."
- if grep -q "$changelogData1" "CHANGELOG.md" && grep -q "$changelogData2" "CHANGELOG.md" && grep -q "$changelogData3" "CHANGELOG.md"; then
- isChangelogDataFound=1
- fi
- assertEquals 1 $isChangelogDataFound
+ assertTrue "Could not find the name $NAME or the type $TYPE in the CHANGELOG.md file" "grep -q \"$changelogData1\" \"CHANGELOG.md\" && grep -q \"$changelogData2\" \"CHANGELOG.md\" && grep -q \"$changelogData3\" \"CHANGELOG.md\""
}
# Load and run shUnit2.