diff --git a/hilbish-git.spec b/hilbish-git.spec index 0367d83..3c043f1 100644 --- a/hilbish-git.spec +++ b/hilbish-git.spec @@ -2,8 +2,8 @@ %global debug_package %{nil} Name: hilbish-git -Version: {{{ git_dir_version }}} -Release: 1%{?dist} +Version: {{{ git_tag_version }}} +Release: 1%.{{{ git_short_hash }}}{?dist} Summary: The flower shell. A comfy and nice little shell for Lua fans! License: MIT diff --git a/hilbish.spec b/hilbish.spec new file mode 100644 index 0000000..69a496b --- /dev/null +++ b/hilbish.spec @@ -0,0 +1,59 @@ +%global _missing_build_ids_terminate_build 0 +%global debug_package %{nil} + +Name: hilbish +Version: {{{ git_tag_version }}} +Release: 1%{?dist} +Summary: The flower shell. A comfy and nice little shell for Lua fans! +License: MIT + +Source: https://github.com/Rosettea/Hilbish/archive/refs/tags/v{{{ git_tag_version }}}.tar.gz +BuildRequires: git golang go-task +Requires: inspect succulent lunacolors + +Url: https://github.com/Rosettea/Hilbish +VCS: {{{ git_dir_vcs }}} + +%description +Hilbish is a extensible shell (framework). It was made to be very customizable +via the Lua programming language. It aims to be easy to use for the casual +people but powerful for those who want to tinker more with their shell, +the thing used to interface with most of the system. + +The motivation for choosing Lua was that its simpler and better to use +than old shell script. It's fine for basic interactive shell uses, +but that's the only place Hilbish has shell script; everything else is Lua +and aims to be infinitely configurable. If something isn't, open an issue! + +%prep +{{{ git_dir_setup_macro }}} +sed -i '\|/etc/shells|d' Taskfile.yaml + +%build +go-task + +%install +go-task install PREFIX=%{buildroot}/usr BINDIR=%{buildroot}/%{_bindir} + +%post +if [ "$1" = 1 ]; then + if [ ! -f %{_sysconfdir}/shells ] ; then + echo "%{_bindir}/hilbish" > %{_sysconfdir}/shells + echo "/bin/hilbish" >> %{_sysconfdir}/shells + else + grep -q "^%{_bindir}/hilbish$" %{_sysconfdir}/shells || echo "%{_bindir}/hilbish" >> %{_sysconfdir}/shells + grep -q "^/bin/hilbish$" %{_sysconfdir}/shells || echo "/bin/hilbish" >> %{_sysconfdir}/shells + fi +fi + +%postun +if [ "$1" = 0 ] && [ -f %{_sysconfdir}/shells ] ; then + sed -i '\!^%{_bindir}/hilbish$!d' %{_sysconfdir}/shells + sed -i '\!^/bin/hilbish$!d' %{_sysconfdir}/shells +fi + +%files +%doc README.md +%license LICENSE +%{_bindir}/hilbish +%{_datadir}/hilbish diff --git a/rpkg.conf b/rpkg.conf new file mode 100644 index 0000000..957dc05 --- /dev/null +++ b/rpkg.conf @@ -0,0 +1,2 @@ +[rpkg] +user_macros = "${git_props:root}/rpkg.macros" diff --git a/rpkg.macros b/rpkg.macros new file mode 100644 index 0000000..0e49be8 --- /dev/null +++ b/rpkg.macros @@ -0,0 +1,23 @@ +function git_short_hash { + short_hash="$(cached git_short_hash)" + + if [ -z "$short_hash" ]; then + short_hash="$(git rev-parse --short HEAD)" + fi + + output "$short_hash" +} + +function git_tag_version { + tag="$(cached git_tag_version)" + + if [ -z "$tag" ]; then + tag="$(git describe --tags --abbrev=0)" + fi + + # Remove the potential prefix of `v` + if [[ $tag =~ ^v[0-9].* ]]; then + tag="${tag:1}" + fi + output "$tag" +}