commit f8b50079d3c87d7b5fa0abf088db01b6e880595c
parent 5eb390fee04012cadb2331b4521ccc04ed576dca
Author: Juan <juan@fedi.ovh>
Date: Mon, 18 May 2026 14:12:46 +0200
remove Makefile, add ./dev wrapper
make no viene en alpine base — pedirla solo para wrappers contradice
el minimalismo. ahora:
- el APKBUILD instala con `install -Dm` directo (sin `make install`),
asi el paquete no depende de make ni build-base
- script `./dev` (8 lineas sh) hace de wrapper para devs sobre example/:
`./dev build`, `./dev serve`, `./dev clean`, `./dev stats`
- tarball para abuild: `git archive --format=tar.gz --prefix=X HEAD`
usuario final solo necesita `apk add simpleblog` (que trae smu). nada
de make/build-base/git para construir el blog.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Diffstat:
4 files changed, 53 insertions(+), 63 deletions(-)
diff --git a/Makefile b/Makefile
@@ -1,46 +0,0 @@
-.POSIX:
-
-PKGNAME = simpleblog
-VERSION = 0.1
-PREFIX = /usr/local
-BIN = simpleblog
-SHAREDIR = $(PREFIX)/share/simpleblog
-EXAMPLE = example
-PORT = 8080
-DIST = $(PKGNAME)-$(VERSION).tar.gz
-
-all: build
-
-# build local del sitio de ejemplo, usando este repo como defaults
-# (templates/ y skel/ del repo, sin necesidad de instalar el paquete)
-build:
- cd $(EXAMPLE) && SIMPLEBLOG_DEFAULTS=$$PWD/.. ../simpleblog build
-
-clean:
- cd $(EXAMPLE) && SIMPLEBLOG_DEFAULTS=$$PWD/.. ../simpleblog clean
-
-stats:
- cd $(EXAMPLE) && SIMPLEBLOG_DEFAULTS=$$PWD/.. ../simpleblog stats
-
-serve:
- cd $(EXAMPLE) && SIMPLEBLOG_PORT=$(PORT) SIMPLEBLOG_DEFAULTS=$$PWD/.. ../simpleblog serve
-
-# instala el script y los defaults globalmente
-install:
- mkdir -p $(DESTDIR)$(PREFIX)/bin
- mkdir -p $(DESTDIR)$(SHAREDIR)
- cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin/$(BIN)
- chmod 755 $(DESTDIR)$(PREFIX)/bin/$(BIN)
- cp -r templates $(DESTDIR)$(SHAREDIR)/
- cp -r skel $(DESTDIR)$(SHAREDIR)/
-
-uninstall:
- rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN)
- rm -rf $(DESTDIR)$(SHAREDIR)
-
-# tarball para empaquetar (lo consume el APKBUILD)
-dist:
- git archive --format=tar.gz --prefix=$(PKGNAME)-$(VERSION)/ HEAD -o $(DIST)
- @echo "creado $(DIST)"
-
-.PHONY: all build clean stats serve install uninstall dist
diff --git a/alpine/APKBUILD b/alpine/APKBUILD
@@ -7,7 +7,8 @@ url="https://git.fedi.ovh/simpleblog/"
arch="noarch"
license="MIT"
depends="smu"
-# darkhttpd/imagemagick son opcionales (serve / process_images)
+# darkhttpd y imagemagick son opcionales (serve / process_images).
+# se pueden instalar luego si el usuario los necesita.
makedepends=""
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz"
@@ -15,10 +16,21 @@ options="!check"
package() {
cd "$builddir"
- make install \
- PREFIX=/usr \
- DESTDIR="$pkgdir"
+ # script principal
+ install -Dm755 simpleblog "$pkgdir/usr/bin/simpleblog"
+
+ # plantillas por defecto
+ for f in templates/*; do
+ install -Dm644 "$f" "$pkgdir/usr/share/$pkgname/$f"
+ done
+
+ # esqueleto para `simpleblog init`
+ for f in $(find skel -type f); do
+ install -Dm644 "$f" "$pkgdir/usr/share/$pkgname/$f"
+ done
+
+ # doc
install -Dm644 objetivo.txt \
"$pkgdir/usr/share/doc/$pkgname/objetivo.txt"
}
diff --git a/dev b/dev
@@ -0,0 +1,10 @@
+#!/bin/sh
+# wrapper para desarrollar el repo sin instalar simpleblog.
+# ejecuta el `simpleblog` de este repo sobre example/ como sitio,
+# apuntando los defaults (templates/, skel/) a la raiz del repo.
+#
+# uso: ./dev [build|clean|serve|stats]
+set -eu
+DIR=$(cd "$(dirname "$0")" && pwd)
+cd "$DIR/example"
+exec env SIMPLEBLOG_DEFAULTS="$DIR" "$DIR/simpleblog" "${1:-build}"
diff --git a/objetivo.txt b/objetivo.txt
@@ -30,11 +30,11 @@ DECISIONES (2026-05-18)
- Estilo: estructura semantica + css minimal.
-ESTRUCTURA (tras refactor 2026-05-18, repo empaquetable)
---------------------------------------------------------
+ESTRUCTURA (tras refactor 2026-05-18, repo empaquetable, sin make)
+------------------------------------------------------------------
repo/
simpleblog script principal (sh) -> /usr/bin/simpleblog
- Makefile build / install / dist
+ dev wrapper sh para devs (./dev build|serve|...)
templates/ plantillas DEFAULT -> /usr/share/simpleblog/templates/
header.html, footer.html, post.html, page.html,
index.html, index-item.html, tags.html,
@@ -42,7 +42,7 @@ repo/
skel/ esqueleto para `simpleblog init`
-> /usr/share/simpleblog/skel/
example/ sitio funcional de demo (posts, pages, config...)
- alpine/APKBUILD receta para empaquetar a .apk
+ alpine/APKBUILD receta para empaquetar a .apk (sin make)
objetivo.txt este fichero
sitio del usuario (creado con `simpleblog init`):
@@ -57,21 +57,32 @@ sitio del usuario (creado con `simpleblog init`):
USO
---
-# desarrollo local del repo (sin instalar)
-make build construye example/public/ con templates/ del repo
-make serve sirve example/public/ (darkhttpd / busybox / python)
-make stats resumen de tamanos
-make clean borra example/public/
-make install instala globalmente (script + templates + skel)
-make dist crea tarball para empaquetar
-
-# como usuario final (despues de instalar)
+# desarrollo local del repo (sin instalar, sin make)
+./dev build construye example/public/ con templates/ del repo
+./dev serve sirve example/public/ (darkhttpd / busybox / python)
+./dev stats resumen de tamanos
+./dev clean borra example/public/
+
+# tarball para empaquetar (lo consume el APKBUILD en alpine/)
+git archive --format=tar.gz --prefix=simpleblog-0.1/ HEAD \
+ -o simpleblog-0.1.tar.gz
+
+# como usuario final (despues de `apk add simpleblog`)
simpleblog init inicializa un sitio nuevo en el cwd (copia skel)
simpleblog build genera public/
simpleblog serve sirve public/ en :8080
simpleblog stats resumen de tamanos
simpleblog clean borra public/
+DEPENDENCIAS DEL PAQUETE
+------------------------
+- smu (obligatoria) — conversor markdown
+- darkhttpd o busybox-extras (opcional) — solo para `simpleblog serve`
+- imagemagick (opcional) — solo para procesar imagenes
+
+Nada de make/build-base/git para el usuario final. `apk add simpleblog`
+y a usar.
+
HECHO (2026-05-18)
------------------
@@ -129,6 +140,9 @@ HECHO (2026-05-18)
nuevo comando `init` que copia skel al cwd. Skel minimo en skel/.
Sitio de demo en example/. APKBUILD en alpine/. smu deja de ser
vendored y pasa a paquete aparte (apk add smu).
+[x] Quitar make: no era coherente con la filosofia (en Alpine base no
+ viene). APKBUILD usa `install -Dm` directamente. Para devs, un
+ script `./dev` sh de 8 lineas hace de wrapper sobre example/.
POR HACER (pendiente, priorizado)