Skip to content
Snippets Groups Projects
Commit 64d5c17c authored by Fabricio Silva's avatar Fabricio Silva :thumbsup: Committed by Kevin Daudt
Browse files

testing/fnm: new aport

parent 7b071981
No related branches found
No related tags found
1 merge request!67994testing/fnm: new aport
Pipeline #245218 skipped
# Contributor: Fabricio Silva <hi@fabricio.dev>
# Maintainer: Fabricio Silva <hi@fabricio.dev>
pkgname=fnm
pkgver=1.37.1
pkgrel=0
pkgdesc="Fast and simple Node.js version manager, built in Rust"
url="https://github.com/Schniz/fnm"
license="GPL-3.0-or-later"
arch="x86_64" # unofficial does only musl for x86_64
makedepends="cargo cargo-auditable"
checkdepends="bash procps-ng"
subpackages="
$pkgname-bash-completion
$pkgname-fish-completion
$pkgname-zsh-completion
"
install="$pkgname.post-install"
source="https://github.com/Schniz/fnm/archive/v$pkgver/fnm-$pkgver.tar.gz
mirror.patch
musl.patch
"
options="net" # Required to download Rust crates
export CARGO_PROFILE_RELEASE_OPT_LEVEL="z"
prepare() {
default_prepare
cargo fetch --target="$CTARGET" --locked
}
build() {
cargo auditable build --release --frozen
for i in bash fish zsh; do
./target/release/fnm completions --shell $i > fnm-completions.$i
done
}
check() {
cargo test --frozen
}
package() {
install -Dm755 target/release/fnm -t "$pkgdir"/usr/bin/
install -Dm644 fnm-completions.bash "$pkgdir"/usr/share/bash-completion/completions/fnm
install -Dm644 fnm-completions.fish "$pkgdir"/usr/share/fish/vendor_completions.d/fnm.fish
install -Dm644 fnm-completions.zsh "$pkgdir"/usr/share/zsh/site-functions/_fnm
}
sha512sums="
2714f3e35e5b9fccd71d6c6ee718c1377e56d65338bc11c47283756607613742cec5ac9370ae1f8148d91bfff9b10dad6793ff7322192f031d975e2abb528924 fnm-1.37.1.tar.gz
cb9cca0c287798d6b75eb49e31beb80de083b77f0b80d5d0450a3c789f9b2020842a587fa5cb4586c518748a9f7ddd004fc06873b71fbe40b11ec5339229a503 mirror.patch
c09cff7e16fffbd25ef271f04be34f50b4a0496dd4ff03c0484fae0e841039b7d063129cfcf679c0d629952ce9b23722398a5e55b93d3f827cbbc6bca205bbdb musl.patch
"
#!/bin/sh
cat >&2 <<EOF
*
* To finish setup, add the following code to your shell profile (.bashrc or .zshrc)
* eval "\$(fnm env)"
*
EOF
exit 0
Get pre-built from https://unofficial-builds.nodejs.org (only provides x64)
diff --git a/src/config.rs b/src/config.rs
index df65675..6e2dba9 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -11,7 +11,7 @@ pub struct FnmConfig {
#[clap(
long,
env = "FNM_NODE_DIST_MIRROR",
- default_value = "https://nodejs.org/dist",
+ default_value = "https://unofficial-builds.nodejs.org/download/release",
global = true,
hide_env_values = true
)]
@@ -95,7 +95,7 @@ pub struct FnmConfig {
impl Default for FnmConfig {
fn default() -> Self {
Self {
- node_dist_mirror: Url::parse("https://nodejs.org/dist/").unwrap(),
+ node_dist_mirror: Url::parse("https://unofficial-builds.nodejs.org/download/release").unwrap(),
base_dir: None,
multishell_path: None,
log_level: LogLevel::Info,
diff --git a/src/downloader.rs b/src/downloader.rs
index a020f57..bcd98c6 100644
--- a/src/downloader.rs
+++ b/src/downloader.rs
@@ -178,7 +178,7 @@ mod tests {
fn install_in(path: &Path) -> PathBuf {
let version = Version::parse("12.0.0").unwrap();
let arch = Arch::X64;
- let node_dist_mirror = Url::parse("https://nodejs.org/dist/").unwrap();
+ let node_dist_mirror = Url::parse("https://unofficial-builds.nodejs.org/download/release").unwrap();
install_node_dist(&version, &node_dist_mirror, path, &arch, false)
.expect("Can't install Node 12");
Return x64-musl for x64
diff --git a/src/arch.rs b/src/arch.rs
index b1ed941..f58671d 100644
--- a/src/arch.rs
+++ b/src/arch.rs
@@ -43,7 +43,7 @@ impl std::str::FromStr for Arch {
fn from_str(s: &str) -> Result<Arch, Self::Err> {
match s {
"x86" => Ok(Arch::X86),
- "x64" => Ok(Arch::X64),
+ "x64" => Ok(Arch::X64Musl),
"x64-musl" => Ok(Arch::X64Musl),
"arm64" => Ok(Arch::Arm64),
"armv7l" => Ok(Arch::Armv7l),
@@ -59,7 +59,7 @@ impl std::fmt::Display for Arch {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let arch_str = match self {
Arch::X86 => String::from("x86"),
- Arch::X64 => String::from("x64"),
+ Arch::X64 => String::from("x64-musl"),
Arch::X64Musl => String::from("x64-musl"),
Arch::Arm64 => String::from("arm64"),
Arch::Armv7l => String::from("armv7l"),
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment