mirror of
https://github.com/alex-s168/website.git
synced 2025-09-10 01:05:07 +02:00
c
This commit is contained in:
48
config.py
48
config.py
@@ -1,4 +1,25 @@
|
|||||||
import os
|
import os
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
testcmd=subprocess.run(["python", "test_py_mods.py"], capture_output=True)
|
||||||
|
print(testcmd.stderr.decode("utf-8").strip())
|
||||||
|
assert testcmd.returncode == 0
|
||||||
|
|
||||||
|
have_ffprobe=False
|
||||||
|
try:
|
||||||
|
have_ffprobe = subprocess.run(["ffprobe", "--version"], capture_output=True)
|
||||||
|
have_ffprobe = testcmd.returncode == 0
|
||||||
|
except:pass
|
||||||
|
if not have_ffprobe:
|
||||||
|
print("warn: ffprobe not installed")
|
||||||
|
|
||||||
|
have_pngquant=False
|
||||||
|
try:
|
||||||
|
have_pngquant = subprocess.run(["pngquant", "--version"], capture_output=True)
|
||||||
|
have_pngquant = have_pngquant.returncode == 0
|
||||||
|
except:pass
|
||||||
|
if not have_pngquant:
|
||||||
|
print("warn: pngquant not installed")
|
||||||
|
|
||||||
web_targets = []
|
web_targets = []
|
||||||
|
|
||||||
@@ -63,18 +84,37 @@ rule cargo_release_bin
|
|||||||
command = (cd $in && cargo build --release) && cp $in/target/release/$file $out
|
command = (cd $in && cargo build --release) && cp $in/target/release/$file $out
|
||||||
pool = console
|
pool = console
|
||||||
|
|
||||||
|
rule touch
|
||||||
|
command = touch $out
|
||||||
|
"""
|
||||||
|
|
||||||
|
if have_ffprobe:
|
||||||
|
gen += """
|
||||||
rule expect_img_size
|
rule expect_img_size
|
||||||
command = eval "[ $$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 $in) = $size ]" && touch $out
|
command = eval "[ $$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 $in) = $size ]" && touch $out
|
||||||
|
|
||||||
rule touch
|
rule ffmpeg_compress
|
||||||
|
command = ffmpeg -y -i $in -compression_level 100 $out -hide_banner -loglevel error
|
||||||
|
"""
|
||||||
|
else:
|
||||||
|
gen += """
|
||||||
|
rule expect_img_size
|
||||||
command = touch $out
|
command = touch $out
|
||||||
|
|
||||||
rule ffmpeg_compress
|
rule ffmpeg_compress
|
||||||
command = ffmpeg -y -i $in -compression_level 100 $out -hide_banner -loglevel error
|
command = cp $in $out
|
||||||
|
"""
|
||||||
|
|
||||||
|
if have_pngquant:
|
||||||
|
gen += """
|
||||||
rule pngquant
|
rule pngquant
|
||||||
command = pngquant $in -o $out --force --quality $quality
|
command = pngquant $in -o $out --force --quality $quality
|
||||||
"""
|
"""
|
||||||
|
else:
|
||||||
|
gen += """
|
||||||
|
rule pngquant
|
||||||
|
command = cp $in $out
|
||||||
|
"""
|
||||||
|
|
||||||
gen += """
|
gen += """
|
||||||
build build/deploy/coffee.js : python_capture gen_coffee_js.py
|
build build/deploy/coffee.js : python_capture gen_coffee_js.py
|
||||||
@@ -88,7 +128,7 @@ web_targets.append("build/coffee_server")
|
|||||||
pages = [x for x in os.listdir("./pages/")]
|
pages = [x for x in os.listdir("./pages/")]
|
||||||
|
|
||||||
gen += """
|
gen += """
|
||||||
build build/pages.typ build/pages.json : python pages.gen.py | pages.in.typ
|
build build/pages.typ build/pages.json : python pages.gen.py | pages.in.typ """+ " ".join(f"build/{x}.git_rev.txt.iso" for x in pages) +"""
|
||||||
|
|
||||||
build gen_typst: phony build/pages.typ | """+ " ".join(f"build/{x}.git_rev.txt.iso" for x in pages) +"""
|
build gen_typst: phony build/pages.typ | """+ " ".join(f"build/{x}.git_rev.txt.iso" for x in pages) +"""
|
||||||
"""
|
"""
|
||||||
|
7
test_py_mods.py
Normal file
7
test_py_mods.py
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
from feedgen.feed import FeedGenerator
|
||||||
|
import subprocess
|
||||||
|
import fontTools
|
Reference in New Issue
Block a user