mirror of
https://github.com/erlef/setup-beam.git
synced 2026-07-23 07:06:07 +00:00
Have rebar3.cmd work on a Windows CMD shell (#151)
* Provide a working rebar.cmd for system that need it (Windows on non-PowerShell) * Add tests for recent changes If the "run" were to fail the job would too * Check if Rust can find it
This commit is contained in:
committed by
GitHub
parent
b980a5ac9b
commit
35850967ef
@@ -70,6 +70,17 @@ jobs:
|
|||||||
if: ${{matrix.combo.gleam-version}}
|
if: ${{matrix.combo.gleam-version}}
|
||||||
- name: rebar3 version (action)
|
- name: rebar3 version (action)
|
||||||
run: echo "rebar3 ${{steps.setup-beam.outputs.rebar3-version}}"
|
run: echo "rebar3 ${{steps.setup-beam.outputs.rebar3-version}}"
|
||||||
|
- name: Run rebar3 and rebar3.cmd
|
||||||
|
run: |
|
||||||
|
# Should not fail
|
||||||
|
rebar3 version
|
||||||
|
rebar3.cmd version
|
||||||
|
if: ${{matrix.combo.rebar3-version}}
|
||||||
|
- name: rebar3 from Rust
|
||||||
|
run: |
|
||||||
|
cd test-projects/rust_rebar3_cmd
|
||||||
|
cargo test -- --nocapture
|
||||||
|
if: ${{matrix.combo.rebar3-version}}
|
||||||
- name: mix version and help (CLI)
|
- name: mix version and help (CLI)
|
||||||
run: |
|
run: |
|
||||||
mix -v
|
mix -v
|
||||||
|
|||||||
Vendored
+3
-1
@@ -7,6 +7,7 @@ Set-Location ${Env:RUNNER_TEMP}
|
|||||||
$FILE_INPUT="rebar3"
|
$FILE_INPUT="rebar3"
|
||||||
$FILE_OUTPUT="rebar3"
|
$FILE_OUTPUT="rebar3"
|
||||||
$FILE_OUTPUT_PS1="rebar3.ps1"
|
$FILE_OUTPUT_PS1="rebar3.ps1"
|
||||||
|
$FILE_OUTPUT_CMD="rebar3.cmd"
|
||||||
$DIR_FOR_BIN=".setup-beam/rebar3"
|
$DIR_FOR_BIN=".setup-beam/rebar3"
|
||||||
|
|
||||||
$ProgressPreference="SilentlyContinue"
|
$ProgressPreference="SilentlyContinue"
|
||||||
@@ -22,8 +23,9 @@ $ProgressPreference="Continue"
|
|||||||
New-Item "${DIR_FOR_BIN}/bin" -ItemType Directory | Out-Null
|
New-Item "${DIR_FOR_BIN}/bin" -ItemType Directory | Out-Null
|
||||||
Move-Item "${FILE_OUTPUT}" "${DIR_FOR_BIN}/bin"
|
Move-Item "${FILE_OUTPUT}" "${DIR_FOR_BIN}/bin"
|
||||||
Write-Output "& escript.exe ${PWD}/${DIR_FOR_BIN}/bin/${FILE_OUTPUT} `${args}" | Out-File -FilePath "${FILE_OUTPUT_PS1}" -Encoding utf8 -Append
|
Write-Output "& escript.exe ${PWD}/${DIR_FOR_BIN}/bin/${FILE_OUTPUT} `${args}" | Out-File -FilePath "${FILE_OUTPUT_PS1}" -Encoding utf8 -Append
|
||||||
type ${FILE_OUTPUT_PS1}
|
Write-Output "@echo off`r`nescript.exe ${PWD}/${DIR_FOR_BIN}/bin/${FILE_OUTPUT} %*" | Out-File -FilePath "${FILE_OUTPUT_CMD}" -Encoding utf8 -Append
|
||||||
Move-Item "${FILE_OUTPUT_PS1}" "${DIR_FOR_BIN}/bin"
|
Move-Item "${FILE_OUTPUT_PS1}" "${DIR_FOR_BIN}/bin"
|
||||||
|
Move-Item "${FILE_OUTPUT_CMD}" "${DIR_FOR_BIN}/bin"
|
||||||
Write-Output "Installed rebar3 version${REBAR3_NIGHTLY} follows"
|
Write-Output "Installed rebar3 version${REBAR3_NIGHTLY} follows"
|
||||||
& "${DIR_FOR_BIN}/bin/rebar3" "version" | Write-Output
|
& "${DIR_FOR_BIN}/bin/rebar3" "version" | Write-Output
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ Set-Location ${Env:RUNNER_TEMP}
|
|||||||
$FILE_INPUT="rebar3"
|
$FILE_INPUT="rebar3"
|
||||||
$FILE_OUTPUT="rebar3"
|
$FILE_OUTPUT="rebar3"
|
||||||
$FILE_OUTPUT_PS1="rebar3.ps1"
|
$FILE_OUTPUT_PS1="rebar3.ps1"
|
||||||
|
$FILE_OUTPUT_CMD="rebar3.cmd"
|
||||||
$DIR_FOR_BIN=".setup-beam/rebar3"
|
$DIR_FOR_BIN=".setup-beam/rebar3"
|
||||||
|
|
||||||
$ProgressPreference="SilentlyContinue"
|
$ProgressPreference="SilentlyContinue"
|
||||||
@@ -22,8 +23,9 @@ $ProgressPreference="Continue"
|
|||||||
New-Item "${DIR_FOR_BIN}/bin" -ItemType Directory | Out-Null
|
New-Item "${DIR_FOR_BIN}/bin" -ItemType Directory | Out-Null
|
||||||
Move-Item "${FILE_OUTPUT}" "${DIR_FOR_BIN}/bin"
|
Move-Item "${FILE_OUTPUT}" "${DIR_FOR_BIN}/bin"
|
||||||
Write-Output "& escript.exe ${PWD}/${DIR_FOR_BIN}/bin/${FILE_OUTPUT} `${args}" | Out-File -FilePath "${FILE_OUTPUT_PS1}" -Encoding utf8 -Append
|
Write-Output "& escript.exe ${PWD}/${DIR_FOR_BIN}/bin/${FILE_OUTPUT} `${args}" | Out-File -FilePath "${FILE_OUTPUT_PS1}" -Encoding utf8 -Append
|
||||||
type ${FILE_OUTPUT_PS1}
|
Write-Output "@echo off`r`nescript.exe ${PWD}/${DIR_FOR_BIN}/bin/${FILE_OUTPUT} %*" | Out-File -FilePath "${FILE_OUTPUT_CMD}" -Encoding utf8 -Append
|
||||||
Move-Item "${FILE_OUTPUT_PS1}" "${DIR_FOR_BIN}/bin"
|
Move-Item "${FILE_OUTPUT_PS1}" "${DIR_FOR_BIN}/bin"
|
||||||
|
Move-Item "${FILE_OUTPUT_CMD}" "${DIR_FOR_BIN}/bin"
|
||||||
Write-Output "Installed rebar3 version${REBAR3_NIGHTLY} follows"
|
Write-Output "Installed rebar3 version${REBAR3_NIGHTLY} follows"
|
||||||
& "${DIR_FOR_BIN}/bin/rebar3" "version" | Write-Output
|
& "${DIR_FOR_BIN}/bin/rebar3" "version" | Write-Output
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
/target/
|
||||||
|
main
|
||||||
Generated
+7
@@ -0,0 +1,7 @@
|
|||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rust_rebar3_cmd"
|
||||||
|
version = "0.1.0"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
[package]
|
||||||
|
name = "rust_rebar3_cmd"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
use std::env;
|
||||||
|
use std::process;
|
||||||
|
use std::string;
|
||||||
|
|
||||||
|
// an example function...
|
||||||
|
fn main() {
|
||||||
|
let key = "PATH";
|
||||||
|
match env::var(key) {
|
||||||
|
Ok(val) => println!("{key}: {val:?}"),
|
||||||
|
Err(e) => println!("couldn't interpret {key}: {e}"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
fn rebar3_cmd_version() -> Result<String, string::FromUtf8Error> {
|
||||||
|
println!("going for rebar3.cmd");
|
||||||
|
let output = process::Command::new("rebar3.cmd")
|
||||||
|
.arg("version")
|
||||||
|
.output()
|
||||||
|
.expect("error");
|
||||||
|
return String::from_utf8(output.stdout);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn it_works() {
|
||||||
|
rebar3_cmd_version().unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user