Skip to content

Commit

Permalink
Merge branch 'main' into fix/create-directories
Browse files Browse the repository at this point in the history
  • Loading branch information
simonsan authored Nov 18, 2024
2 parents 8f78c33 + 064ee26 commit f9b771a
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 14 deletions.
33 changes: 21 additions & 12 deletions .github/workflows/ci-heavy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -174,11 +174,12 @@ jobs:
target: x86_64-pc-windows-msvc
architecture: x86_64
use-cross: false
- os: windows-latest
os-name: windows
target: x86_64-pc-windows-gnu
architecture: x86_64
use-cross: false
# FIXME: `aws-lc-sys` doesn't cross compile
# - os: windows-latest
# os-name: windows
# target: x86_64-pc-windows-gnu
# architecture: x86_64
# use-cross: false
- os: macos-13
os-name: macos
target: x86_64-apple-darwin
Expand Down Expand Up @@ -209,16 +210,24 @@ jobs:
target: i686-unknown-linux-gnu
architecture: i686
use-cross: true
- os: ubuntu-latest
os-name: netbsd
target: x86_64-unknown-netbsd
architecture: x86_64
use-cross: true
# Check because of Container images for rustic-rs
- os: ubuntu-latest
os-name: linux
target: armv7-unknown-linux-gnueabihf
architecture: armv7
target: aarch64-unknown-linux-musl
architecture: arm64
use-cross: true
# FIXME: `aws-lc-sys` doesn't cross compile
# - os: ubuntu-latest
# os-name: netbsd
# target: x86_64-unknown-netbsd
# architecture: x86_64
# use-cross: true
# FIXME: `aws-lc-sys` doesn't cross compile
# - os: ubuntu-latest
# os-name: linux
# target: armv7-unknown-linux-gnueabihf
# architecture: armv7
# use-cross: true

steps:
- name: Checkout repository
Expand Down
5 changes: 5 additions & 0 deletions build-dependencies.just
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,8 @@
install-default-x86_64-unknown-linux-musl:
sudo apt-get update
sudo apt-get install -y musl-tools

# Install dependencies for the default feature on aarch64-unknown-linux-musl
install-default-aarch64-unknown-linux-musl:
sudo apt-get update
sudo apt-get install -y musl-tools
26 changes: 24 additions & 2 deletions crates/core/src/repository.rs
Original file line number Diff line number Diff line change
Expand Up @@ -418,8 +418,25 @@ impl<P, S> Repository<P, S> {
///
/// The id of the config file or `None` if no config file is found
pub fn config_id(&self) -> RusticResult<Option<ConfigId>> {
let config_ids = self.be.list(FileType::Config)?;
self.config_id_with_backend(&self.be)
}

/// Returns the Id of the config file corresponding to a specific backend.
///
/// # Errors
///
/// * If listing the repository config file failed
/// * If there is more than one repository config file.
///
/// # Arguments
///
/// * `be` - The backend to use
///
/// # Returns
///
/// The id of the config file or `None` if no config file is found
fn config_id_with_backend(&self, be: &dyn WriteBackend) -> RusticResult<Option<ConfigId>> {
let config_ids = be.list(FileType::Config)?;
match config_ids.len() {
1 => Ok(Some(ConfigId::from(config_ids[0]))),
0 => Ok(None),
Expand Down Expand Up @@ -574,7 +591,12 @@ impl<P, S> Repository<P, S> {
key_opts: &KeyOptions,
config_opts: &ConfigOptions,
) -> RusticResult<Repository<P, OpenStatus>> {
if self.config_id()?.is_some() {
let config_exists = self.config_id_with_backend(&self.be)?.is_some();
let hot_config_exists = match self.be_hot {
None => false,
Some(ref be) => self.config_id_with_backend(be)?.is_some(),
};
if config_exists || hot_config_exists {
return Err(RusticError::new(
ErrorKind::Configuration,
"Config file already exists for `{name}`. Please check the repository.",
Expand Down

0 comments on commit f9b771a

Please sign in to comment.