bleh
This commit is contained in:
parent
4ea6801df2
commit
a743cdabe5
|
@ -1,5 +1,8 @@
|
||||||
---
|
---
|
||||||
AlignConsecutiveAssignments: true
|
AlignConsecutiveAssignments: true
|
||||||
|
AllowShortBlocksOnASingleLine: Always
|
||||||
|
AllowShortCompoundRequirementOnASingleLine: true
|
||||||
|
AllowShortIfStatementsOnASingleLine: WithoutElse
|
||||||
AllowShortLoopsOnASingleLine: true
|
AllowShortLoopsOnASingleLine: true
|
||||||
BasedOnStyle: Chromium
|
BasedOnStyle: Chromium
|
||||||
IndentAccessModifiers: false
|
IndentAccessModifiers: false
|
||||||
|
|
26
flake.nix
26
flake.nix
|
@ -63,7 +63,9 @@
|
||||||
glib
|
glib
|
||||||
tomlplusplus
|
tomlplusplus
|
||||||
yyjson
|
yyjson
|
||||||
];
|
]
|
||||||
|
++ linuxPkgs
|
||||||
|
++ darwinPkgs;
|
||||||
|
|
||||||
linuxPkgs = nixpkgs.lib.optionals stdenv.isLinux (with pkgs; [
|
linuxPkgs = nixpkgs.lib.optionals stdenv.isLinux (with pkgs; [
|
||||||
systemdLibs
|
systemdLibs
|
||||||
|
@ -78,7 +80,7 @@
|
||||||
in
|
in
|
||||||
with pkgs; {
|
with pkgs; {
|
||||||
packages = rec {
|
packages = rec {
|
||||||
draconis-cpp = stdenv.mkDerivation {
|
draconisplusplus = stdenv.mkDerivation {
|
||||||
name = "draconis++";
|
name = "draconis++";
|
||||||
version = "0.1.0";
|
version = "0.1.0";
|
||||||
src = self;
|
src = self;
|
||||||
|
@ -89,17 +91,7 @@
|
||||||
pkg-config
|
pkg-config
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
buildInputs = deps;
|
||||||
tomlplusplus
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs =
|
|
||||||
[
|
|
||||||
coost
|
|
||||||
fmt
|
|
||||||
]
|
|
||||||
++ darwinPkgs
|
|
||||||
++ linuxPkgs;
|
|
||||||
|
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
meson setup build
|
meson setup build
|
||||||
|
@ -115,7 +107,7 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
default = draconis-cpp;
|
default = draconisplusplus;
|
||||||
};
|
};
|
||||||
|
|
||||||
formatter = alejandra;
|
formatter = alejandra;
|
||||||
|
@ -126,8 +118,8 @@
|
||||||
alejandra
|
alejandra
|
||||||
bear
|
bear
|
||||||
clang-tools_18
|
clang-tools_18
|
||||||
meson
|
|
||||||
lldb
|
lldb
|
||||||
|
meson
|
||||||
ninja
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
unzip
|
unzip
|
||||||
|
@ -136,9 +128,7 @@
|
||||||
(writeScriptBin "clean" "meson setup build --wipe")
|
(writeScriptBin "clean" "meson setup build --wipe")
|
||||||
(writeScriptBin "run" "meson compile -C build && build/draconis++")
|
(writeScriptBin "run" "meson compile -C build && build/draconis++")
|
||||||
]
|
]
|
||||||
++ deps
|
++ deps;
|
||||||
++ darwinPkgs
|
|
||||||
++ linuxPkgs;
|
|
||||||
|
|
||||||
name = "C++";
|
name = "C++";
|
||||||
};
|
};
|
||||||
|
|
24
meson.build
24
meson.build
|
@ -53,9 +53,7 @@ add_project_arguments(
|
||||||
|
|
||||||
source_file_names = [
|
source_file_names = [
|
||||||
'src/main.cpp',
|
'src/main.cpp',
|
||||||
'src/os/os.h',
|
|
||||||
'src/config/config.cpp',
|
'src/config/config.cpp',
|
||||||
'src/config/config.h',
|
|
||||||
'src/config/weather.cpp'
|
'src/config/weather.cpp'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -66,8 +64,7 @@ endif
|
||||||
if host_machine.system() == 'darwin'
|
if host_machine.system() == 'darwin'
|
||||||
source_file_names += [
|
source_file_names += [
|
||||||
'src/os/macos.cpp',
|
'src/os/macos.cpp',
|
||||||
'src/os/macos/NowPlayingBridge.h',
|
'src/os/macos/now_playing_bridge.mm',
|
||||||
'src/os/macos/NowPlayingBridge.mm'
|
|
||||||
]
|
]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -84,23 +81,10 @@ libcurl = dependency('libcurl', required: false)
|
||||||
tomlpp = dependency('tomlplusplus', required: false)
|
tomlpp = dependency('tomlplusplus', required: false)
|
||||||
yyjson = dependency('yyjson', required: false)
|
yyjson = dependency('yyjson', required: false)
|
||||||
|
|
||||||
if not fmt.found()
|
|
||||||
fmt = cpp.find_library('fmt', required: true)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if not libcurl.found()
|
|
||||||
libcurl = cpp.find_library('curl', required: true)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if not tomlpp.found()
|
|
||||||
tomlpp = cpp.find_library('tomlplusplus', required: true)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if not yyjson.found()
|
|
||||||
yyjson = cpp.find_library('yyjson', required: true)
|
|
||||||
endif
|
|
||||||
|
|
||||||
foreach dep : [fmt, libcurl, tomlpp, yyjson]
|
foreach dep : [fmt, libcurl, tomlpp, yyjson]
|
||||||
|
if not dep.found()
|
||||||
|
dep = cpp.find_library(dep.name(), required: true)
|
||||||
|
endif
|
||||||
deps += dep
|
deps += dep
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,7 @@ Result<WeatherOutput> ReadCacheFromFile() {
|
||||||
const std::string cacheFile = "/tmp/weather_cache.json";
|
const std::string cacheFile = "/tmp/weather_cache.json";
|
||||||
std::ifstream ifs(cacheFile);
|
std::ifstream ifs(cacheFile);
|
||||||
|
|
||||||
if (!ifs.is_open())
|
if (!ifs.is_open()) return Error("Cache file not found.");
|
||||||
return Error("Cache file not found.");
|
|
||||||
|
|
||||||
fmt::println("Reading from cache file...");
|
fmt::println("Reading from cache file...");
|
||||||
|
|
||||||
|
@ -25,9 +24,7 @@ Result<WeatherOutput> ReadCacheFromFile() {
|
||||||
buf << ifs.rdbuf();
|
buf << ifs.rdbuf();
|
||||||
|
|
||||||
val = rfl::json::read<WeatherOutput>(buf.str()).value();
|
val = rfl::json::read<WeatherOutput>(buf.str()).value();
|
||||||
} catch (Error& e) {
|
} catch (Error& e) { return e; }
|
||||||
return e;
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt::println("Successfully read from cache file.");
|
fmt::println("Successfully read from cache file.");
|
||||||
|
|
||||||
|
@ -40,8 +37,7 @@ Result<> WriteCacheToFile(const WeatherOutput& data) {
|
||||||
fmt::println("Writing to cache file...");
|
fmt::println("Writing to cache file...");
|
||||||
std::ofstream ofs(cacheFile);
|
std::ofstream ofs(cacheFile);
|
||||||
|
|
||||||
if (!ofs.is_open())
|
if (!ofs.is_open()) return Error("Failed to open cache file for writing.");
|
||||||
return Error("Failed to open cache file for writing.");
|
|
||||||
|
|
||||||
ofs << rfl::json::write(data);
|
ofs << rfl::json::write(data);
|
||||||
|
|
||||||
|
|
15
src/main.cpp
15
src/main.cpp
|
@ -28,23 +28,16 @@ struct fmt::formatter<BytesToGiB> : formatter<double> {
|
||||||
enum DateNum { Ones, Twos, Threes, Default };
|
enum DateNum { Ones, Twos, Threes, Default };
|
||||||
|
|
||||||
DateNum ParseDate(string const& input) {
|
DateNum ParseDate(string const& input) {
|
||||||
if (input == "1" || input == "21" || input == "31")
|
if (input == "1" || input == "21" || input == "31") return Ones;
|
||||||
return Ones;
|
if (input == "2" || input == "22") return Twos;
|
||||||
|
if (input == "3" || input == "23") return Threes;
|
||||||
if (input == "2" || input == "22")
|
|
||||||
return Twos;
|
|
||||||
|
|
||||||
if (input == "3" || input == "23")
|
|
||||||
return Threes;
|
|
||||||
|
|
||||||
return Default;
|
return Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
const Config& config = Config::getInstance();
|
const Config& config = Config::getInstance();
|
||||||
|
|
||||||
if (config.getNowPlaying().getEnabled())
|
if (config.getNowPlaying().getEnabled()) fmt::println("{}", GetNowPlaying());
|
||||||
fmt::println("{}", GetNowPlaying());
|
|
||||||
|
|
||||||
fmt::println("Hello {}!", config.getGeneral().getName());
|
fmt::println("Hello {}!", config.getGeneral().getName());
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
|
||||||
#include <fmt/core.h>
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <sdbus-c++/sdbus-c++.h>
|
#include <sdbus-c++/sdbus-c++.h>
|
||||||
|
@ -70,8 +69,7 @@ std::vector<std::string> GetMprisPlayers(sdbus::IConnection& connection) {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string GetActivePlayer(const std::vector<std::string>& mprisPlayers) {
|
std::string GetActivePlayer(const std::vector<std::string>& mprisPlayers) {
|
||||||
if (!mprisPlayers.empty())
|
if (!mprisPlayers.empty()) return mprisPlayers.front();
|
||||||
return mprisPlayers.front();
|
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
@ -83,13 +81,11 @@ std::string GetNowPlaying() {
|
||||||
|
|
||||||
std::vector<std::string> mprisPlayers = GetMprisPlayers(*connection);
|
std::vector<std::string> mprisPlayers = GetMprisPlayers(*connection);
|
||||||
|
|
||||||
if (mprisPlayers.empty())
|
if (mprisPlayers.empty()) return "";
|
||||||
return "";
|
|
||||||
|
|
||||||
std::string activePlayer = GetActivePlayer(mprisPlayers);
|
std::string activePlayer = GetActivePlayer(mprisPlayers);
|
||||||
|
|
||||||
if (activePlayer.empty())
|
if (activePlayer.empty()) return "";
|
||||||
return "";
|
|
||||||
|
|
||||||
std::unique_ptr<sdbus::IProxy> playerProxy =
|
std::unique_ptr<sdbus::IProxy> playerProxy =
|
||||||
sdbus::createProxy(*connection, activePlayer, PLAYER_OBJECT_PATH);
|
sdbus::createProxy(*connection, activePlayer, PLAYER_OBJECT_PATH);
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <sys/sysctl.h>
|
#include <sys/sysctl.h>
|
||||||
|
|
||||||
#include "macos/NowPlayingBridge.h"
|
#include "macos/now_playing_bridge.h"
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
|
|
||||||
u64 GetMemInfo() {
|
u64 GetMemInfo() {
|
||||||
uint64_t mem = 0;
|
u64 mem = 0;
|
||||||
size_t size = sizeof(mem);
|
usize size = sizeof(mem);
|
||||||
|
|
||||||
sysctlbyname("hw.memsize", &mem, &size, nullptr, 0);
|
sysctlbyname("hw.memsize", &mem, &size, nullptr, 0);
|
||||||
|
|
||||||
|
@ -16,8 +15,9 @@ u64 GetMemInfo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string GetNowPlaying() {
|
std::string GetNowPlaying() {
|
||||||
if (const char* title = GetCurrentPlayingTitle())
|
if (const char* title = GetCurrentPlayingTitle();
|
||||||
return title;
|
const char* artist = GetCurrentPlayingArtist())
|
||||||
|
return "Now Playing: " + std::string(artist) + " - " + std::string(title);
|
||||||
|
|
||||||
return "No song playing";
|
return "No song playing";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
|
|
||||||
#import "NowPlayingBridge.h"
|
#import "now_playing_bridge.h"
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import <dispatch/dispatch.h>
|
#import <dispatch/dispatch.h>
|
||||||
#import <objc/runtime.h>
|
#import <objc/runtime.h>
|
Loading…
Reference in a new issue