From e9e3acf58a67d45e82459d2ea3336823c2d0aa5d Mon Sep 17 00:00:00 2001 From: Igor Katson Date: Wed, 28 Aug 2024 00:44:04 +0100 Subject: [PATCH] Rename persistence-config to persistence-location + makefile tweaks --- Makefile | 57 +++++++++++++++++----------------------- crates/rqbit/src/main.rs | 10 ++++--- 2 files changed, 31 insertions(+), 36 deletions(-) diff --git a/Makefile b/Makefile index db284da..3134442 100644 --- a/Makefile +++ b/Makefile @@ -15,32 +15,33 @@ webui-build: webui-deps cd crates/librqbit/webui && \ npm run build -@PHONY: devserver -devserver: - echo -n '' > /tmp/rqbit-log && CORS_ALLOW_REGEXP=".*" \ - cargo run -- \ - --log-file /tmp/rqbit-log \ - --log-file-rust-log=debug,librqbit=trace,upnp_serve=trace \ - --http-api-listen-addr 0.0.0.0:3030 \ - --upnp-server-hostname "$(shell hostname)" \ - --upnp-server-friendly-name rqbit-dev \ - server start /tmp/scratch/ +# NOTE: on LG TV using hostname is unstable for some reason, use IP address. +export RQBIT_UPNP_SERVER_HOSTNAME ?= $(shell hostname) +export RQBIT_UPNP_SERVER_FRIENDLY_NAME ?= rqbit-dev +export RQBIT_HTTP_API_LISTEN_ADDR ?= 0.0.0.0:3030 +RQBIT_OUTPUT_FOLDER ?= /tmp/scratch +RQBIT_POSTGRES_CONNECTION_STRING ?= postgres:///rqbit @PHONY: devserver-release devserver-profile: - cargo run --release -- \ - --http-api-listen-addr 0.0.0.0:3030 \ - --upnp-server-hostname "$(shell hostname)" \ - --upnp-server-friendly-name rqbit-dev \ - server start /tmp/scratch/ + cargo run --release -- server start $(RQBIT_OUTPUT_FOLDER) + +# DEV variables (that's why defined after devserver-profile) +export RQBIT_LOG_FILE ?= /tmp/rqbit-log +export RQBIT_LOG_FILE_RUST_LOG ?= debug,librqbit=trace,upnp_serve=trace +export CORS_ALLOW_REGEXP ?= '.*' + +@PHONY: devserver +devserver: + echo -n '' > /tmp/rqbit-log && \ + cargo run -- \ + server start $(RQBIT_OUTPUT_FOLDER) @PHONY: devserver devserver-postgres: - echo -n '' > /tmp/rqbit-log && CORS_ALLOW_REGEXP=".*" \ - cargo run -- \ - --log-file /tmp/rqbit-log \ - --log-file-rust-log=debug,librqbit=trace \ - server start --fastresume --persistence-config postgres:///rqbit /tmp/scratch/ + echo -n '' > /tmp/rqbit-log && \ + cargo run -- \ + server start --fastresume --persistence-location $(RQBIT_POSTGRES_CONNECTION_STRING) $(RQBIT_OUTPUT_FOLDER) @PHONY: clean clean: @@ -64,10 +65,6 @@ install: build-release $(MAKE) sign-release install target/release/rqbit "$(HOME)/bin/" -@PHONY: test -test: - ulimit -n unlimited && cargo test - @PHONY: release-macos-universal release-macos-universal: cargo build --target aarch64-apple-darwin --profile release-github @@ -78,12 +75,6 @@ release-macos-universal: -create \ -output ./target/x86_64-apple-darwin/release-github/rqbit-osx-universal -@PHONY: release-windows -release-windows: - # prereqs: - # brew install mingw-w64 - cargo build --target x86_64-pc-windows-gnu --profile release-github - @PHONY: release-linux-current-target release-linux-current-target: CC_$(TARGET_SNAKE_CASE)=$(CROSS_COMPILE_PREFIX)-gcc \ @@ -103,6 +94,9 @@ release-linux-x86_64: CROSS_COMPILE_PREFIX=x86_64-unknown-linux-musl \ $(MAKE) release-linux-current-target +@PHONY: docker-build-prereqs +docker-build-prereqs: release-linux-aarch64 release-linux-x86_64 release-linux-armv7 + @PHONY: create-target-docker create-target-docker: mkdir -p target/docker/linux/amd64 target/docker/linux/arm64 target/docker/linux/arm/v7 && \ @@ -111,9 +105,6 @@ create-target-docker: cp -lf target/armv7-unknown-linux-musleabihf/release-github/rqbit target/docker/linux/arm/v7/rqbit && \ cp docker/Dockerfile target/Docker -@PHONE: docker-build-prereqs -docker-build-prereqs: release-linux-aarch64 release-linux-x86_64 release-linux-armv7 - @PHONY: docker-build docker-build: create-target-docker docker build \ diff --git a/crates/rqbit/src/main.rs b/crates/rqbit/src/main.rs index 00d53ce..619b90d 100644 --- a/crates/rqbit/src/main.rs +++ b/crates/rqbit/src/main.rs @@ -215,8 +215,12 @@ struct ServerStartOptions { disable_persistence: bool, /// The folder to store session data in. By default uses OS specific folder. - #[arg(long = "persistence-config", env = "RQBIT_SESSION_PERSISTENCE_FOLDER")] - persistence_config: Option, + /// If starts with postgres://, will use postgres as the backend instead of JSON file. + #[arg( + long = "persistence-location", + env = "RQBIT_SESSION_PERSISTENCE_LOCATION" + )] + persistence_location: Option, /// [Experimental] if set, will try to resume quickly after restart and skip checksumming. #[arg(long = "fastresume", env = "RQBIT_FASTRESUME")] @@ -505,7 +509,7 @@ async fn async_main(opts: Opts, cancel: CancellationToken) -> anyhow::Result<()> SubCommand::Server(server_opts) => match &server_opts.subcommand { ServerSubcommand::Start(start_opts) => { if !start_opts.disable_persistence { - if let Some(p) = start_opts.persistence_config.as_ref() { + if let Some(p) = start_opts.persistence_location.as_ref() { if p.starts_with("postgres://") { #[cfg(feature = "postgres")] {