hotfix(publish): Move install module and asset_map to main zellij package. publish should hopefully work now.
This commit is contained in:
parent
1e5c688ed9
commit
cb3072066d
7 changed files with 53 additions and 51 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
42
src/install.rs
Normal file
42
src/install.rs
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
use std::fs;
|
||||
use std::path::Path;
|
||||
use zellij_utils::{consts::VERSION, shared::set_permissions};
|
||||
|
||||
macro_rules! asset_map {
|
||||
($($src:literal => $dst:literal),+ $(,)?) => {
|
||||
{
|
||||
let mut assets = std::collections::HashMap::new();
|
||||
$(
|
||||
assets.insert($dst, include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/", $src)).to_vec());
|
||||
)+
|
||||
assets
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn populate_data_dir(data_dir: &Path) {
|
||||
// First run installation of default plugins & layouts
|
||||
let mut assets = asset_map! {
|
||||
"assets/layouts/default.yaml" => "layouts/default.yaml",
|
||||
"assets/layouts/strider.yaml" => "layouts/strider.yaml",
|
||||
};
|
||||
assets.extend(asset_map! {
|
||||
"assets/plugins/status-bar.wasm" => "plugins/status-bar.wasm",
|
||||
"assets/plugins/tab-bar.wasm" => "plugins/tab-bar.wasm",
|
||||
"assets/plugins/strider.wasm" => "plugins/strider.wasm",
|
||||
});
|
||||
assets.insert("VERSION", VERSION.as_bytes().to_vec());
|
||||
|
||||
let last_version = fs::read_to_string(data_dir.join("VERSION")).unwrap_or_default();
|
||||
let out_of_date = VERSION != last_version;
|
||||
|
||||
for (path, bytes) in assets {
|
||||
let path = data_dir.join(path);
|
||||
let parent_path = path.parent().unwrap();
|
||||
fs::create_dir_all(parent_path).unwrap();
|
||||
set_permissions(parent_path).unwrap();
|
||||
if out_of_date || !path.exists() {
|
||||
fs::write(path, bytes).expect("Failed to install default assets!");
|
||||
}
|
||||
}
|
||||
}
|
||||
10
src/main.rs
10
src/main.rs
|
|
@ -1,7 +1,9 @@
|
|||
mod install;
|
||||
mod sessions;
|
||||
#[cfg(test)]
|
||||
mod tests;
|
||||
|
||||
use crate::install::populate_data_dir;
|
||||
use sessions::{assert_session, assert_session_ne, list_sessions};
|
||||
use std::convert::TryFrom;
|
||||
use std::process;
|
||||
|
|
@ -12,7 +14,7 @@ use zellij_utils::{
|
|||
consts::{ZELLIJ_TMP_DIR, ZELLIJ_TMP_LOG_DIR},
|
||||
input::config::Config,
|
||||
logging::*,
|
||||
setup::Setup,
|
||||
setup::{get_default_data_dir, Setup},
|
||||
structopt::StructOpt,
|
||||
};
|
||||
|
||||
|
|
@ -69,6 +71,12 @@ pub fn main() {
|
|||
.clone()
|
||||
.unwrap_or_else(|| names::Generator::default().next().unwrap());
|
||||
assert_session_ne(&session_name);
|
||||
// Determine and initialize the data directory
|
||||
let data_dir = opts.data_dir.clone().unwrap_or_else(get_default_data_dir);
|
||||
|
||||
#[cfg(not(disable_automatic_asset_installation))]
|
||||
populate_data_dir(&data_dir);
|
||||
|
||||
start_client(
|
||||
Box::new(os_input),
|
||||
opts,
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ use zellij_utils::{
|
|||
errors::{ContextType, ErrorInstruction, ServerContext},
|
||||
input::{get_mode_info, options::Options},
|
||||
ipc::{ClientAttributes, ClientToServerMsg, ExitReason, ServerToClientMsg},
|
||||
setup::{get_default_data_dir, install::populate_data_dir},
|
||||
setup::get_default_data_dir,
|
||||
};
|
||||
|
||||
/// Instructions related to server-side application
|
||||
|
|
@ -312,9 +312,6 @@ fn init_session(
|
|||
// Determine and initialize the data directory
|
||||
let data_dir = opts.data_dir.unwrap_or_else(get_default_data_dir);
|
||||
|
||||
#[cfg(not(disable_automatic_asset_installation))]
|
||||
populate_data_dir(&data_dir);
|
||||
|
||||
let capabilities = PluginCapabilities {
|
||||
arrow_fonts: config_options.simplified_ui,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,61 +2,16 @@ use crate::cli::CliArgs;
|
|||
use crate::consts::{
|
||||
FEATURES, SYSTEM_DEFAULT_CONFIG_DIR, SYSTEM_DEFAULT_DATA_DIR_PREFIX, VERSION, ZELLIJ_PROJ_DIR,
|
||||
};
|
||||
use crate::shared::set_permissions;
|
||||
use directories_next::BaseDirs;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::io::Write;
|
||||
use std::{fs, path::Path, path::PathBuf};
|
||||
use std::{path::Path, path::PathBuf};
|
||||
use structopt::StructOpt;
|
||||
|
||||
const CONFIG_LOCATION: &str = ".config/zellij";
|
||||
const CONFIG_NAME: &str = "config.yaml";
|
||||
static ARROW_SEPARATOR: &str = "";
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! asset_map {
|
||||
($($src:literal => $dst:literal),+ $(,)?) => {
|
||||
{
|
||||
let mut assets = std::collections::HashMap::new();
|
||||
$(
|
||||
assets.insert($dst, include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/", $src)).to_vec());
|
||||
)+
|
||||
assets
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub mod install {
|
||||
use super::*;
|
||||
|
||||
pub fn populate_data_dir(data_dir: &Path) {
|
||||
// First run installation of default plugins & layouts
|
||||
let mut assets = asset_map! {
|
||||
"../assets/layouts/default.yaml" => "layouts/default.yaml",
|
||||
"../assets/layouts/strider.yaml" => "layouts/strider.yaml",
|
||||
};
|
||||
assets.extend(asset_map! {
|
||||
"../assets/plugins/status-bar.wasm" => "plugins/status-bar.wasm",
|
||||
"../assets/plugins/tab-bar.wasm" => "plugins/tab-bar.wasm",
|
||||
"../assets/plugins/strider.wasm" => "plugins/strider.wasm",
|
||||
});
|
||||
assets.insert("VERSION", VERSION.as_bytes().to_vec());
|
||||
|
||||
let last_version = fs::read_to_string(data_dir.join("VERSION")).unwrap_or_default();
|
||||
let out_of_date = VERSION != last_version;
|
||||
|
||||
for (path, bytes) in assets {
|
||||
let path = data_dir.join(path);
|
||||
let parent_path = path.parent().unwrap();
|
||||
fs::create_dir_all(parent_path).unwrap();
|
||||
set_permissions(parent_path).unwrap();
|
||||
if out_of_date || !path.exists() {
|
||||
fs::write(path, bytes).expect("Failed to install default assets!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(any(feature = "test", test)))]
|
||||
/// Goes through a predefined list and checks for an already
|
||||
/// existing config directory, returns the first match
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue