mirror of
https://github.com/go-task/task.git
synced 2026-06-11 09:51:50 +00:00
feat: add joinEnv and joinUrl string functions and 2 new system vars (#2408)
This commit is contained in:
@@ -249,6 +249,32 @@ tasks:
|
||||
- echo "Working {{.USER_WORKING_DIR}}"
|
||||
```
|
||||
|
||||
#### `FILE_PATH_SEPARATOR`
|
||||
|
||||
- **Type**: `string`
|
||||
- **Description**: OS-specific path separator: Windows = `\`, others = `/`
|
||||
|
||||
::: info
|
||||
|
||||
> See `joinPath` in [Path Functions](#path-functions) for joining filesystem paths for use with
|
||||
> file system operations.
|
||||
|
||||
:::
|
||||
|
||||
### Environment Variables
|
||||
|
||||
#### `PATH_LIST_SEPARATOR`
|
||||
|
||||
- **Type**: `string`
|
||||
- **Description**: OS-specific path separator for environment variables: Windows = `;`, others = `:`
|
||||
|
||||
::: info
|
||||
|
||||
> See `joinEnv` in [Environment Variable Functions](#environment-variable-functions) for joining
|
||||
> paths for use in environment variables.
|
||||
|
||||
:::
|
||||
|
||||
### Status
|
||||
|
||||
#### `CHECKSUM`
|
||||
@@ -597,9 +623,9 @@ tasks:
|
||||
tasks:
|
||||
platform:
|
||||
cmds:
|
||||
- echo "OS {{OS}}" # linux, darwin, windows, etc.
|
||||
- echo "Architecture {{ARCH}}" # amd64, arm64, etc.
|
||||
- echo "CPU cores {{numCPU}}" # Number of CPU cores
|
||||
- echo "OS {{OS}}" # linux, darwin, windows, etc.
|
||||
- echo "Architecture {{ARCH}}" # amd64, arm64, etc.
|
||||
- echo "CPU cores {{numCPU}}" # Number of CPU cores
|
||||
- echo "Building for {{OS}}/{{ARCH}}"
|
||||
```
|
||||
|
||||
@@ -613,11 +639,52 @@ tasks:
|
||||
OUTPUT_DIR: 'dist'
|
||||
BINARY_NAME: 'myapp'
|
||||
cmds:
|
||||
- echo "{{.WIN_PATH | toSlash}}" # Convert to forward slashes
|
||||
- echo "{{.WIN_PATH | fromSlash}}" # Convert to OS-specific slashes
|
||||
- echo "{{joinPath .OUTPUT_DIR .BINARY_NAME}}" # Join path elements
|
||||
- echo "Relative {{relPath .ROOT_DIR .TASKFILE_DIR}}" # Get relative path
|
||||
- echo '{{absPath "../sibling"}}' # Resolve to an absolute path
|
||||
- echo "{{.WIN_PATH | toSlash}}" # Convert to forward slashes
|
||||
- echo "{{.WIN_PATH | fromSlash}}" # Convert to OS-specific slashes
|
||||
- echo "{{joinPath .OUTPUT_DIR .BINARY_NAME}}" # Join path elements
|
||||
- echo "Relative {{relPath .ROOT_DIR .TASKFILE_DIR}}" # Get relative path
|
||||
- echo '{{absPath "../sibling"}}' # Resolve to an absolute path
|
||||
```
|
||||
|
||||
#### Environment Variable Functions
|
||||
|
||||
```yaml
|
||||
tasks:
|
||||
paths:
|
||||
vars:
|
||||
WIN_PATH1: 'C:\Users\Person\bin'
|
||||
WIN_PATH2: 'C:\Shared\bin'
|
||||
cmds:
|
||||
# Join paths for Windows ENV vars:
|
||||
# C:\Users\Person\bin;C:\Shared\bin
|
||||
- echo "{{joinEnv .WIN_PATH1 .WIN_PATH2}}"
|
||||
```
|
||||
|
||||
```yaml
|
||||
tasks:
|
||||
paths:
|
||||
vars:
|
||||
POSIX_PATH1: '/users/person/.local/bin'
|
||||
POSIX_PATH2: '/usr/bin'
|
||||
cmds:
|
||||
# Join paths for POSIX ENV vars:
|
||||
# /users/person/.local/bin:/usr/bin
|
||||
- echo "{{joinEnv .POSIX_PATH1 .POSIX_PATH2}}"
|
||||
```
|
||||
|
||||
#### URLs
|
||||
|
||||
```yaml
|
||||
tasks:
|
||||
paths:
|
||||
vars:
|
||||
SERVER: 'http://localhost'
|
||||
PATH1: 'path1'
|
||||
PATH2: 'path2'
|
||||
cmds:
|
||||
# Join paths for URL:
|
||||
# http://localhost/path1/path2
|
||||
- echo "{{joinUrl .SERVER .PATH1 .PATH2}}"
|
||||
```
|
||||
|
||||
### Data Structure Functions
|
||||
|
||||
Reference in New Issue
Block a user