diff --git a/mediarepo-ui/src-tauri/Cargo.lock b/mediarepo-ui/src-tauri/Cargo.lock index 40b6e09..a999486 100644 --- a/mediarepo-ui/src-tauri/Cargo.lock +++ b/mediarepo-ui/src-tauri/Cargo.lock @@ -40,7 +40,7 @@ checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" [[package]] name = "app" -version = "1.0.0-rc.1" +version = "1.0.0-rc.2" dependencies = [ "mediarepo-api", "serde", diff --git a/scripts/build.py b/scripts/build.py index 84ef686..f3b66f9 100755 --- a/scripts/build.py +++ b/scripts/build.py @@ -2,15 +2,15 @@ import shutil as shut import os from lib import * -import json from clean import clean -from check import check_daemon_depends, check_ui_depends +from check import check, check_daemon_tooling, check_ui_tooling +from typing import List build_output = 'out' verbose = False ffmpeg = False -install_deps = False +install_tooling = False windows = os.name == 'nt' @@ -18,18 +18,18 @@ windows = os.name == 'nt' def main(): opts = parse_args() - global install_deps + global install_tooling global build_output global verbose global ffmpeg - global install_deps + global install_tooling build_output = opts.output if opts.output else build_output verbose = opts.verbose ffmpeg = opts.ffmpeg - install_deps = opts.install_deps + install_tooling = opts.install_tooling - build(opts.component) + build(opts.component, opts.bundles) def parse_args(): @@ -39,30 +39,34 @@ def parse_args(): 'component', type=str, nargs='?', default='all', choices=['daemon', 'ui', 'all']) parser.add_argument( '--verbose', action='store_true', help='Verbose build') - parser.add_argument('--install-deps', action='store_true', - help='Install dependencies') parser.add_argument( '--output', action='store', help='Build output directory') parser.add_argument( '--ffmpeg', action='store_true', help='Build with ffmpeg') + parser.add_argument('--install-tooling', + action='store_true', help='Install tooling') + parser.add_argument('--bundles', nargs='+', + help='UI bundles to build') args = parser.parse_args() return args -def build(component: str): +def build(component: str, bundles: List[str] = None): '''Builds the selected component''' clean() create_output_dir() - if component == 'daemon' or component == 'all': - check_daemon_depends() + if component == 'all': + check(install_tooling) build_daemon() - elif component == 'ui' or component == 'all': - check_ui_depends(install_deps) - build_ui() - else: - raise Exception('Unknown component: {}'.format(component)) + build_ui(bundles) + elif component == 'daemon': + check_daemon_tooling(install_tooling) + build_daemon() + elif component == 'ui': + check_ui_tooling() + build_ui(bundles) print('Build complete') @@ -82,10 +86,14 @@ def build_daemon(): store_artifact('mediarepo-daemon/target/release/mediarepo-daemon') -def build_ui(): +def build_ui(bundles: List[str] = None): '''Builds UI''' yarn('install', 'mediarepo-ui') - cargo('tauri build', 'mediarepo-ui') + + if bundles is not None: + cargo('tauri build --bundles ' + ' '.join(bundles), 'mediarepo-ui') + else: + cargo('tauri build ', 'mediarepo-ui') if windows: store_artifact( diff --git a/scripts/check.py b/scripts/check.py index 36374b7..340dde9 100755 --- a/scripts/check.py +++ b/scripts/check.py @@ -10,31 +10,31 @@ windows = os.name == 'nt' def main(): opts = parse_args() - check(opts.install_deps) + check(opts.install) def parse_args(): '''Parses command line arguments''' args = argparse.ArgumentParser(description='Build mediarepo') - args.add_argument('--install-deps', action='store_true', - help='Install dependencies that can be installed automatically') + args.add_argument('--install', action='store_true', + help='Install tools that can be installed automatically') return args.parse_args() -def check(install_deps: bool = False): +def check(install_tooling: bool = False): '''Checks dependencies''' - check_daemon_depends() - check_ui_depends(install_deps) + check_daemon_tooling() + check_ui_tooling(install_tooling) print('All checks passed') -def check_daemon_depends(): +def check_daemon_tooling(): '''Checks dependencies for daemon''' check_exec('clang') check_exec('cargo') -def check_ui_depends(install_deps: bool = False): +def check_ui_tooling(install_tooling: bool = False): '''Checks dependencies for UI''' if not windows: @@ -46,10 +46,10 @@ def check_ui_depends(install_deps: bool = False): check_exec('cargo') check_exec('node') check_exec('npm') - check_yarn(install_deps) - check_ng(install_deps) + check_yarn(install_tooling) + check_ng(install_tooling) - if install_deps: + if install_tooling: install_tauri_cli(tauri_cli_version) diff --git a/scripts/lib.py b/scripts/lib.py index 8e14c02..8721381 100644 --- a/scripts/lib.py +++ b/scripts/lib.py @@ -21,7 +21,7 @@ def check_yarn(install: bool = False): if the install flag is set''' if not check_exec('yarn'): if install: - npm('install yarn') + npm('install -g yarn') else: raise Exception('yarn not found') @@ -54,4 +54,4 @@ def exec(cmd: str, dir: str = None) -> str: '''Executes a command in a given directory''' print('Running: {}'.format(cmd)) child = subprocess.run(cmd, shell=True, cwd=dir) - child.check_returncode() \ No newline at end of file + child.check_returncode()