[READ-ONLY] Mirror of https://github.com/mrgnw/scripts.
0

Configure Feed

Select the types of activity you want to include in your feed.

scripts / globs
2.3 kB 92 lines
1#!/usr/bin/env zsh 2 3usage() { 4 echo "Usage: $(basename "$0") <images|videos|media> [-x ext ...]" >&2 5 echo >&2 6 echo "Prints glob patterns one per line for use in scripts." >&2 7 echo >&2 8 echo " images — raster images, raw formats, and modern compressed formats" >&2 9 echo " raw — camera raw formats (arw, cr2, dng, nef, etc.)" >&2 10 echo " videos — common video container formats" >&2 11 echo " media — both images and videos" >&2 12 echo >&2 13 echo "Options:" >&2 14 echo " -x, --exclude ext [ext ...] exclude one or more extensions (without leading dot)" >&2 15 echo >&2 16 echo "Examples:" >&2 17 echo " $(basename "$0") images -x heic heif" >&2 18 echo " $(basename "$0") images -x jpg jpeg" >&2 19 echo " $(basename "$0") videos -x wmv flv" >&2 20 exit 1 21} 22 23print_raw() { 24 print -l \ 25 "*.arw" "*.cr2" "*.cr3" "*.dng" "*.nef" \ 26 "*.orf" "*.raf" "*.raw" "*.rw2" "*.pef" "*.srw" "*.x3f" 27} 28 29print_images() { 30 print -l \ 31 "*.jpg" "*.jpeg" \ 32 "*.png" "*.gif" "*.bmp" \ 33 "*.tiff" "*.tif" "*.tga" \ 34 "*.webp" "*.avif" \ 35 "*.heic" "*.heif" \ 36 "*.jxl" \ 37 "*.psd" 38 print_raw 39} 40 41print_videos() { 42 print -l \ 43 "*.mp4" "*.m4v" \ 44 "*.mov" \ 45 "*.mkv" \ 46 "*.avi" \ 47 "*.webm" \ 48 "*.ts" "*.mts" "*.m2ts" \ 49 "*.wmv" "*.flv" 50} 51 52# Parse type 53case "${1:-}" in 54 images|img|i) type=images ;; 55 raw|r) type=raw ;; 56 videos|video|vid|v) type=videos ;; 57 media|all) type=media ;; 58 *) usage ;; 59esac 60shift 61 62# Parse -x / --exclude 63excludes=() 64while [[ $# -gt 0 ]]; do 65 case "$1" in 66 -x|--exclude) 67 shift 68 while [[ $# -gt 0 && "$1" != -* ]]; do 69 excludes+=("$1") 70 shift 71 done 72 ;; 73 *) usage ;; 74 esac 75done 76 77emit() { 78 case "$type" in 79 images) print_images ;; 80 raw) print_raw ;; 81 videos) print_videos ;; 82 media) print_images; print_videos ;; 83 esac 84} 85 86if [[ ${#excludes[@]} -gt 0 ]]; then 87 pattern=$(printf "%s|" "${excludes[@]}") 88 pattern="\.(${pattern%|})$" 89 emit | grep -vEi "$pattern" 90else 91 emit 92fi