diff --git a/external-crates/move/crates/move-cli/Cargo.toml b/external-crates/move/crates/move-cli/Cargo.toml index 81e42dd817cda..7299f5ef2e0bd 100644 --- a/external-crates/move/crates/move-cli/Cargo.toml +++ b/external-crates/move/crates/move-cli/Cargo.toml @@ -64,4 +64,4 @@ name = "build_testsuite" harness = false [features] -tiered-gas = [ "move-vm-test-utils/tiered-gas" ] +tiered-gas = ["move-vm-test-utils/tiered-gas"] diff --git a/external-crates/move/crates/move-cli/src/base/new.rs b/external-crates/move/crates/move-cli/src/base/new.rs index 339d8673fd7de..a0e5e3baa1487 100644 --- a/external-crates/move/crates/move-cli/src/base/new.rs +++ b/external-crates/move/crates/move-cli/src/base/new.rs @@ -1,7 +1,9 @@ // Copyright (c) The Move Contributors // SPDX-License-Identifier: Apache-2.0 +use anyhow::anyhow; use clap::*; +use move_core_types::identifier::Identifier; use move_package::source_package::layout::SourcePackageLayout; use std::{ fmt::Display, @@ -47,6 +49,14 @@ impl New { ) -> anyhow::Result<()> { // TODO warn on build config flags let Self { name } = self; + + if !Identifier::is_valid(&name) { + return Err(anyhow!( + "Invalid package name, please use lowercase letters, numbers, and underscores, \ + should start with a lowercase letter" + )); + } + let p: PathBuf; let path: &Path = match path { Some(path) => {