Added initial vibe-coded project from Gemini
This commit is contained in:
@@ -1,3 +1,31 @@
|
|||||||
# blender-formula
|
# blender-formula
|
||||||
|
|
||||||
SaltStack formula to install Blender
|
Formula to manage Blender installations
|
||||||
|
|
||||||
|
## Available States
|
||||||
|
|
||||||
|
### blender
|
||||||
|
|
||||||
|
Includes all of the states required to install Blender.
|
||||||
|
|
||||||
|
### blender.install
|
||||||
|
|
||||||
|
Installs blender from the tarball source package.
|
||||||
|
|
||||||
|
## Configuring Blender
|
||||||
|
|
||||||
|
The most important variable to worry about is the `version` setting. This will tell the formula which version to download and install from [Blender](https://blender.org)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
blender:
|
||||||
|
version: 4.1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also modify the `download_url_base` setting if you wish to download Blender from another service:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
blender:
|
||||||
|
download_url_base: 'https://download.example.com/blender/'
|
||||||
|
```
|
||||||
|
|
||||||
|
Please refer to `pillar.example` for a complete reference.
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
{% from "blender/map.jinja" import blender with context %}
|
||||||
|
|
||||||
|
# 1. Download and extract archive
|
||||||
|
blender_extract_tarball:
|
||||||
|
archive.extracted:
|
||||||
|
- name: {{ blender.archive_dir }}
|
||||||
|
- source: {{ blender.download_url }}
|
||||||
|
- skip_verify: True
|
||||||
|
- enforce_ownership_on: {{ blender.archive_dir }}
|
||||||
|
- options: '--strip-components=1'
|
||||||
|
- if_missing: {{ blender.archive_dir }}/blender
|
||||||
|
|
||||||
|
# 2. Maintain generic symlink pointing to active version
|
||||||
|
blender_opt_symlink:
|
||||||
|
file.symlink:
|
||||||
|
- name: {{ blender.symlink_dir }}
|
||||||
|
- target: {{ blender.archive_dir }}
|
||||||
|
- force: True
|
||||||
|
- require:
|
||||||
|
- archive: blender_extract_tarball
|
||||||
|
|
||||||
|
# 3. Create CLI launcher symlink
|
||||||
|
blender_bin_symlink:
|
||||||
|
file.symlink:
|
||||||
|
- name: {{ blender.bin_dir }}/blender
|
||||||
|
- target: {{ blender.symlink_dir }}/blender
|
||||||
|
- force: True
|
||||||
|
- require:
|
||||||
|
- file: blender_opt_symlink
|
||||||
|
|
||||||
|
# 4. Deploy desktop menu shortcut
|
||||||
|
blender_desktop_entry:
|
||||||
|
file.managed:
|
||||||
|
- name: {{ blender.desktop_dir }}/blender.desktop
|
||||||
|
- source: salt://blender/templates/blender.desktop.jinja
|
||||||
|
- template: jinja
|
||||||
|
- mode: '0644'
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- context:
|
||||||
|
version: "{{ blender.version }}"
|
||||||
|
exec_path: "{{ blender.symlink_dir }}/blender %f"
|
||||||
|
icon_path: "{{ blender.symlink_dir }}/blender.svg"
|
||||||
|
- require:
|
||||||
|
- file: blender_opt_symlink
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
{% set default_version = '4.2.0' %}
|
||||||
|
{% set default_major = default_version.split('.')[0] ~ '.' ~ default_version.split('.')[1] %}
|
||||||
|
|
||||||
|
{% set defaults = {
|
||||||
|
'version': default_version,
|
||||||
|
'install_root': '/opt',
|
||||||
|
'bin_dir': '/usr/local/bin',
|
||||||
|
'desktop_dir': '/usr/share/applications',
|
||||||
|
'download_url_base': 'https://download.blender.org/release/Blender' ~ default_major
|
||||||
|
} %}
|
||||||
|
|
||||||
|
{# Merge pillar data under the 'blender' key over defaults #}
|
||||||
|
{% set blender = salt['pillar.get']('blender', default=defaults, merge=True) %}
|
||||||
|
|
||||||
|
{# Calculate derived paths dynamically #}
|
||||||
|
{% set major_version = blender.version.split('.')[0] ~ '.' ~ blender.version.split('.')[1] %}
|
||||||
|
{% set archive_name = 'blender-' ~ blender.version ~ '-linux-x64' %}
|
||||||
|
|
||||||
|
{% do blender.update({
|
||||||
|
'archive_dir': blender.install_root ~ '/' ~ archive_name,
|
||||||
|
'symlink_dir': blender.install_root ~ '/blender',
|
||||||
|
'download_url': blender.download_url_base ~ '/' ~ archive_name ~ '.tar.xz'
|
||||||
|
}) %}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=Blender {{ version }}
|
||||||
|
GenericName=3D modeller
|
||||||
|
Comment=3D creation suite
|
||||||
|
Exec={{ exec_path }}
|
||||||
|
Icon={{ icon_path }}
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=Graphics;3DGraphics;
|
||||||
|
MimeType=application/x-blender;
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
blender:
|
||||||
|
version: 4.1.0
|
||||||
|
install_root: /opt
|
||||||
|
bin_dir: /usr/local/bin
|
||||||
|
desktop_dir: /usr/share/applications
|
||||||
|
download_url_base: https://download.blender.org/release/Blender
|
||||||
Reference in New Issue
Block a user