diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..96cb9ae --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +root = true + +[*] +charset = utf-8 +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true +max_line_length = 80 + +[*.md] +trim_trailing_whitespace = false + +[*.{json,yml}] +indent_size = 2 diff --git a/CHANGELOG.md b/CHANGELOG.md index f94caba..462819d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,82 +1,99 @@ -# Project Change-Log +# Project Changelog -Below is a detailed change-log, along with specific tasks completed, for each +Below is a detailed changelog, along with specific tasks completed, for each version released to date. +## :rocket: Version 1.2.2 (10/07/2020) + +- [:+1: #enhancement](#enhancement) + + Upgraded all submodules. + + Cleaned up code in `folder_and_git.sh`. + + Updated `website_folder_ownership.sh` and bats test. + + Updated BATS test scripts. + + Included Testing section on README. +- [:bug: #bugfix](#bugfix) + + Fixes in `upgrade_software.sh`: + * Fixed issue where git wasn't pulling from origin. + * Added `--init` to submodule update. + + Bumped version number in scripts. + ## :rocket: Version 1.2.1 (03/06/2020) - [:+1: #enhancement](#enhancement) - - Remove macOS apache from install. - - Changed apache restart to use brew only. - - Updated Adminer and Git submodules. + - Remove macOS apache from install. + - Changed apache restart to use brew only. + - Updated Adminer and Git submodules. - [:bug: #bugfix](#bugfix) - - Fixed file permissions. - - Fixed minor issue with text wrapping. + - Fixed file permissions. + - Fixed minor issue with text wrapping. ## :rocket: Version 1.2.0 (03/06/2020) - [:+1: #enhancement](#enhancement) - - Renamed main scripts for better compatibility. - - Updated Homebrew installer. - - Upgraded Travis config. - - Updated shellcheck test with latest OS. - - Improved group variable with `id -gn`. - - Updated bats tests. - - Upgraded packages to current versions. - - Standardised code in shell scripts. - - Updated README with new instructions. + - Renamed main scripts for better compatibility. + - Updated Homebrew installer. + - Upgraded Travis config. + - Updated shellcheck test with latest OS. + - Improved group variable with `id -gn`. + - Updated bats tests. + - Upgraded packages to current versions. + - Standardised code in shell scripts. + - Updated README with new instructions. - [:new: #new](#new) - - Added GitHub Sponsors. + - Added GitHub Sponsors. - [:bug: #bugfix](#bugfix) - - Fixed git submodule upgrade. - - Fixed issue with TOP and BOTTOM in scripts. - - Fixed issue with travis shellcheck error 127. - - Fixed path to globals and colour_palette. - - Changed permissions on files. - - Removed Code and Sublime project files. + - Fixed git submodule upgrade. + - Fixed issue with TOP and BOTTOM in scripts. + - Fixed issue with travis shellcheck error 127. + - Fixed path to globals and colour_palette. + - Changed permissions on files. + - Removed Code and Sublime project files. ## Version 1.1.0 (21/01/2019) - [#enhancement](#enhancement) - - Install wget via brew and stop macOS Apache before trying to start Apache 2. + - Install wget via brew and stop macOS Apache before trying to start + Apache 2. - [#new](#new) - - New upgrade script for the project. - - New installation instructions added (#14) + - New upgrade script for the project. + - New installation instructions added (#14) - [#bugfix](#bugfix) - - Fixed the recursive loop in copying files over in `upgrade_software.sh`. + - Fixed the recursive loop in copying files over in `upgrade_software.sh`. ## Version 1.0.3 (21/01/2019) - [#enhancement](#enhancement) - - Changed output messages to use new `printf` format instead of `echo`. - - Updated `globals.sh` file with `php 7.3` path as this has changed in brew from `7.2`. - - Rename `add_domains` test script to `add_domain`. - - Updated `.travis.yml` build file with correct paths. - - Updated test scripts in `\tests\` folder with latest changes. + - Changed output messages to use new `printf` format instead of `echo`. + - Updated `globals.sh` file with `php 7.3` path as this has changed in + brew from `7.2`. + - Rename `add_domains` test script to `add_domain`. + - Updated `.travis.yml` build file with correct paths. + - Updated test scripts in `\tests\` folder with latest changes. ## Version 1.0.2 (18/11/2018) - [#new](#new) - - New `website_folder_ownership.sh` script to set permissions on the newly created domain folder. - - New `bats` test for `website_folder_ownership.sh` script file. + - New `website_folder_ownership.sh` script to set permissions on the newly + created domain folder. + - New `bats` test for `website_folder_ownership.sh` script file. - [#enhancement](#enhancement) - - Renamed `folder_permissions.sh` to `folder_ownership.sh`. - - Updated `bats` test for `folder_permissions`. - - Renamed the `folder_permissions` in the `install` script. + - Renamed `folder_permissions.sh` to `folder_ownership.sh`. + - Updated `bats` test for `folder_permissions`. + - Renamed the `folder_permissions` in the `install` script. ## Version 1.0.1 (07/07/2018) - [#new](#new) - - New `docs` folder for the documentation. + - New `docs` folder for the documentation. - [#enhancement](#enhancement) - - Renamed `add_domains` to `add_domain`. - - `apache_config.sh` now creates symlink to PHP configuration folder. - - Changed the message output for the following: - + `setup_ssl.sh` - + `apache_config.sh` + - Renamed `add_domains` to `add_domain`. + - `apache_config.sh` now creates symlink to PHP configuration folder. + - Changed the message output for the following: + + `setup_ssl.sh` + + `apache_config.sh` - [#bugfix](#bugfix) - - Updated version numbers in script files. - - Removed `coveralls` code coverage as it doesn't work with bash. + - Updated version numbers in script files. + - Removed `coveralls` code coverage as it doesn't work with bash. ## Version 1.0.0 (03/07/2018) @@ -84,163 +101,169 @@ This is the first production release since the first commit almost two months ago. The following changes enable this major branch release. - [#new](#new) - - Included `./websites/localhost/` folder which contains a template for - bootstrapping your development projects. This folder includes: - - HTML5 Boilerplate version 6.1.0 - - Twitter Bootstrap version 3.3.7 - - jQuery version 1.11.2 - - Modernizr version 2.8.3 - - Symlink to `php` configuration folder to enable editing of `php.ini` file. - - Added `restart_apache.sh` for inclusion in `add_domains` script. + - Included `./websites/localhost/` folder which contains a template for + bootstrapping your development projects. This folder includes: + - HTML5 Boilerplate version 6.1.0 + - Twitter Bootstrap version 3.3.7 + - jQuery version 1.11.2 + - Modernizr version 2.8.3 + - Symlink to `php` configuration folder to enable editing of `php.ini` + file. + - Added `restart_apache.sh` for inclusion in `add_domains` script. - [#enhancement](#enhancement) - - `apache_config.sh` script now installs the `localhost` website. - - Changed output message to new format in `folder_permissions.sh`. + - `apache_config.sh` script now installs the `localhost` website. + - Changed output message to new format in `folder_permissions.sh`. - [#bugfix](#bugfix) - - Set file permissions correctly. - - Added a delete method for `keychain_certificate.sh` that removes the old - certificate before adding a new one when running `add_domains`. + - Set file permissions correctly. + - Added a delete method for `keychain_certificate.sh` that removes the old + certificate before adding a new one when running `add_domains`. ## Version 0.6.2 (02/07/2018) - [#new](#new) - - File permission changes to files from machine migration. + - File permission changes to files from machine migration. - [#enhancement](#enhancement) - - Changed the output messages. + - Changed the output messages. ## Version 0.6.1 (12/06/2018) - [#new](#new) - - In addition to `BATS` and Travis, `shellcheck` is also checking the source. + - In addition to `BATS` and Travis, `shellcheck` is also checking the + source. - [#enhancement](#enhancement) - - Added `shellcheck` command to `.travis.yml` to run tests against the build. - - Updated `folder_ownership()` method description in `folder_permissions.sh`. + - Added `shellcheck` command to `.travis.yml` to run tests against the + build. + - Updated `folder_ownership()` method description in + `folder_permissions.sh`. - [#bugfix](#bugfix) - - Applied all the bug fix recommendation from `shellcheck` to all scripts. - - Fixed bug whereby the `.git` templates weren't being copied correctly. + - Applied all the bug fix recommendation from `shellcheck` to all scripts. + - Fixed bug whereby the `.git` templates weren't being copied correctly. ## Version 0.6.0 (12/06/2018) - [#new](#new) - - Entirely new test suite using [BATS][bats]. Each method is now tested using - individual `.bats` files contained in `./tests/bats/`. To run the entire - test suite issue the following command: - `$ bats tests/bats/`. This assumes you've [installed BATS][install-bats]. - - Added [Coveralls][coveralls] support but this is limited as they don't - support `bash` yet. Go figure. + - Entirely new test suite using [BATS][bats]. Each method is now tested + using individual `.bats` files contained in `./tests/bats/`. To run the + entire test suite issue the following command: `$ bats tests/bats/`. + This assumes you've [installed BATS][install-bats]. + - Added [Coveralls][coveralls] support but this is limited as they don't + support `bash` yet. Go figure. - [#enhancement](#enhancement) - - Changed the success output from `printf` to `echo -e` as `printf` doesn't - work with `bats` properly. - - Removed `dist/websites` symlink as this gets generated at install time. + - Changed the success output from `printf` to `echo -e` as `printf` doesn't + work with `bats` properly. + - Removed `dist/websites` symlink as this gets generated at install time. - [#bugfix](#bugfix) - - Fixed up an array of bugs in individual scripts as debugged with `bats`. - The list of changes is exhaustive so check the diff changes to the - `scripts` folder for more detail. - - Removed the `brew httpd` startup script as it's not needed. - - Removed `scripts/brew_install.sh` as it has been replaced with the main - `./brew` install script. - - Removed the Travis test for `xcode6.4` in `.travis.yml` as this project - doesn't build when running against `macOS 10.9/10.10`. It appears this - is only supported on `macOS 10.11` and later. + - Fixed up an array of bugs in individual scripts as debugged with `bats`. + The list of changes is exhaustive so check the diff changes to the + `scripts` folder for more detail. + - Removed the `brew httpd` startup script as it's not needed. + - Removed `scripts/brew_install.sh` as it has been replaced with the main + `./brew` install script. + - Removed the Travis test for `xcode6.4` in `.travis.yml` as this project + doesn't build when running against `macOS 10.9/10.10`. It appears this + is only supported on `macOS 10.11` and later. ## Version 0.5.2 (09/06/2018) - [#bugfix](#bugfix) - - Fixed output of echo message in: - - `add_domains` - - `apache_config.sh` - - Fixed the extraction directory for phpMyAdmin in `thirdparty_install.sh`. - - Fixed up the `git commit` not happening in correct folder. + - Fixed output of echo message in: + - `add_domains` + - `apache_config.sh` + - Fixed the extraction directory for phpMyAdmin in `thirdparty_install.sh`. + - Fixed up the `git commit` not happening in correct folder. - [#enhancement](#enhancement) - - `brew_startup` added to `brew` script. - - Added older versions of `macOS` for Travis to build against. + - `brew_startup` added to `brew` script. + - Added older versions of `macOS` for Travis to build against. ## Version 0.5.1 (09/06/2018) - [#enhancement](#enhancement) - - Included `thirdparty_install.sh` in `install`. - - `thirdparty_install.sh` changes: - - Removed the `git clone` commands for all as they are now submodules. - - Improved `cp` command in `git_setup.sh` + - Included `thirdparty_install.sh` in `install`. + - `thirdparty_install.sh` changes: + - Removed the `git clone` commands for all as they are now submodules. + - Improved `cp` command in `git_setup.sh` - [#bugfix](#bugfix) - - Fixed output of echo message in: - - `install` - - `apache_config.sh` - - Set variables for hard coded paths in: - - `thirdparty_install.sh` - - `openssl_command.sh` - - `hosts_file.sh` - - Removed creation of `.gitignore` file as it overwrites the one from the - .github templates. - - Removed `''` preventing the output of the variable for `openssl.conf`. - - Removed the moving of folders in `git_setup.sh` as it isn't needed. + - Fixed output of echo message in: + - `install` + - `apache_config.sh` + - Set variables for hard coded paths in: + - `thirdparty_install.sh` + - `openssl_command.sh` + - `hosts_file.sh` + - Removed creation of `.gitignore` file as it overwrites the one from the + .github templates. + - Removed `''` preventing the output of the variable for `openssl.conf`. + - Removed the moving of folders in `git_setup.sh` as it isn't needed. ## Version 0.5.0 (09/06/2018) - [#new](#new) - - New `.travis.yml` file. Testing CI to ensure it all builds as expected. - - New `brew` primary script. - - New test scripts contained in `./tests/` folder: - - `install`: no changes to original. - - `brew`: defaults to `no` so it will install Homebrew. - - `add_domains`: manually set `domain="www.test.localhost"`. - - Symbolic links in `./tests/` to `./src/`, `./dist/` and - `./scripts/` folders. + - New `.travis.yml` file. Testing CI to ensure it all builds as expected. + - New `brew` primary script. + - New test scripts contained in `./tests/` folder: + - `install`: no changes to original. + - `brew`: defaults to `no` so it will install Homebrew. + - `add_domains`: manually set `domain="www.test.localhost"`. + - Symbolic links in `./tests/` to `./src/`, `./dist/` and + `./scripts/` folders. - [#enhancement](#enhancement) - - Removed generation of `pk12` key for Client Certificate in `setup_ssl.sh`. + - Removed generation of `pk12` key for Client Certificate in + `setup_ssl.sh`. - [#bugfix](#bugfix) - - Fixed bug in `setup_ssl.sh` where it relies on `sudo`. - - Moved `brew` install out of `install` script as it can't run in `sudo` + - Fixed bug in `setup_ssl.sh` where it relies on `sudo`. + - Moved `brew` install out of `install` script as it can't run in `sudo` ## Version 0.4.1 (30/05/2018) - [#new](#new) - - Added various Apache config files. + - Added various Apache config files. ## Version 0.4.0 (29/05/2018) - [#new](#new) - - New `install` script to setup up the project initially. - - Added the followin new scripts: - - `colour_palette.sh` - - `enter_domain.sh` - - `folder_and_git.sh` - - `folder_permissions.sh` - - `git_setup.sh` - - `globals.sh` - - `hosts_domain.sh` - - `keychain_certificate.sh` - - `openssl_command.sh` - - `openssl_config.sh` - - New `phpmyadmin_install` installation method in the `thirdparty_install.sh` - script. - - New `src/archives/` folder to download `phpmyadmin`. - - Added a new `folder_permissions` method to `add_domains` script. - - New `addto_keychain` function in `setup_ssl.sh` script. - - New `keychain_certificate` function in `add_domains` script. - - New `paths.sh` script that sets global file paths. + - New `install` script to setup up the project initially. + - Added the followin new scripts: + - `colour_palette.sh` + - `enter_domain.sh` + - `folder_and_git.sh` + - `folder_permissions.sh` + - `git_setup.sh` + - `globals.sh` + - `hosts_domain.sh` + - `keychain_certificate.sh` + - `openssl_command.sh` + - `openssl_config.sh` + - New `phpmyadmin_install` installation method in the + `thirdparty_install.sh` script. + - New `src/archives/` folder to download `phpmyadmin`. + - Added a new `folder_permissions` method to `add_domains` script. + - New `addto_keychain` function in `setup_ssl.sh` script. + - New `keychain_certificate` function in `add_domains` script. + - New `paths.sh` script that sets global file paths. - [#enhancement](#enhancement) - - Updated `README.md`. - - Changed install path of SSL certificates to `/usr/local/var/www/ssl`. - - Updated `setup_localhost`: - - To create SSL certs in `/usr/local/var/www/ssl`. - - Created proper methods for the script. - - Added messages echoed to the Terminal for each step. - - Renamed and moved `setup_localhost` to `scripts/setup_ssl.sh` - - Updated `httpd-vhosts.conf` to reflect changes to SSL certificates. + - Updated `README.md`. + - Changed install path of SSL certificates to `/usr/local/var/www/ssl`. + - Updated `setup_localhost`: + - To create SSL certs in `/usr/local/var/www/ssl`. + - Created proper methods for the script. + - Added messages echoed to the Terminal for each step. + - Renamed and moved `setup_localhost` to `scripts/setup_ssl.sh` + - Updated `httpd-vhosts.conf` to reflect changes to SSL certificates. - [#bugfix](#bugfix) - - Fixed up `CHANGELOG.md`. - - Added `.sh` extensions to all scripts in the `/scripts/` folder to comply - with code standards. - - Added missing comments for methods contained in the - `scripts/thirdparty_install.sh` script. + - Fixed up `CHANGELOG.md`. + - Added `.sh` extensions to all scripts in the `/scripts/` folder to comply + with code standards. + - Added missing comments for methods contained in the + `scripts/thirdparty_install.sh` script. ## version-0.3.0 (21/05/2018) - Added new `apache_config` script. - Fixed all scripts with new updated paths. - Fixed README conflict. -- Restructured entire project. Now have `src` and `dist` folders for everything. +- Restructured entire project. Now have `src` and `dist` folders for + everything. - `httpd.conf` changes. - Merge pull request #13 from waffle-iron/master - add waffle.io badge @@ -249,69 +272,69 @@ ago. The following changes enable this major branch release. ## version-0.2.2 (13/05/2018) - [#new](#new) - - Added Apache `*.conf` files to `/httpd/conf/`. - - Added Apache custom `.conf` files to `/httpd/extra/`. These files are - ignored and need to be created at installation time. + - Added Apache `*.conf` files to `/httpd/conf/`. + - Added Apache custom `.conf` files to `/httpd/extra/`. These files are + ignored and need to be created at installation time. ## version-0.2.1 (13/05/2018) - [#bugfix](#bugfix) - - Made `hosts_file` executable. - - Removed `adminer/` and `httpd/error-pages/` from `git` and added them to - the `.gitignore` file. + - Made `hosts_file` executable. + - Removed `adminer/` and `httpd/error-pages/` from `git` and added them to + the `.gitignore` file. ## version-0.2.0 (13/05/2018) - [#new](#new) - - Added `/brew/` folder with the Apache start-up script. - - New `git` templates. - - Added `httpd/` folder with Apache `.conf` files. - - New `src/` folder with scripts now for: - - `brew_install` - Homebrew installation script. - - `thirdparty_install` - Uses git to clone the Adminer project and - the Apache Error Pages project as sub-modules. - - `hosts_file` - Backs up and creates symlink with hosts file. - - Added a new `upgrade_software` script which upgrades the core as well as - sub-modules linked to the project. Closes #11. + - Added `/brew/` folder with the Apache start-up script. + - New `git` templates. + - Added `httpd/` folder with Apache `.conf` files. + - New `src/` folder with scripts now for: + - `brew_install` - Homebrew installation script. + - `thirdparty_install` - Uses git to clone the Adminer project and + the Apache Error Pages project as sub-modules. + - `hosts_file` - Backs up and creates symlink with hosts file. + - Added a new `upgrade_software` script which upgrades the core as well as + sub-modules linked to the project. Closes #11. - [#enhancement](#enhancement) - - New `CHANGELOG.md` for inclusion now with the `git` set-up. Closes [#9]. + - New `CHANGELOG.md` for inclusion now with the `git` set-up. Closes [#9]. - [#bugfix](#bugfix) - - Replaced old `/.github/` folder with the more current ## version from - `@justinhartman/.github` as they were wrong. Closes #12. - - Changed the template for `CHANGELOG.md` as it didn't have the `${domain}` - set to display the project name in the file. - - Fixed the word-wrap on the License messages contained in each file to - ensure they don't go longer than 80 characters. - - Fixed the wrapping of the output messages on running parts of the script. + - Replaced old `/.github/` folder with the more current ## version from + `@justinhartman/.github` as they were wrong. Closes #12. + - Changed the template for `CHANGELOG.md` as it didn't have the `${domain}` + set to display the project name in the file. + - Fixed the word-wrap on the License messages contained in each file to + ensure they don't go longer than 80 characters. + - Fixed the wrapping of the output messages on running parts of the script. ## version-0.1.2 (10/05/2018) - [#new](#new) - - Symbolic link to `/adminer/`. See issue #6 for more details on how it - will be integrated into the first release candidate. - - Added new template files for issue #8: - - ISSUE_TEMPLATE.md - - CONTRIBUTING.md - - PULL_REQUEST_TEMPLATE.md + - Symbolic link to `/adminer/`. See issue #6 for more details on how it + will be integrated into the first release candidate. + - Added new template files for issue #8: + - ISSUE_TEMPLATE.md + - CONTRIBUTING.md + - PULL_REQUEST_TEMPLATE.md - [#enhancement](#enhancement) - - Integrated changes from issue #8 to now create `.github/` directory with - templates when setting up a new domain. - - Added `.github/` directory to this actual project using the new + - Integrated changes from issue #8 to now create `.github/` directory with + templates when setting up a new domain. + - Added `.github/` directory to this actual project using the new templates created in the #enhancement above. - [#bugfix](#bugfix) - - Updated `add_domains` sudo output error message. + - Updated `add_domains` sudo output error message. ## version-0.1.1 (06/05/2018) - [#enhancement](#enhancement) - - [X] Need to comment the code properly; this remains undone - issue #3. - - [X] Make code compliant ( issue #1 ) + - [X] Need to comment the code properly; this remains undone - issue #3. + - [X] Make code compliant ( issue #1 ) ## version-0.1.0 (06/05/2018) - [#new](#new) - - Initial Release + - Initial Release [bats]: https://github.com/sstephenson/bats [install-bats]: https://github.com/sstephenson/bats#installing-bats-from-source -[coveralls]: https://coveralls.io/github/justinhartman/Automated-LAMP-with-trusted-localhost-SSL +[coveralls]: https://coveralls.io/github/justinhartman/lamp-ssl diff --git a/README.md b/README.md index 6779f44..470dbde 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,32 @@ [![Build Status][travis-img]][travis-url] [![Coverage Status][cover-img]][cover-url] -# Fully Automated macOS LAMP Installation using Trusted localhost SSL Certificates - -The Aston Martin of perfect LAMP set-ups and configuration; automating the entire process and -managing your localhost SSL using trusted, self-signed CA certificates. +# Fully Automated macOS LAMP Installation using Trusted localhost SSL certs + +The Aston Martin of perfect LAMP set-ups and configuration. Automating the +entire process and managing your localhost SSL using trusted, self-signed CA +certificates. + + + +- [Installation](#installation) + - [1. Clone Repo](#1-clone-repo) + - [2. Run Initial Homebrew Install](#2-run-initial-homebrew-install) + - [3. Run Install Script](#3-run-install-script) +- [Usage](#usage) +- [Upgrades](#upgrades) +- [Testing](#testing) + - [Coding Standards](#coding-standards) + - [Bash Automated Testing System](#bash-automated-testing-system) + - [Caveats](#caveats) + - [Automated Testing](#automated-testing) +- [License](#license) +- [TODO](#todo) +- [Authors](#authors) +- [Contributions](#contributions) +- [Acknowledgments](#acknowledgments) + + ## Installation @@ -21,7 +43,7 @@ ease of use and for upgrading (below) we recommend sticking to this. $ sudo mkdir -p /usr/local/webserver $ sudo chown $(whoami):admin /usr/local/webserver $ cd /usr/local/webserver -$ git clone https://github.com/justinhartman/Automated-LAMP-with-trusted-localhost-SSL.git . +$ git clone https://github.com/justinhartman/lamp-ssl.git . ``` ### 2. Run Initial Homebrew Install @@ -76,6 +98,61 @@ $ cd /usr/local/webserver $ sudo ./lamp-upgrade ``` +## Testing + +Details of the testing available for this project are found below. + +### Coding Standards + +We use the [Google Shell Style Guide][google] as the standard for writing our +code. We use `shellcheck` to ensure our coding standards are adhered to. + +To run `shellcheck` tests locally, execute the following command. + +```bash +$ shellcheck -xa -e SC2154 tests/brew tests/install tests/lamp-add \ + tests/lamp-upgrade tests/scripts/*.sh +``` + +### Bash Automated Testing System + +The project uses [Bash Automated Testing System][bats] for all automated shell +script testing. + +To run the BATS tests locally, execute the following commands. + +```shell +$ cd ./tests # Tests must be run in this directory. +$ bats -t bats +``` + +**NB:** It is important to note that bats installs the software in macOS's +`$TMPDIR` directory and then performs the tests from there. This is to avoid +running tests on a production environment. If you need to change this path, or +any other variables, please make changes to `./tests/bats/globals.bash` and +`./tests/bats/globals.bats` accordingly. + +#### Caveats + +- BATS does not install `brew`. There would be too many conflicts in trying to + install brew in an isolated environment so the `brew.bats` test always + returns true on the `brew_install()` test. +- The other tests in `brew.bats` will try and install existing versions of the + software on a machine that already has the packages installed. This doesn't + cause any conflicts and shouldn't pose a problem on a machine already + running `brew` packages. +- The domain name for the `enter_domain.bats` test is already preconfigured to + `www.test.localhost`. This part of the script process normally relies on + user input but as we can't use this the domain has been defined upfront. +- The tests in `keychain_certificate.bats` and `setup_ssl.bats` will add + `www.test.localhost` to your macOS keychain. I don't know how to run this + test successfully without running it on the default keychain. + +### Automated Testing + +Remote testing is done using [Travis CI][travis-url]. We test on all macOS +software versions from 10.13 up to and including 10.15. + ## License ```text @@ -97,7 +174,14 @@ along with this program. If not, see . ## TODO -Please [click here][github] for a list of updated TODO items. +Please [click here][github] for a list of updated issues. + +## Authors + +- Justin Hartman - [@justinhartman][author-1] + +Also see the list of [contributors][contribs] who have participated in this +project. ## Contributions @@ -109,8 +193,8 @@ The following projects have been integrated into this one. ## Acknowledgments -Special thanks go out to the following projects who have helped in some way to make this -project a reality. +Special thanks go out to the following who have helped in some way to make +this project a reality. - [Google Shell Style Guide][google] - [@thojansen/client-certificates][certs] @@ -131,7 +215,10 @@ project a reality. [.github]: https://github.com/daniellmb/.github [pem-adminer]: https://github.com/pematon/adminer-custom [google]: https://google.github.io/styleguide/shell.xml +[bats]: https://github.com/sstephenson/bats [travis-img]: https://travis-ci.org/justinhartman/lamp-ssl.svg?branch=master [travis-url]: https://travis-ci.org/justinhartman/lamp-ssl [cover-img]: https://coveralls.io/repos/github/justinhartman/lamp-ssl/badge.svg?branch=master [cover-url]: https://coveralls.io/github/justinhartman/lamp-ssl?branch=master +[contribs]: https://github.com/justinhartman/.github/graphs/master +[author-1]: https://github.com/justinhartman