target = $(shell rustc -vV | grep host | awk '{print $$2}')
architectures := x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu
app_name := lrc
+long_app_name := lyricli
default: build
endif
deb: build
+ifeq ($(findstring linux,$(target)),linux)
@$(eval filename := $(app_name)-$(target)-$(channel))
@export $$(cat .env | xargs) > /dev/null 2>&1 && cargo deb --profile $(profile) --target $(target)
mv target/$(target)/debian/*.deb $(filename).deb
sha256sum $(filename).deb > $(filename).deb.sha256
- rsync -avz $(filename).deb deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(app_name)
- rsync -avz $(filename).deb.sha256 deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(app_name)
+ rsync -avz $(filename).deb deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(long_app_name)
+ rsync -avz $(filename).deb.sha256 deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(long_app_name)
+endif
rpm: build
+ifeq ($(findstring linux,$(target)),linux)
@$(eval filename := $(app_name)-$(target)-$(channel))
@export $$(cat .env | xargs) > /dev/null 2>&1 && cargo generate-rpm --profile $(profile) --target $(target)
mv target/$(target)/generate-rpm/*.rpm $(filename).rpm
sha256sum $(filename).rpm > $(filename).rpm.sha256
- rsync -avz $(filename).rpm deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(app_name)
- rsync -avz $(filename).rpm.sha256 deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(app_name)
+ rsync -avz $(filename).rpm deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(long_app_name)
+ rsync -avz $(filename).rpm.sha256 deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(long_app_name)
+endif
tar: build
@$(eval filename := $(app_name)-$(target)-$(channel))
tar -czvf $(filename).tar.gz -C target/$(target)/$(profile)/ $(app_name)
sha256sum $(filename).tar.gz > $(filename).tar.gz.sha256
- rsync -avz $(filename).tar.gz deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(app_name)
- rsync -avz $(filename).tar.gz.sha256 deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(app_name)
+ rsync -avz $(filename).tar.gz deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(long_app_name)
+ rsync -avz $(filename).tar.gz.sha256 deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(long_app_name)
package: $(architectures)
+mac:
+override architectures := x86_64-apple-darwin aarch64-apple-darwin
+ifeq ($(tag),)
+ $(MAKE) -e profile=release -e architectures='$(architectures)' -e channel=unstable package
+else
+ $(MAKE) -e profile=release -e architectures='$(architectures)' -e channel=$(tag) package
+endif
+
+
ci:
ifeq ($(GIT_REF),refs/heads/main)
$(MAKE) -e profile=release -e channel=unstable package
use std::ffi::CStr;
use std::io::Result;
-use cocoa::{base::nil, foundation::NSString};
-use objc::{class, msg_send, sel, sel_impl, runtime::Object};
+use cocoa::{base::{nil, id}, foundation::NSString};
+use objc::{class, msg_send, sel, sel_impl, runtime::{Class, Object}};
use objc_id::Id;
use crate::Track;
let app: Id<Object> = {
let cls = class!(SBApplication);
let bundle_identifier = NSString::alloc(nil).init_str("com.apple.Music");
- let app: *mut Object = msg_send![cls, applicationWithBundleIdentifier:bundle_identifier];
- Id::from_ptr(app)
+
+ let workspace_class = Class::get("NSWorkspace").unwrap();
+ let shared_workspace: id = msg_send![workspace_class, sharedWorkspace];
+ let app_url: id = msg_send![shared_workspace, URLForApplicationWithBundleIdentifier:bundle_identifier];
+
+ if app_url != nil {
+ let app: *mut Object = msg_send![cls, applicationWithBundleIdentifier:bundle_identifier];
+ Id::from_ptr(app)
+ } else {
+ return None
+ }
};
if msg_send![app, isRunning] {
use std::ffi::CStr;
use std::io::Result;
-use cocoa::{base::nil, foundation::NSString};
-use objc::{class, msg_send, sel, sel_impl, runtime::Object};
+use cocoa::{base::{nil, id}, foundation::NSString};
+use objc::{class, msg_send, sel, sel_impl, runtime::{Class, Object}};
use objc_id::Id;
use crate::Track;
let app: Id<Object> = {
let cls = class!(SBApplication);
let bundle_identifier = NSString::alloc(nil).init_str("com.spotify.Client");
- let app: *mut Object = msg_send![cls, applicationWithBundleIdentifier:bundle_identifier];
- Id::from_ptr(app)
+
+ let workspace_class = Class::get("NSWorkspace").unwrap();
+ let shared_workspace: id = msg_send![workspace_class, sharedWorkspace];
+ let app_url: id = msg_send![shared_workspace, URLForApplicationWithBundleIdentifier:bundle_identifier];
+
+ if app_url != nil {
+ let app: *mut Object = msg_send![cls, applicationWithBundleIdentifier:bundle_identifier];
+ Id::from_ptr(app)
+ } else {
+ return None
+ }
};
if msg_send![app, isRunning] {