export PATH := "./node_modules/.bin:" + env_var('PATH')

# lots of just -> pnpm, but this lets us chain pnpm command deps

[group('dist')]
dist-build-web: intl build-web

[group('dist')]
dist-build-android-sideload: intl build-android-sideload

[group('dist')]
dist-build-android-gradle: intl build-android-gradle

[group('build')]
intl:
    pnpm intl:build

[group('build')]
prebuild-android:
    expo prebuild -p android

[group('build')]
build-web: && postbuild-web
    pnpm build-web

[group('build')]
build-android-sideload: prebuild-android
    eas build --local --platform android --profile sideload-android

[group('build')]
[working-directory: 'android']
build-android-gradle: prebuild-android
    ./gradlew app:assembleRelease

[group('build')]
postbuild-web:
    # build system outputs some srcs and hrefs like src="static/"
    # need to rewrite to be src="/static/" to handle non root pages
    sed -i 's/\(src\|href\)="static/\1="\/static/g' web-build/index.html

    # we need to copy the static iframe html to support youtube embeds
    cp -r bskyweb/static/iframe/ web-build/iframe
    # copy well-known files to support app deeplinks too
    cp -r bskyweb/static/.well-known/ web-build/.well-known
    # copy files to support oauth
    cp bskyweb/static/oauth-client-metadata.json web-build/oauth-client-metadata.json
    cp bskyweb/static/oauth-client-metadata-native.json web-build/oauth-client-metadata-native.json

    # copy static info pages over!
    cp -r witchsky-static-about web-build/about
    
    # copy a stylesheet
    cp src/style.css web-build/style.css
    cp src/style.css web-build/static/style.css

    # copy the favicon
    cp assets/favicon.png web-build/favicon.ico

[group('dev')]
dev-android-setup: prebuild-android
    pnpm android

[group('dev')]
dev-web:
    pnpm web

[group('dev')]
dev-web-functions: build-web
    wrangler pages dev ./web-build

[group('lint')]
typecheck:
    pnpm typecheck
