diff --git a/src/main.rs b/src/main.rs index 93e0003..e6737bc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,8 @@ use std::io; use std::num::ParseIntError; +mod pinia; + fn main() { let mut parsed_input: Result; @@ -37,7 +39,7 @@ fn print_options() { } fn install_pinia() { - println!("Installing Pinia..."); + pinia::install(); } fn install_husky() { diff --git a/src/pinia.rs b/src/pinia.rs new file mode 100644 index 0000000..9cb0dc4 --- /dev/null +++ b/src/pinia.rs @@ -0,0 +1,44 @@ +use std::process::Command; + +pub fn install() { + println!("Installing Pinia..."); + + let npm_install = Command::new("npm") + .arg("install") + .arg("pinia") + .spawn(); + + match npm_install { + Ok(mut child) => { + let status = child.wait().expect("Failed to wait for npm install"); + + if status.success() { + let mkdir_status = Command::new("mkdir") + .arg("store") + .status() + .expect("Failed to execute mkdir command"); + + if mkdir_status.success() { + let mv_status = Command::new("mv") + .arg("store.js") + .arg("./store/store.js") + .status() + .expect("Failed to execute mv command"); + + if mv_status.success() { + println!("Pinia successfully installed!"); + } else { + println!("Failed to move store.js. mv command failed."); + } + } else { + println!("Failed to create the 'store' directory. mkdir command failed."); + } + } else { + println!("Failed to install Pinia. npm install command failed."); + } + } + Err(e) => { + println!("Failed to run npm install: {}", e); + } + } +} diff --git a/src/pinia/App.vue b/src/pinia/App.vue new file mode 100644 index 0000000..aa36e1c --- /dev/null +++ b/src/pinia/App.vue @@ -0,0 +1,3 @@ + diff --git a/tmp/pinia/store.js b/tmp/pinia/store.js new file mode 100644 index 0000000..01b656d --- /dev/null +++ b/tmp/pinia/store.js @@ -0,0 +1,4 @@ +import { defineStore } from 'pinia' +export const useAlertsStore = defineStore('alerts', { + // other options... +})