Compare commits

..

No commits in common. "feature/11-add-debian-packaging" and "develop" have entirely different histories.

12 changed files with 5 additions and 137 deletions

View file

@ -26,24 +26,6 @@ steps:
- mkdir -p /_cache/bin
- cp -r bin/mfm /_cache/bin/$PACKAGE_BASENAME
- name: build:debian
image: debian:bullseye
environment:
PACKAGE_BASENAME: mfm_linux_amd64
volumes:
- name: cache
path: /_cache
commands:
- apt-get update
- apt-get install -y build-essential debhelper devscripts dh-make
- curl -fsSL https://crystal-lang.org/install.sh | bash
- mkdir -p /_cache/debian
- mkdir -p /_cache/bin
- cp -r * /_cache/debian
- cd /_cache/debian
- dpkg-buildpackage -us -uc -d
- mv ../*.deb /_cache/bin
- name: publish:tag
image: alpine
environment:
@ -64,18 +46,10 @@ steps:
commands:
- apk add --update --no-cache curl jq
- env |grep DRONE
# Upload packages
- |
curl -H "Authorization: token $PACKAGE_UPLOAD_TOKEN" \
--upload-file "/_cache/bin/$PACKAGE_BASENAME" \
"$PACKAGE_UPLOAD_URL/$DRONE_TAG/$PACKAGE_BASENAME"
- |
for deb in /_cache/bin/*.deb 0 ; do \
test -f "$deb" || continue ; \
curl -H "Authorization: token $PACKAGE_UPLOAD_TOKEN" \
--upload-file "$deb" \
"$PACKAGE_UPLOAD_URL/$DRONE_TAG/$(basename $deb)" ; \
done
- |
set -x
curl -X POST \
@ -101,17 +75,6 @@ steps:
-H "Content-Type: multipart/form-data" \
-F "attachment=@/_cache/bin/$PACKAGE_BASENAME" \
"$RELEASES_URL/$TAG_ID/assets?name=$PACKAGE_BASENAME"
- |
set -x
for deb in /_cache/bin/*.deb 0 ; do \
test -f "$deb" || continue ; \
curl -X POST \
-H "Authorization: token $RELEASE_UPLOAD_TOKEN" \
-H "accept: application/json" \
-H "Content-Type: multipart/form-data" \
-F "attachment=@$deb" \
"$RELEASES_URL/$TAG_ID/assets?name=$(basename $deb)" ; \
done
# FIXME: handle multi-arch

4
.gitignore vendored
View file

@ -7,7 +7,3 @@
.vagrant
bin
lib
debian/.debhelper/
debian/debhelper-build-stamp
debian/mfm
debian/mfm.substvars

View file

@ -3,17 +3,13 @@
# SPDX-FileCopyrightText: 2023 Glenn Y. Rolland <glenux@glenux.net>
# Copyright © 2023 Glenn Y. Rolland <glenux@glenux.net>
DESTDIR=
PREFIX=$(DESTDIR)/usr
PREFIX=/usr
.PHONY: all
all: build
.PHONY: prepare
prepare:
shards install
.PHONY: build
build:
shards build --error-trace -Dpreview_mt
@echo SUCCESS
@ -21,20 +17,15 @@ build:
watch:
watchexec --restart --delay-run 3 -c -e cr make build
.PHONY: spec test
spec: test
test:
crystal spec --error-trace
.PHONY: install
install:
install \
-D \
-m 755 \
bin/mfm \
$(PREFIX)/bin/mfm
$(PREFIX)/bin
.PHONY: deb
deb:
dpkg-buildpackage -us -uc -d
.PHONY: spec test build all prepare install

View file

@ -1,19 +0,0 @@
#!/bin/sh
# References:
# - https://www.debian.org/doc/manuals/maint-guide/build.en.html for base principles
# - https://www.patreon.com/posts/building-debian-23177439 for debuild output dir
#
set -ue
mkdir -p _build || true
docker build -t debbuilder --file docker/Dockerfile .
docker run -it -v "$(pwd):/app" -v "$(pwd)/_build:/_build" debbuilder \
sh -c "ARTIFACTS_DIR=/app/_build debuild --preserve-envvar=ARTIFACTS_DIR -us -uc --buildinfo-option=-u/app/_build --changes-option=-u/app/_build" \
|| docker run -it -v "$(pwd):/app" debbuilder
# dpkg-buildpackage -us -uc
# debuild
# git-buildpackage
echo SUCCESS

5
debian/changelog vendored
View file

@ -1,5 +0,0 @@
mfm (0.2.0) unstable; urgency=medium
* Première version empaquetée pour Debian.
-- Glenn Y. Rolland <glenux@glenux.net> Sun, 29 Dec 2024 20:06:16 +0100

19
debian/control vendored
View file

@ -1,19 +0,0 @@
Source: mfm
Section: utils
Priority: optional
Maintainer: Glenn Y. Rolland <glenux@glenux.net>
Build-Depends: debhelper-compat (= 13), crystal, shards, make, libyaml-dev
Standards-Version: 4.6.0
Homepage: https://code.apps.glenux.net/glenux/mfm
Vcs-Git: https://code.apps.glenux.net/glenux/mfm.git
Vcs-Browser: https://code.apps.glenux.net/glenux/mfm
Package: mfm
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libpcre3, libevent-2.1-7, fzf
Recommends: gocryptfs, httpdirfs, sshfs
Description: Simple command-line helper for FUSE filesystems
MFM is a Crystal-lang CLI designed to streamline the management of various
FUSE filesystems, such as sshfs, gocryptfs, httpdirfs, and more. Through its
user-friendly interface, users can effortlessly mount and unmount filesystems,
get real-time filesystem status, and handle errors proficiently.

8
debian/copyright vendored
View file

@ -1,8 +0,0 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: my-crystal-app
Source: https://code.apps.glenux.net/glenux/mfm
Files: *
Copyright: 2024, Glenn Y. Rolland <glenux@glenux.net>
License: MIT
https://opensource.org/license/mit

2
debian/files vendored
View file

@ -1,2 +0,0 @@
mfm-dbgsym_0.2.0_amd64.deb debug optional automatic=yes
mfm_0.2.0_amd64.deb utils optional

3
debian/mfm.install vendored
View file

@ -1,3 +0,0 @@
bin/mfm /usr/bin/
README.md /usr/share/doc/mfm/
LICENSES/GPL-3.0-or-later.txt /usr/share/doc/mfm/LICENSE

4
debian/rules vendored
View file

@ -1,4 +0,0 @@
#!/usr/bin/make -f
%:
dh $@

View file

@ -1,22 +0,0 @@
FROM debian:trixie
RUN set -ex \
&& sed -i \
-e 's/Types: deb/Types: deb deb-src/g' \
/etc/apt/sources.list.d/debian.sources \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
cdbs \
devscripts \
equivs \
fakeroot \
crystal \
shards \
git-buildpackage \
libyaml-dev \
libxml2-dev \
&& apt-get clean \
&& rm -rf /tmp/* /var/tmp/*
WORKDIR /app

View file

@ -37,10 +37,10 @@ describe GX::Utils::BreadCrumbs do
b1.to_s.should eq("")
b2 = b1 + "test1"
b2.to_s.should eq("test1")
b2.to_a.should eq("test1")
b3 = b2 + "test2"
b3.to_s.should eq("test1 test2")
b3.to_a.should eq("test1 test2")
end
end
end