diff options
Diffstat (limited to 'crates/shirabe/src')
| -rw-r--r-- | crates/shirabe/src/command/repository_command.rs | 2 | ||||
| -rw-r--r-- | crates/shirabe/src/config.rs | 6 | ||||
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/rule.rs | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/crates/shirabe/src/command/repository_command.rs b/crates/shirabe/src/command/repository_command.rs index 4cbe08c..c8d99a5 100644 --- a/crates/shirabe/src/command/repository_command.rs +++ b/crates/shirabe/src/command/repository_command.rs @@ -296,7 +296,7 @@ impl Command for RepositoryCommand { })); } let arg1_str = arg1.as_deref().unwrap(); - let repo_config: PhpMixed = if Preg::is_match(r"^\s*\{", arg1_str) { + let repo_config: PhpMixed = if Preg::is_match(r"{^\s*\{}", arg1_str) { JsonFile::parse_json(Some(arg1_str), None)? } else { if arg2.is_none() { diff --git a/crates/shirabe/src/config.rs b/crates/shirabe/src/config.rs index 68cad87..b3eb47d 100644 --- a/crates/shirabe/src/config.rs +++ b/crates/shirabe/src/config.rs @@ -451,6 +451,12 @@ impl Config { .collect(); let new_repos_map: IndexMap<String, PhpMixed> = match &repositories_section { PhpMixed::Array(m) => m.iter().map(|(k, v)| (k.clone(), v.clone())).collect(), + // A JSON array decodes to a List; in PHP it is an array with integer keys. + PhpMixed::List(items) => items + .iter() + .enumerate() + .map(|(i, v)| (i.to_string(), v.clone())) + .collect(), _ => IndexMap::new(), }; let new_repos: IndexMap<String, PhpMixed> = new_repos_map.into_iter().rev().collect(); diff --git a/crates/shirabe/src/dependency_resolver/rule.rs b/crates/shirabe/src/dependency_resolver/rule.rs index ef39513..bc6fd95 100644 --- a/crates/shirabe/src/dependency_resolver/rule.rs +++ b/crates/shirabe/src/dependency_resolver/rule.rs @@ -23,11 +23,11 @@ use crate::dependency_resolver::RuleSet; use crate::package::AliasPackage; use crate::package::BasePackage; use crate::package::BasePackageHandle; -use crate::repository::RepositoryInterface; use crate::package::Link; use crate::package::PackageInterface; use crate::package::version::VersionParser; use crate::repository::PlatformRepository; +use crate::repository::RepositoryInterface; use crate::repository::RepositorySet; #[derive(Debug)] |
