0
# Environment Management
1
2
Commands for initializing, setting up, and managing the moon development environment.
3
4
## Capabilities
5
6
### Generate Completions
7
8
Generate shell completions for the moon CLI to enable tab completion.
9
10
```bash { .api }
11
moon completions [--shell <SHELL>]
12
```
13
14
**Options:**
15
- `--shell <SHELL>` - Target shell for completion generation (bash, zsh, fish, powershell, elvish)
16
17
**Usage Examples:**
18
19
```bash
20
# Generate completions for your current shell
21
moon completions
22
23
# Generate completions for a specific shell
24
moon completions --shell zsh
25
26
# Install completions (bash example)
27
moon completions --shell bash > /usr/local/etc/bash_completion.d/moon
28
```
29
30
### Initialize Repository
31
32
Initialize a new moon repository or add moon configuration to an existing repository.
33
34
```bash { .api }
35
moon init [toolchain] [plugin] [--to <PATH>] [--force] [--minimal] [--yes]
36
```
37
38
**Arguments:**
39
- `toolchain` (optional) - Specific toolchain to initialize (e.g., "node", "rust")
40
- `plugin` (optional) - Plugin locator for the toolchain
41
42
**Options:**
43
- `--to <PATH>` - Destination directory to initialize into (default: current directory)
44
- `--force` - Overwrite existing configuration files
45
- `--minimal` - Initialize with minimal configuration and skip prompts
46
- `--yes` - Skip all prompts and use default values
47
48
**Usage Examples:**
49
50
```bash
51
# Initialize moon in current directory
52
moon init
53
54
# Initialize with Node.js toolchain
55
moon init node
56
57
# Initialize in a specific directory
58
moon init --to ./my-project
59
60
# Initialize with minimal configuration
61
moon init --minimal --yes
62
63
# Force overwrite existing configuration
64
moon init --force
65
```
66
67
### Setup Environment
68
69
Install and configure all required tools and dependencies for the workspace.
70
71
```bash { .api }
72
moon setup
73
```
74
75
This command:
76
- Downloads and installs configured tools (Node.js, etc.)
77
- Sets up toolchain dependencies
78
- Initializes workspace configuration
79
- Prepares the environment for development
80
81
**Usage Examples:**
82
83
```bash
84
# Setup the development environment
85
moon setup
86
```
87
88
### Teardown Environment
89
90
Clean up the moon environment by uninstalling tools and removing temporary files.
91
92
```bash { .api }
93
moon teardown
94
```
95
96
This command:
97
- Uninstalls downloaded tools
98
- Removes temporary files and caches
99
- Cleans up toolchain configurations
100
- Resets the workspace to a clean state
101
102
**Usage Examples:**
103
104
```bash
105
# Clean up the moon environment
106
moon teardown
107
```
108
109
## Configuration Files
110
111
Moon initialization creates several configuration files:
112
113
- `.moon/workspace.yml` - Workspace configuration
114
- `.moon/toolchain.yml` - Toolchain and tool configuration
115
- `moon.yml` - Root workspace settings
116
- `.moon/tasks/` - Task configuration directory
117
118
## Integration with Existing Projects
119
120
Moon can be added to existing repositories without disrupting current workflows:
121
122
```bash
123
# Add moon to existing project
124
cd existing-project
125
moon init --minimal
126
127
# Setup tools without changing existing configuration
128
moon setup
129
```