- created dsx and dsx_server in place of dsx-build

- dsx replaces dsx-build and is a build tool/package manager for the DSA
  ecosystem
- dsx_server is the repository/server for dsx packages.

dsx is a WIP.
This commit is contained in:
2026-02-22 21:44:41 +00:00
parent 7117b927f3
commit a1d7b54479
33 changed files with 3174 additions and 211 deletions
@@ -0,0 +1,16 @@
{% macro file_view(package, file) %}
<div class="file-row">
<span class="file-icon">
{% if file.is_dir %}
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" style="color:#4f8ef7" ><path d="M3 7a2 2 0 012-2h4l2 2h8a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"/></svg>
{% else %}
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>
{% endif %}
</span>
<span class="file-name">
<a href="/packages/{{ package }}/~repo/{{ file.path }}">{{ file.name }}</a>
</span>
<!--<span class="file-commit">{{ file.last_commit_message | default(value="") }}</span>
<span class="file-age">{{ file.last_modified | default(value="") }}</span>-->
</div>
{% endmacro %}
@@ -0,0 +1,35 @@
<!-- File tree -->
<div class="pkg-main">
<div class="file-tree">
<div class="file-toolbar">
<div class="file-toolbar-search">
<svg class="file-toolbar-search-icon" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
<form method="get" action="/packages/{{ package.config.name }}/~repo">
<input type="text" name="q" placeholder="Filter files…" value="{{ query | default(value='') }}">
</form>
</div>
<span class="dim small mono">{{ current_path | default(value="/") }}</span>
</div>
{% if package.files and package.files | length > 0 %}
<div class="file-tree-body">
{% if current_path %}
<a class="file-row" href="/packages/{{ package.config.name }}/~repo/{{ parent_path | default(value='') }}">
<span class="file-icon">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"/></svg>
</span>
<span class="file-name" style="color:var(--text-dim)">..</span>
</a>
{% endif %}
{% for file in package.files %}
{{ files::file_view(package = package.config.name, file = file) }}
{% endfor %}
</div>
{% else %}
<div class="file-tree-empty">No files found.</div>
{% endif %}
</div>
</div>
@@ -0,0 +1,81 @@
<!-- Sidebar -->
<aside class="pkg-sidebar">
<!-- Build status -->
<div class="card sidebar-card">
<div class="sidebar-card-title">Latest Build</div>
<div class="sidebar-card-body">
<div class="build-status-row">
{% if package.meta.latest_build_status == "success" %}
<span class="badge badge-success"><span class="dot"></span>passing</span>
{% elif package.meta.latest_build_status == "failure" %}
<span class="badge badge-failure"><span class="dot"></span>failing</span>
{% elif package.meta.latest_build_status == "running" %}
<span class="badge badge-running"><span class="dot dot-pulse"></span>running</span>
{% elif package.meta.latest_build_status == "pending" %}
<span class="badge badge-pending"><span class="dot"></span>pending</span>
{% else %}
<span class="dim small">No builds yet</span>
{% endif %}
</div>
{% if package.meta.latest_build_id %}
<a class="build-link" href="/packages/{{ package.config.name }}/~artifact/{{ package.meta.latest_build_id }}">
#{{ package.meta.latest_build_id }} — view logs →
</a>
{% endif %}
{% if package.meta.latest_build_date %}
<div class="dim small mono" style="margin-top:6px">{{ package.meta.latest_build_date }}</div>
{% endif %}
</div>
</div>
<!-- About -->
<div class="card sidebar-card">
<div class="sidebar-card-title">About</div>
<div class="sidebar-card-body">
{% if package.language %}
<div class="sidebar-stat">
<span class="sidebar-stat-label">Language</span>
<span class="lang-pill">
<span class="lang-color-dot" {% if package.language_color %}style="background:{{ package.language_color }}"{% endif %}></span>
{{ package.language }}
</span>
</div>
{% endif %}
{% if package.version %}
<div class="sidebar-stat">
<span class="sidebar-stat-label">Version</span>
<span class="sidebar-stat-value">{{ package.version }}</span>
</div>
{% endif %}
{% if package.license %}
<div class="sidebar-stat">
<span class="sidebar-stat-label">License</span>
<span class="sidebar-stat-value">{{ package.license }}</span>
</div>
{% endif %}
{% if package.created_at %}
<div class="sidebar-stat">
<span class="sidebar-stat-label">Created</span>
<span class="sidebar-stat-value dim">{{ package.created_at }}</span>
</div>
{% endif %}
</div>
</div>
<!-- Quick links -->
<div class="card sidebar-card">
<div class="sidebar-card-title">Links</div>
<div class="sidebar-card-body" style="display:flex;flex-direction:column;gap:6px">
<a href="/packages/{{ package.config.name }}/~repo" style="font-size:13px">
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="vertical-align:middle;margin-right:4px"><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>
Browse files
</a>
<a href="/packages/{{ package.config.name }}/~artifact/" style="font-size:13px">
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="vertical-align:middle;margin-right:4px"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
Build history
</a>
</div>
</div>
</aside>