mirror of
https://github.com/rlespinasse/slugify-value.git
synced 2026-05-17 18:25:47 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e299e5b7e9 | ||
|
|
a5345bd066 | ||
|
|
fbfaeca16e | ||
|
|
017eec94a5 |
18
.github/workflows/slugify.yaml
vendored
18
.github/workflows/slugify.yaml
vendored
@@ -1,8 +1,12 @@
|
||||
name: Slugify testing
|
||||
on: [push]
|
||||
jobs:
|
||||
slugify:
|
||||
runs-on: ubuntu-latest
|
||||
slugify-on-os:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, ubuntu-latest, windows-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
@@ -21,6 +25,7 @@ jobs:
|
||||
[[ "${{ env.KEY_TEST_SLUG_CS }}" == "Key_Test.values" ]]
|
||||
[[ "${{ env.KEY_TEST_SLUG_URL }}" == "key_test-values" ]]
|
||||
[[ "${{ env.KEY_TEST_SLUG_URL_CS }}" == "Key_Test-values" ]]
|
||||
shell: bash
|
||||
|
||||
# Test 2
|
||||
- name: Slugify key/value
|
||||
@@ -35,7 +40,16 @@ jobs:
|
||||
[[ "${{ env.KEY_VALUE_TEST_SLUG_CS }}" == "feat-Some-Changes_to.be" ]]
|
||||
[[ "${{ env.KEY_VALUE_TEST_SLUG_URL }}" == "feat-some-changes_to-be" ]]
|
||||
[[ "${{ env.KEY_VALUE_TEST_SLUG_URL_CS }}" == "feat-Some-Changes_to-be" ]]
|
||||
shell: bash
|
||||
|
||||
slugify-release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: slugify-on-os
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Release
|
||||
- name: Release this GitHub Action
|
||||
uses: rlespinasse/release-that@v1.x
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name: "Slugify"
|
||||
name: "Slugify Value"
|
||||
description: "Github Action to slugify a value"
|
||||
author: "Romain Lespinasse"
|
||||
inputs:
|
||||
@@ -14,7 +14,7 @@ branding:
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- run: ${{ github.action_path }}/slugify.sh
|
||||
- run: $GITHUB_ACTION_PATH/slugify.sh
|
||||
shell: bash
|
||||
env:
|
||||
INPUT_KEY: ${{ inputs.key }}
|
||||
|
||||
18
slugify.sh
18
slugify.sh
@@ -1,18 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
KEY=${INPUT_KEY^^}
|
||||
CS_VALUE=${INPUT_VALUE:-${!INPUT_KEY}}
|
||||
VALUE=${CS_VALUE,,}
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# On MacOS,
|
||||
# bash don't support substitution, so we use 'tr'
|
||||
KEY=$(echo "$INPUT_KEY" | tr '[:lower:]' '[:upper:]')
|
||||
CS_VALUE=${INPUT_VALUE:-${!INPUT_KEY}}
|
||||
VALUE=$(echo "$CS_VALUE" | tr '[:upper:]' '[:lower:]')
|
||||
else
|
||||
KEY=${INPUT_KEY^^}
|
||||
CS_VALUE=${INPUT_VALUE:-${!INPUT_KEY}}
|
||||
VALUE=${CS_VALUE,,}
|
||||
fi
|
||||
|
||||
slug() {
|
||||
echo "$1" |
|
||||
sed -r 's#refs/[^\/]*/##;s/[^a-zA-Z0-9._]+/-/g;s/^-*//;s/-*$//' |
|
||||
sed -E 's#refs/[^\/]*/##;s/[^a-zA-Z0-9._]+/-/g;s/-+/-/g;s/^-*//;s/-*$//' |
|
||||
cut -c1-63
|
||||
}
|
||||
|
||||
slug_url() {
|
||||
echo "$1" |
|
||||
sed -r 's#refs/[^\/]*/##;s/[^a-zA-Z0-9_]+/-/g;s/^-//;s/-$//' |
|
||||
sed -E 's#refs/[^\/]*/##;s/[^a-zA-Z0-9_]+/-/g;s/-+/-/g;s/^-*//;s/-*$//' |
|
||||
cut -c1-63
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user