rename ui to clan-app and move clan-app one layer up
This commit is contained in:
94
pkgs/clan-app/webview-ui/flake-module.nix
Normal file
94
pkgs/clan-app/webview-ui/flake-module.nix
Normal file
@@ -0,0 +1,94 @@
|
||||
{ ... }:
|
||||
{
|
||||
perSystem =
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
self',
|
||||
...
|
||||
}:
|
||||
{
|
||||
packages.fonts =
|
||||
let
|
||||
# 400 -> Regular
|
||||
archivoRegular = pkgs.fetchurl {
|
||||
url = "https://github.com/Omnibus-Type/Archivo/raw/b5d63988ce19d044d3e10362de730af00526b672/fonts/webfonts/ArchivoSemiCondensed-Regular.woff2";
|
||||
hash = "sha256-3PeB6tMpbYxR9JFyQ+yjpM7bAvZIjcJ4eBiHr9iV5p4=";
|
||||
};
|
||||
# 500 -> Medium
|
||||
archivoMedium = pkgs.fetchurl {
|
||||
url = "https://github.com/Omnibus-Type/Archivo/raw/b5d63988ce19d044d3e10362de730af00526b672/fonts/webfonts/ArchivoSemiCondensed-Medium.woff2";
|
||||
hash = "sha256-IKaY3YhpmjMaIVUpwKRLd6eFiIihBoAP99I/pwmyll8=";
|
||||
};
|
||||
# 600 -> SemiBold
|
||||
archivoSemiBold = pkgs.fetchurl {
|
||||
url = "https://github.com/Omnibus-Type/Archivo/raw/b5d63988ce19d044d3e10362de730af00526b672/fonts/webfonts/ArchivoSemiCondensed-SemiBold.woff2";
|
||||
hash = "sha256-fOE+b+UeTRoj+sDdUWR1pPCZVn0ABy6FEDDmXrOA4LY=";
|
||||
};
|
||||
in
|
||||
pkgs.runCommand "" { } ''
|
||||
mkdir -p $out
|
||||
cp ${archivoRegular} $out/ArchivoSemiCondensed-Regular.woff2
|
||||
cp ${archivoMedium} $out/ArchivoSemiCondensed-Medium.woff2
|
||||
cp ${archivoSemiBold} $out/ArchivoSemiCondensed-SemiBold.woff2
|
||||
'';
|
||||
packages.webview-ui = pkgs.buildNpmPackage {
|
||||
pname = "clan-webview-ui";
|
||||
version = "0.0.1";
|
||||
nodejs = pkgs.nodejs_20;
|
||||
src = ./app;
|
||||
|
||||
npmDeps = pkgs.importNpmLock { npmRoot = ./app; };
|
||||
npmConfigHook = pkgs.importNpmLock.npmConfigHook;
|
||||
|
||||
preBuild = ''
|
||||
mkdir -p api
|
||||
cp -r ${config.packages.clan-ts-api}/* api
|
||||
cp -r ${self'.packages.fonts} ".fonts"
|
||||
'';
|
||||
};
|
||||
devShells.webview-ui = pkgs.mkShell {
|
||||
name = "clan-webview-ui";
|
||||
inputsFrom = [
|
||||
config.packages.webview-ui
|
||||
self'.devShells.default
|
||||
];
|
||||
packages = [
|
||||
# required for reload-python-api.sh script
|
||||
pkgs.python3
|
||||
pkgs.json2ts
|
||||
];
|
||||
shellHook = ''
|
||||
export GIT_ROOT="$(git rev-parse --show-toplevel)"
|
||||
export PKG_ROOT="$GIT_ROOT/pkgs/ui/webview-ui"
|
||||
export NODE_PATH="$PKG_ROOT/app/node_modules"
|
||||
|
||||
scriptsPath="$PKG_ROOT/bin"
|
||||
export PATH="$NODE_PATH/.bin:$scriptsPath:$PATH"
|
||||
|
||||
cp -r ${self'.packages.fonts} "$PKG_ROOT/app/.fonts"
|
||||
chmod -R +w "$PKG_ROOT/app/.fonts"
|
||||
|
||||
# Define the yellow color code
|
||||
YELLOW='\033[1;33m'
|
||||
# Define the reset color code
|
||||
NC='\033[0m'
|
||||
|
||||
# Check if the directory does not exist
|
||||
if [ ! -d "$PKG_ROOT/app/node_modules" ]; then
|
||||
echo -e "$YELLOW The directory $PKG_ROOT/app/node_modules does not exist.$NC"
|
||||
echo -e "$YELLOW Please run 'npm install' in the app directory.$NC"
|
||||
echo -e "$YELLOW This will install the necessary dependencies.$NC"
|
||||
echo -e "$YELLOW To serve the webview run 'vite'.$NC"
|
||||
else
|
||||
echo "The directory $PKG_ROOT/app/node_modules exists."
|
||||
fi
|
||||
|
||||
|
||||
mkdir -p ./app/api
|
||||
cp -r ${config.packages.clan-ts-api}/* app/api
|
||||
chmod -R +w app/api
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user