1
0
mirror of https://github.com/go-task/task.git synced 2025-03-27 21:48:54 +02:00

Merge pull request #957 from go-task/faq

FAQ doc
This commit is contained in:
Pete Davison 2022-12-19 19:58:06 +00:00 committed by GitHub
commit 0a9d76515e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 61 additions and 7 deletions

View File

@ -1,6 +1,6 @@
---
slug: /changelog/
sidebar_position: 6
sidebar_position: 7
---
# Changelog

View File

@ -1,6 +1,6 @@
---
slug: /community/
sidebar_position: 6
sidebar_position: 8
---
# Community

View File

@ -1,6 +1,6 @@
---
slug: /contributing/
sidebar_position: 7
sidebar_position: 9
---
# Contributing

View File

@ -1,6 +1,6 @@
---
slug: /donate/
sidebar_position: 10
sidebar_position: 12
---
# Donate

54
docs/docs/faq.md Normal file
View File

@ -0,0 +1,54 @@
---
slug: /faq/
sidebar_position: 5
---
# FAQ
This page contains a list of frequently asked questions about Task.
- [Why won't my task update my shell environment?](#why-wont-my-task-update-my-shell-environment)
- ['x' builtin command doesn't work on Windows](#x-builtin-command-doesnt-work-on-windows)
## Why won't my task update my shell environment?
This is a limitation of how shells work. Task runs as a subprocess of your
current shell, so it can't change the environment of the shell that started it.
This limitation is shared by other task runners and build tools too.
A common way to work around this is to create a task that will generate output
that can be parsed by your shell. For example, to set an environment variable on
your shell you can write a task like this:
```yaml
my-shell-env:
cmds:
- echo "export FOO=foo"
- echo "export BAR=bar"
```
Now run `eval $(task my-shell-env)` and the variables `$FOO` and `$BAR` will be
available in your shell.
## 'x' builtin command doesn't work on Windows
The default shell on Windows (`cmd` and `powershell`) do not have commands like
`rm` and `cp` available as builtins. This means that these commands won't work.
If you want to make your Taskfile fully cross-platform, you'll need to work
around this limitation using one of the following methods:
- Use the `{{OS}}` function to run an OS-specific script.
- Use something like `{{if eq OS "windows"}}powershell {{end}}<my_cmd>` to
detect windows and run the command in Powershell directly.
- Use a shell on Windows that supports these commands as builtins, such as [Git
Bash] or [WSL].
We want to make improvements to this part of Task and the issues below track
this work. Constructive comments and contributions are very welcome!
- [#197](https://github.com/go-task/task/issues/197)
- [mvdan/sh#93](https://github.com/mvdan/sh/issues/93)
- [mvdan/sh#97](https://github.com/mvdan/sh/issues/97)
[Git Bash]: https://gitforwindows.org/
[WSL]: https://learn.microsoft.com/en-us/windows/wsl/install

View File

@ -1,6 +1,6 @@
---
slug: /releasing/
sidebar_position: 8
sidebar_position: 10
---
# Releasing

View File

@ -1,6 +1,6 @@
---
slug: /styleguide/
sidebar_position: 5
sidebar_position: 6
---
# Styleguide

View File

@ -1,6 +1,6 @@
---
slug: /taskfile-versions/
sidebar_position: 9
sidebar_position: 11
---
# Taskfile Versions