Index

joshstock.in / fb9522e

Source for serving and static templating/compiling of https://joshstock.in.

Latest Commit

{#}TimeHashSubjectAuthor#(+)(-)GPG?
21616 Oct 2024 22:44fb9522elazy loadingJosh Stockin1250G

Blob @ joshstock.in / lazyload_compress.xsh

text/plain710 bytesdownload raw
1#!/usr/bin/env xonsh
2
3import sys
4from pathlib import Path
5
6if len(sys.argv) < 2:
7 exit("error: no argument")
8
9f_path = Path(sys.argv[1])
10if not f_path.exists():
11 exit("error: file doesn't exist")
12
13if not $(file -b --mime-type @(f_path)).startswith("image/"):
14 exit("error: file isn't an image")
15
16f_size = int($(ls -l @(f_path) | awk '{print $5}'))
17if f_size > 500_000:
18 cp @(f_path) @(f_path.stem)_old@(f_path.suffix)
19 convert @(f_path) -define jpeg:extent=300kb @(f_path.stem).jpg
20
21 if f_size > 700_000:
22 convert @(f_path.stem)_old@(f_path.suffix) -define jpeg:extent=700kb @(f_path.stem)_full.jpg
23 else:
24 convert @(f_path.stem)_old@(f_path.suffix) @(f_path.stem)_full.jpg
25
26