mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-21 14:51:03 +00:00
165 lines
6.7 KiB
YAML
165 lines
6.7 KiB
YAML
name: yazi
|
|
base: core24
|
|
adopt-info: yazi
|
|
summary: Blazing fast terminal file manager written in Rust, based on async I/O.
|
|
description: |
|
|
Yazi is a terminal file manager written in Rust, based on non-blocking async I/O.
|
|
It aims to provide an efficient, user-friendly, and customizable file management experience.
|
|
license: MIT
|
|
grade: stable
|
|
confinement: classic
|
|
|
|
platforms:
|
|
amd64:
|
|
arm64:
|
|
|
|
apps:
|
|
yazi:
|
|
command: yazi
|
|
environment:
|
|
PATH: $SNAP/bin:$SNAP/usr/bin:$PATH
|
|
ya:
|
|
command: ya
|
|
environment:
|
|
PATH: $SNAP/bin:$SNAP/usr/bin:$PATH
|
|
|
|
parts:
|
|
yazi:
|
|
plugin: rust
|
|
source: https://github.com/sxyazi/yazi.git
|
|
stage-snaps:
|
|
- jq
|
|
stage-packages:
|
|
- 7zip-standalone
|
|
- chafa
|
|
- fd-find
|
|
- ffmpeg
|
|
# - fzf
|
|
- libglu1-mesa
|
|
- libglut3.12
|
|
- poppler-utils
|
|
- ripgrep
|
|
- wl-clipboard
|
|
- xclip
|
|
- zoxide
|
|
override-build: |
|
|
craftctl default
|
|
craftctl set version=$(git describe --tags --abbrev=0)
|
|
build-attributes:
|
|
- enable-patchelf
|
|
organize:
|
|
# Ubuntu's `fd` package installs a binary named `fdfind`. Rename it in the snap.
|
|
usr/bin/fdfind: usr/bin/fd
|
|
prime:
|
|
# Remove unused items bought in by dependency packages
|
|
- -usr/bin/fc-*
|
|
- -usr/bin/ffplay
|
|
- -usr/bin/pdfattach
|
|
- -usr/bin/pdfdetach
|
|
- -usr/bin/pdffonts
|
|
- -usr/bin/pdfimages
|
|
- -usr/bin/pdfinfo
|
|
- -usr/bin/pdfseparate
|
|
- -usr/bin/pdfsig
|
|
- -usr/bin/pdftocairo
|
|
- -usr/bin/pdftohtml
|
|
- -usr/bin/pdftops
|
|
- -usr/bin/pdftotext
|
|
- -usr/bin/pdfunite
|
|
# Remove unused libraries identified by snapcraft's linter
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_bad_*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_civil_time.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_cord*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_examine_stack.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_exponential_biased.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_failure_signal_handler.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_flags*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_hash*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_log_severity.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_periodic_sampler.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_random*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_raw_hash_set.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_scoped_set_env.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_statusor.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_status.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_strerror.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libabsl_str_format_internal.so.*
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libcaca++.so.0.99.20
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libcjson_utils.so.1.7.17
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libfftw3_omp.so.3.6.10
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libfftw3_threads.so.3.6.10
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libflite_cmu_grapheme_lang.so.2.2
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libflite_cmu_grapheme_lex.so.2.2
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libflite_cmu_indic_lang.so.2.2
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libflite_cmu_indic_lex.so.2.2
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libflite_cmu_time_awb.so.2.2
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libfreebl3.so
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libfreeblpriv3.so
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libGLX_mesa.so.0.0.0
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libhwy_contrib.so.1.0.7
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libhwy_test.so.1.0.7
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libicui18n.so.74.2
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libicuio.so.74.2
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libicutest.so.74.2
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libicutu.so.74.2
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libjacknet.so.0.1.0
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libjackserver.so.0.1.0
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libnssckbi.so
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libnssdbm3.so
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libpulse-simple.so.0.1.1
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libsoftokn3.so
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libsphinxad.so.3.0.0
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libssl3.so
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libtheora.so.0.3.10
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libxcb-dri2.so.0.0.0
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libxcb-glx.so.0.0.0
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libxcb-present.so.0.0.0
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libxcb-sync.so.1.0.0
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libxshmfence.so.1.0.0
|
|
- -usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libzvbi-chains.so.0.0.0
|
|
|
|
# The Ubuntu `imagemagick` package does not ship a `magick` binary,
|
|
# which `yazi` looks for. Building the package oursleves yields the
|
|
# expected binary without much overhead, and works across platforms.
|
|
magick:
|
|
plugin: autotools
|
|
source: https://github.com/ImageMagick/ImageMagick.git
|
|
source-type: git
|
|
source-tag: 7.1.2-0
|
|
source-depth: 1
|
|
stage-packages:
|
|
- libgomp1
|
|
autotools-configure-parameters:
|
|
- --prefix=/usr
|
|
build-attributes:
|
|
- enable-patchelf
|
|
organize:
|
|
# `libgomp1` installs libgomp into the multiarch directory, but the
|
|
# `magick` binary's RPATH only searches `$ORIGIN/../lib` (i.e. usr/lib).
|
|
# Move it alongside the Magick libraries so the bundled binary can load
|
|
# it at runtime; otherwise magick fails with:
|
|
# "libgomp.so.1: cannot open shared object file: No such file or directory"
|
|
usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libgomp.so*: usr/lib/
|
|
prime:
|
|
- usr/bin/magick
|
|
- usr/lib/libgomp.so*
|
|
- usr/lib/libMagickCore-7.Q16HDRI.so*
|
|
- usr/lib/libMagickWand-7.Q16HDRI.so*
|
|
|
|
cleanup:
|
|
after: [yazi, magick]
|
|
plugin: nil
|
|
build-packages:
|
|
- patchelf
|
|
build-snaps:
|
|
- core24
|
|
override-prime: |
|
|
# Ubuntu's /usr/bin/7zz is a simple bash wrapper that just exec's
|
|
# /usr/lib/7zip/7zz - this just shortcuts that and places the actual
|
|
# executable at $SNAP/usr/bin/7zz.
|
|
mv $CRAFT_PRIME/usr/lib/7zip/7zz $CRAFT_PRIME/usr/bin/7zz
|
|
|
|
# Ensure we don't ship duplicates of files that exist in the core24
|
|
# snap.
|
|
cd /snap/core24/current
|
|
find . -type f,l -exec rm -rf "${CRAFT_PRIME}/{}" \;
|