@@ -19,6 +19,7 @@ use file_rotate::suffix::{AppendTimestamp, FileLimit};
1919use file_rotate:: { ContentLimit , FileRotate , TimeFrequency } ;
2020use log:: { debug, error, info, LevelFilter } ;
2121use simplelog:: { ColorChoice , CombinedLogger , TermLogger , TerminalMode , WriteLogger } ;
22+ use std:: path:: PathBuf ;
2223use std:: sync:: Arc ;
2324use std:: time:: Duration ;
2425use sysinfo:: { ProcessRefreshKind , RefreshKind , System , SystemExt } ;
@@ -83,6 +84,7 @@ impl VrChatActivity {
8384async fn run_plugins (
8485 subsys : SubsystemHandle ,
8586 config : Arc < Config > ,
87+ data_dir : PathBuf ,
8688 receiver_tx : broadcast:: Sender < OscMessage > ,
8789 sender_tx : mpsc:: Sender < OscMessage > ,
8890) -> Result < ( ) > {
@@ -99,7 +101,7 @@ async fn run_plugins(
99101 let sender_tx = sender_tx. clone ( ) ;
100102 let receiver_rx = receiver_tx. subscribe ( ) ;
101103 subsys. start ( "PluginPiShock" , |subsys| {
102- plugins:: pishock:: PiShock :: new ( sender_tx, receiver_rx, config) . run ( subsys)
104+ plugins:: pishock:: PiShock :: new ( sender_tx, receiver_rx, config, data_dir ) . run ( subsys)
103105 } ) ;
104106 }
105107
@@ -110,6 +112,7 @@ async fn run_plugins(
110112struct Launcher {
111113 rx : mpsc:: Receiver < bool > ,
112114 config : Arc < Config > ,
115+ data_dir : PathBuf ,
113116 receiver_tx : broadcast:: Sender < OscMessage > ,
114117 sender_tx : mpsc:: Sender < OscMessage > ,
115118 dark_mode_icons : bool ,
@@ -119,13 +122,15 @@ impl Launcher {
119122 fn new (
120123 rx : mpsc:: Receiver < bool > ,
121124 config : Arc < Config > ,
125+ data_dir : PathBuf ,
122126 receiver_tx : broadcast:: Sender < OscMessage > ,
123127 sender_tx : mpsc:: Sender < OscMessage > ,
124128 dark_mode_icons : bool ,
125129 ) -> Self {
126130 Self {
127131 rx,
128132 config,
133+ data_dir,
129134 receiver_tx,
130135 sender_tx,
131136 dark_mode_icons,
@@ -151,9 +156,10 @@ impl Launcher {
151156 let config = self . config. clone( ) ;
152157 let receiver_tx = self . receiver_tx. clone( ) ;
153158 let sender_tx = self . sender_tx. clone( ) ;
159+ let data_dir = self . data_dir. clone( ) ;
154160
155161 maybe_plugin_subsys = Some ( subsys. start( "Plugins" , move |subsys| {
156- run_plugins( subsys, config, receiver_tx, sender_tx)
162+ run_plugins( subsys, config, data_dir , receiver_tx, sender_tx)
157163 } ) ) ;
158164 }
159165 }
@@ -171,9 +177,10 @@ impl Launcher {
171177 let config = self . config. clone( ) ;
172178 let receiver_tx = self . receiver_tx. clone( ) ;
173179 let sender_tx = self . sender_tx. clone( ) ;
180+ let data_dir = self . data_dir. clone( ) ;
174181
175182 maybe_plugin_subsys = Some ( subsys. start( "Plugins" , move |subsys| {
176- run_plugins( subsys, config, receiver_tx, sender_tx)
183+ run_plugins( subsys, config, data_dir , receiver_tx, sender_tx)
177184 } ) ) ;
178185 }
179186 } else if !vrchat_running {
@@ -226,8 +233,8 @@ async fn main() -> Result<()> {
226233 let args = Args :: parse ( ) ;
227234
228235 let base_dirs = BaseDirs :: new ( ) . context ( "Base directories not available" ) ?;
229- let data_dir = base_dirs. data_dir ( ) ;
230- let log_dir = data_dir. join ( "vrc-osc-manager/ logs/log" ) ;
236+ let data_dir = base_dirs. data_dir ( ) . join ( "vrc-osc-manager" ) ;
237+ let log_dir = data_dir. join ( "logs/log" ) ;
231238
232239 let log_file = FileRotate :: new (
233240 log_dir,
@@ -274,6 +281,7 @@ async fn main() -> Result<()> {
274281 Launcher :: new (
275282 rx,
276283 config,
284+ data_dir,
277285 launcher_receiver_tx,
278286 sender_tx,
279287 args. dark_mode_icons ,
0 commit comments