diff options
-rw-r--r-- | .gitattributes | 2 | ||||
-rw-r--r-- | .github/workflows/ci.yml | 17 | ||||
-rw-r--r-- | README.md | 9 | ||||
-rw-r--r-- | src/os.sh | 5 | ||||
-rwxr-xr-x | test/test.sh | 4 |
5 files changed, 30 insertions, 7 deletions
diff --git a/.gitattributes b/.gitattributes index 26a9424..78efe19 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,6 +2,8 @@ *.sh text eol=lf +/links-* text eol=lf + /.github/ export-ignore .gitattributes export-ignore .gitignore export-ignore diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c0cd21..f4954c4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,10 +7,23 @@ on: jobs: test: - runs-on: ubuntu-latest - name: Test + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + runs-on: '${{ matrix.os }}' + name: 'Test / ${{ matrix.os }}' steps: - name: Checkout uses: actions/checkout@v3 + + - name: Install dependencies + run: | + brew install bash coreutils findutils + echo "$(brew --prefix)/opt/coreutils/libexec/gnubin" >> "$GITHUB_PATH" + echo "$(brew --prefix)/opt/findutils/libexec/gnubin" >> "$GITHUB_PATH" + if: runner.os == 'macOS' + # Is it even macOS anymore? It is for me. I really am too lazy to deal + # with ancient utilities that come with the actual macOS. + - name: Test run: ./test/test.sh @@ -32,9 +32,11 @@ Installation * For Arch Linux, use the [AUR package]. * For Ubuntu, use the [PPA]. * Alternatively, just checkout this repository. +* For macOS, see [this section]. [AUR package]: https://aur.archlinux.org/packages/config-links/ [PPA]: https://launchpad.net/~egor-tensin/+archive/ubuntu/config-links +[this section]: #macos Usage ----- @@ -110,6 +112,13 @@ allows) are not supported. A special variable name `CONFIG_LINKS_ROOT` is resolved to the root path, "/". +macOS +----- + +macOS is supported on a basic level. +GNU coreutils and findutils are required, which you can install using Homebrew. +Don't forget to add them to PATH! + License ------- @@ -5,11 +5,8 @@ # Mostly Cygwin-related stuff -os="$( uname -o )" -readonly os - is_cygwin() { - test "$os" == 'Cygwin' + test "$OSTYPE" == 'cygwin' } check_symlinks_enabled_cygwin() { diff --git a/test/test.sh b/test/test.sh index f2abfde..05c5d65 100755 --- a/test/test.sh +++ b/test/test.sh @@ -32,7 +32,9 @@ new_test() { echo ====================================================================== echo "New test: $test_name" - test_root_dir="$( mktemp --directory )" + test_root_dir="$( mktemp -d )" + # mktemp returns /var/..., which is actually in /private/var/... on macOS. + test_root_dir="$( readlink -e -- "$test_root_dir" )" test_src_dir="$test_root_dir/$src_dir_name" test_dest_dir="$test_root_dir/$dest_dir_name" test_alt_dest_dir="$test_root_dir/$alt_dest_dir_name" |