Skip to content

Commit fd4e5dc

Browse files
committed
Complete rename: STRUCT → StructKit, struct commands → structkit
- Replace all 'STRUCT' text references with 'StructKit' in documentation - Update CLI command examples from 'struct' to 'structkit' - Rename environment variables: - STRUCT_LOG_LEVEL → STRUCTKIT_LOG_LEVEL - STRUCT_HTTP_TIMEOUT → STRUCTKIT_HTTP_TIMEOUT - STRUCT_HTTP_RETRIES → STRUCTKIT_HTTP_RETRIES - STRUCT_DENY_NETWORK → STRUCTKIT_DENY_NETWORK - STRUCT_STRUCTURES_PATH → STRUCTKIT_STRUCTURES_PATH - Rename constants: BASIC_STRUCT_YAML → BASIC_STRUCTKIT_YAML - Update all documentation files, README, and code comments - All 114 tests passing
1 parent 061bc34 commit fd4e5dc

41 files changed

Lines changed: 332 additions & 324 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.coveragerc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[run]
22
branch = True
3-
source = struct_module
3+
source = structkit
44

55
[report]
66
omit =

.github/instructions/struct.instructions.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ applyTo: '**'
66

77
## Role
88

9-
You are an expert assistant that generates valid `.struct.yaml` files for the [STRUCT tool](https://github.com/httpdss/struct), which automates project structure generation from YAML configuration.
9+
You are an expert assistant that generates valid `.struct.yaml` files for the [StructKit tool](https://github.com/httpdss/struct), which automates project structure generation from YAML configuration.
1010

1111
## Defining the `.struct.yaml` file
1212

@@ -29,10 +29,10 @@ files:
2929
3030
### Defining folders
3131
32-
The `folders` key is used to define folders that are created. Each folder path should include a `struct` key with a list of struct files to call. Optionally, you can define the value of a variable using the `with:` key.
33-
The list of struct files available can be taken from all the files defined inside `structkit/contribs/`.
34-
Remember the name of the struct file is the path to the file without the `.yaml` extension.
35-
Read from the struct file to kown the variables that can be used.
32+
The `folders` key is used to define folders that are created. Each folder path should include a `struct` key with a list of structkit files to call. Optionally, you can define the value of a variable using the `with:` key.
33+
The list of structkit files available can be taken from all the files defined inside `structkit/contribs/`.
34+
Remember the name of the structkit file is the path to the file without the `.yaml` extension.
35+
Read from the structkit file to kown the variables that can be used.
3636

3737
```yaml
3838
folders:
@@ -48,7 +48,7 @@ folders:
4848

4949
### Defining variables
5050

51-
The `variables` key is used to define variables that can be used in the struct files. Each variable should have a description, type, and optional default value.
51+
The `variables` key is used to define variables that can be used in the structkit files. Each variable should have a description, type, and optional default value.
5252

5353
```yaml
5454
variables:
@@ -63,15 +63,15 @@ variables:
6363
- Follow the JSON Schema definition provided in the references.
6464
- Use valid keys: `files`, `folders`, and `variables`.
6565
- if you want to define files, use the `files:` key, and a list of file paths that are created. each file path should have a content key.
66-
- if you want to define folders, use the `folders:` key, and a list of folder paths that are created. each folder path should have a list of folder paths and each folder path needs to have a list of struct keys. also if you want to define the value of a variable then you should use the `with:` key.
67-
- Follow the conventions from the STRUCT README provided in the references.
66+
- if you want to define folders, use the `folders:` key, and a list of folder paths that are created. each folder path should have a list of folder paths and each folder path needs to have a list of structkit keys. also if you want to define the value of a variable then you should use the `with:` key.
67+
- Follow the conventions from the StructKit README provided in the references.
6868
- Include content blocks under `content:` using pipe notation (`|`) when needed.
6969
- Use `permissions`, `skip`, or `skip_if_exists` if specified. This is used only for the `files` key.
7070
- Use `file:` to reference the content of a file or `content:` to define the content of the file.
71-
- Use `struct:` to define the list of struct files to call for a folder.
72-
- When defining the list of struct files you want to use, make sure to query the `structure name` to know what to use. this will be at ../../docs/structures.md.
71+
- Use `struct:` to define the list of structkit files to call for a folder.
72+
- When defining the list of structkit files you want to use, make sure to query the `structure name` to know what to use. this will be at ../../docs/structures.md.
7373
- Optionally, use Jinja2 custom filters such as `| latest_release`, `| default_branch`, or `| slugify`.
74-
- before creating a file from scratch, check that there is no struct contrib available that can be used to create the file.
74+
- before creating a file from scratch, check that there is no structkit contrib available that can be used to create the file.
7575

7676
## Output
7777

@@ -89,6 +89,6 @@ Always return YAML that is syntactically correct and validated against the provi
8989

9090
## References
9191

92-
- [STRUCT json schema](../../struct-schema.json)
93-
- [STRUCT README](../../README.md)
92+
- [StructKit json schema](../../struct-schema.json)
93+
- [StructKit README](../../README.md)
9494
- [Structures available in contribs](../../doc/structures.md)

.github/prompts/struct.prompt.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Role
44

5-
You are an expert assistant that generates valid `.struct.yaml` files for the [STRUCT tool](https://github.com/httpdss/struct), which automates project structure generation from YAML configuration.
5+
You are an expert assistant that generates valid `.struct.yaml` files for the [StructKit tool](https://github.com/httpdss/struct), which automates project structure generation from YAML configuration.
66

77
## Defining the `.struct.yaml` file
88

@@ -25,10 +25,10 @@ structures:
2525
2626
### Defining folders
2727
28-
The `folders` key is used to define folders that are created. Each folder path should include a `struct` key with a list of struct files to call. Optionally, you can define the value of a variable using the `with:` key.
29-
The list of struct files available can be taken from all the files defined inside `structkit/contribs/`.
30-
Remember the name of the struct file is the path to the file without the `.yaml` extension.
31-
Read from the struct file to kown the variables that can be used.
28+
The `folders` key is used to define folders that are created. Each folder path should include a `struct` key with a list of structkit files to call. Optionally, you can define the value of a variable using the `with:` key.
29+
The list of structkit files available can be taken from all the files defined inside `structkit/contribs/`.
30+
Remember the name of the structkit file is the path to the file without the `.yaml` extension.
31+
Read from the structkit file to kown the variables that can be used.
3232

3333
```yaml
3434
folders:
@@ -44,7 +44,7 @@ folders:
4444

4545
### Defining variables
4646

47-
The `variables` key is used to define variables that can be used in the struct files. Each variable should have a description, type, and optional default value.
47+
The `variables` key is used to define variables that can be used in the structkit files. Each variable should have a description, type, and optional default value.
4848

4949
```yaml
5050
variables:
@@ -59,12 +59,12 @@ variables:
5959
- Follow the JSON Schema definition provided in the references.
6060
- Use valid keys: `structures`, `folders`, and `variables`.
6161
- if you want to define files, use the `structures:` key, and a list of file paths that are created. each file path should have a content key.
62-
- if you want to define folders, use the `folders:` key, and a list of folder paths that are created. each folder path should have a list of folder paths and each folder path needs to have a list of struct keys. also if you want to define the value of a variable then you should use the `with:` key.
63-
- Follow the conventions from the STRUCT README provided in the references.
62+
- if you want to define folders, use the `folders:` key, and a list of folder paths that are created. each folder path should have a list of folder paths and each folder path needs to have a list of structkit keys. also if you want to define the value of a variable then you should use the `with:` key.
63+
- Follow the conventions from the StructKit README provided in the references.
6464
- Include content blocks under `content:` using pipe notation (`|`) when needed.
6565
- Use `permissions`, `skip`, or `skip_if_exists` if specified. This is used only for the `structures` key.
6666
- Use `file:` to reference the content of a file or `content:` to define the content of the file.
67-
- Use `struct:` to define the list of struct files to call for a folder.
67+
- Use `struct:` to define the list of structkit files to call for a folder.
6868
- Optionally, use Jinja2 custom filters such as `| latest_release`, `| default_branch`, or `| slugify`.
6969

7070
## Output
@@ -83,5 +83,5 @@ Always return YAML that is syntactically correct and validated against the provi
8383

8484
## References
8585

86-
- [STRUCT json schema](https://raw.githubusercontent.com/httpdss/struct/refs/heads/main/struct-schema.json)
87-
- [STRUCT README](https://raw.githubusercontent.com/httpdss/struct/refs/heads/main/README.md)
86+
- [StructKit json schema](https://raw.githubusercontent.com/httpdss/struct/refs/heads/main/struct-schema.json)
87+
- [StructKit README](https://raw.githubusercontent.com/httpdss/struct/refs/heads/main/README.md)

.github/workflows/struct-generate.yaml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
workflow_call:
55
inputs:
66
struct_file:
7-
description: 'Path to the STRUCT file'
7+
description: 'Path to the StructKit file'
88
type: string
99
required: false
1010
default: '.struct.yaml'
@@ -22,12 +22,12 @@ on:
2222
description: 'Title of the PR'
2323
type: string
2424
required: false
25-
default: 'Run STRUCT generate on repository'
25+
default: 'Run StructKit generate on repository'
2626
pr_body:
2727
description: 'Body of the PR'
2828
type: string
2929
required: false
30-
default: 'This PR was automatically generated by the STRUCT action.'
30+
default: 'This PR was automatically generated by the StructKit action.'
3131
pr_assignees:
3232
description: 'Assignees of the PR'
3333
type: string
@@ -70,10 +70,10 @@ jobs:
7070
with:
7171
python-version: '3.x'
7272

73-
- name: Install STRUCT
73+
- name: Install StructKit
7474
run: |
7575
pip install git+https://github.com/httpdss/struct.git
76-
struct -h
76+
structkit -h
7777
7878
- name: Install custom structures
7979
if: ${{ inputs.custom_structure_repository != '' }}
@@ -84,25 +84,25 @@ jobs:
8484
path: ./custom-structures
8585
fetch-depth: 1
8686

87-
- name: Run STRUCT
87+
- name: Run StructKit
8888
env:
8989
GITHUB_TOKEN: ${{ secrets.token }}
9090
run: |
9191
if [ -d ./custom-structures ]; then
9292
93-
struct list \
93+
structkit list \
9494
-s ./custom-structures/${{ inputs.custom_structure_path }}
9595
96-
struct generate \
96+
structkit generate \
9797
--non-interactive \
9898
-s ./custom-structures/${{ inputs.custom_structure_path }} \
9999
${{ inputs.args }} \
100100
${{ inputs.struct_file }} \
101101
${{ inputs.output_dir }}
102102
else
103-
struct list
103+
structkit list
104104
105-
struct generate \
105+
structkit generate \
106106
--non-interactive \
107107
${{ inputs.args }} \
108108
${{ inputs.struct_file }} \

.github/workflows/struct-on-gha.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,25 @@ jobs:
1515
with:
1616
python-version: '3.x'
1717

18-
- name: Install STRUCT
18+
- name: Install StructKit
1919
run: |
2020
pip install git+https://github.com/httpdss/struct.git
21-
struct -h
21+
structkit -h
2222
23-
- name: Run STRUCT
23+
- name: Run StructKit
2424
run: |
25-
# struct generate ...
26-
struct list
25+
# structkit generate ...
26+
structkit list
2727
2828
- name: Generate PR with changes
2929
if: github.event_name == 'workflow_dispatch'
3030
uses: peter-evans/create-pull-request@v7
3131
with:
3232
token: ${{ secrets.GITHUB_TOKEN }}
33-
commit-message: "Run STRUCT generate on repository"
34-
title: "Run STRUCT generate on repository"
33+
commit-message: "Run StructKit generate on repository"
34+
title: "Run StructKit generate on repository"
3535
body: |
36-
This PR was automatically generated by the STRUCT action.
36+
This PR was automatically generated by the StructKit action.
3737
base: "main"
3838
assignees: "httpdss"
3939
branch: repository-dispatch/update-${{ github.run_id }}

.vscode/settings.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"yaml.schemas": {
3+
"file:///home/kenny/.vscode-server/extensions/atlassian.atlascode-4.0.6/resources/schemas/pipelines-schema.json": "bitbucket-pipelines.yml",
4+
"file:///home/kenny/.vscode-server/extensions/httpdss.vscode-struct-0.1.0/schemas/struct-schema.json": [
5+
"*.struct.yaml"
6+
]
7+
}
8+
}

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ RUN pip install argcomplete
1818
COPY . .
1919

2020
# Register the script for auto-completion
21-
RUN echo 'eval "$(register-python-argcomplete struct)"' >> /etc/bash.bashrc
21+
RUN echo 'eval "$(register-python-argcomplete structkit)"' >> /etc/bash.bashrc
2222

2323
# Run your script when the container launches
2424
ENTRYPOINT ["python", "structkit/main.py"]

MANIFEST.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
recursive-include struct_module/contribs *
1+
recursive-include structkit/contribs *

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
# 🚀 STRUCT: Automated Project Structure Generator
1+
# 🚀 StructKit: Automated Project Structure Generator
22

3-
![STRUCT Logo](./docs/assets/github-hero.gif)
3+
![StructKit Logo](./docs/assets/github-hero.gif)
44

55
[![codecov](https://codecov.io/github/httpdss/struct/graph/badge.svg?token=JL5WIO1C9T)](https://codecov.io/github/httpdss/struct)
66
![GitHub issues](https://img.shields.io/github/issues/httpdss/struct)
77
![GitHub pull requests](https://img.shields.io/github/issues-pr/httpdss/struct)
88
![GitHub stars](https://img.shields.io/github/stars/httpdss/struct?style=social)
99

10-
**STRUCT** is a powerful, flexible tool for automating project structure creation through YAML configurations. Generate consistent project layouts, boilerplate code, and configurations with template variables, remote content fetching, and intelligent file handling.
10+
**StructKit** is a powerful, flexible tool for automating project structure creation through YAML configurations. Generate consistent project layouts, boilerplate code, and configurations with template variables, remote content fetching, and intelligent file handling.
1111

1212
> 📚 **[View Complete Documentation](docs/index.md)** | 🚀 **[Quick Start Guide](docs/quickstart.md)** | 🔧 **[Installation](docs/installation.md)**
1313
@@ -38,16 +38,16 @@ docker run -v $(pwd):/workdir ghcr.io/httpdss/struct:main generate my-config.yam
3838

3939
```bash
4040
# Generate a Terraform module structure
41-
struct generate terraform-module ./my-terraform-module
41+
structkit generate terraform-module ./my-terraform-module
4242

4343
# List available structures
44-
struct list
44+
structkit list
4545

4646
# Validate a configuration
47-
struct validate my-config.yaml
47+
structkit validate my-config.yaml
4848

4949
# Start MCP server for AI integration
50-
struct mcp --server
50+
structkit mcp --server
5151
```
5252

5353
### Example Configuration
@@ -128,7 +128,7 @@ MIT License - see [LICENSE](LICENSE) for details.
128128
129129
## 💰 Support
130130
131-
If STRUCT helps your workflow, consider supporting the project: [patreon/structproject](https://patreon.com/structproject)
131+
If StructKit helps your workflow, consider supporting the project: [patreon/structproject](https://patreon.com/structproject)
132132
133133
---
134134

WARP.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# WARP.md - STRUCT Project Guide
1+
# WARP.md - StructKit Project Guide
22

3-
> This file serves as a comprehensive guide for developers working with the STRUCT project. It contains project-specific conventions, development workflows, and institutional knowledge.
3+
> This file serves as a comprehensive guide for developers working with the StructKit project. It contains project-specific conventions, development workflows, and institutional knowledge.
44
55
## 📋 Table of Contents
66

@@ -24,7 +24,7 @@
2424
## 🎯 Project Overview
2525

2626
### Mission
27-
STRUCT simplifies project organization by creating consistent file and folder structures tailored to specific needs. It enhances productivity and maintains uniformity across projects through YAML-based configuration files.
27+
StructKit simplifies project organization by creating consistent file and folder structures tailored to specific needs. It enhances productivity and maintains uniformity across projects through YAML-based configuration files.
2828

2929
### Key Features
3030
- **YAML-Based Configuration**: Simple, readable project structure definitions
@@ -70,7 +70,7 @@ export OPENAI_API_KEY="your-api-key-here"
7070
export GITHUB_TOKEN="your-github-token"
7171

7272
# Optional: Logging level
73-
export STRUCT_LOG_LEVEL="DEBUG"
73+
export STRUCTKIT_LOG_LEVEL="DEBUG"
7474
```
7575

7676
### IDE Configuration
@@ -265,7 +265,7 @@ pre-commit run --all-files
265265
2. Follow naming convention: `project-type.yaml`
266266
3. Include comprehensive variable definitions
267267
4. Add example in `docs/examples/`
268-
5. Update `struct list` output
268+
5. Update `structkit list` output
269269

270270
## 🐛 Troubleshooting
271271

@@ -290,14 +290,14 @@ pre-commit run --all-files
290290
### Debug Mode
291291
```bash
292292
# Enable debug logging
293-
export STRUCT_LOG_LEVEL=DEBUG
294-
struct generate config.yaml --log DEBUG
293+
export STRUCTKIT_LOG_LEVEL=DEBUG
294+
structkit generate config.yaml --log DEBUG
295295

296296
# Dry run mode for testing
297-
struct generate config.yaml ./output --dry-run
297+
structkit generate config.yaml ./output --dry-run
298298

299299
# Console output for inspection
300-
struct generate config.yaml --output console
300+
structkit generate config.yaml --output console
301301
```
302302

303303
### Log Analysis
@@ -439,19 +439,19 @@ This project uses **GitHub** for issue tracking and work management. All issue-r
439439
#### List Issues
440440
```bash
441441
# Use the GitHub MCP to list all open issues
442-
list_issues owner:httpdss repo:struct state:open
442+
list_issues owner:httpdss repo:structkit state:open
443443
```
444444

445445
#### Get Issue Details
446446
```bash
447447
# Get details for a specific issue number
448-
get_issue owner:httpdss repo:struct issue_number:100
448+
get_issue owner:httpdss repo:structkit issue_number:100
449449
```
450450

451451
#### Create an Issue
452452
```bash
453453
# Create a new issue
454-
create_issue owner:httpdss repo:struct title:"Issue Title" body:"Issue description"
454+
create_issue owner:httpdss repo:structkit title:"Issue Title" body:"Issue description"
455455
```
456456

457457
#### Search Issues

0 commit comments

Comments
 (0)