Compare commits
2 commits
e562af0dc3
...
dbc68da5c9
| Author | SHA1 | Date | |
|---|---|---|---|
| dbc68da5c9 | |||
| 9d9330d6bc |
6 changed files with 68 additions and 10 deletions
|
|
@ -49,12 +49,17 @@ jobs:
|
||||||
if: steps.version.outputs.SKIP != 'true'
|
if: steps.version.outputs.SKIP != 'true'
|
||||||
run: nix build .#streamd-musl -o result-musl
|
run: nix build .#streamd-musl -o result-musl
|
||||||
|
|
||||||
|
- name: Build Windows binary
|
||||||
|
if: steps.version.outputs.SKIP != 'true'
|
||||||
|
run: nix build .#streamd-windows -o result-windows
|
||||||
|
|
||||||
- name: Prepare release artifacts
|
- name: Prepare release artifacts
|
||||||
if: steps.version.outputs.SKIP != 'true'
|
if: steps.version.outputs.SKIP != 'true'
|
||||||
run: |
|
run: |
|
||||||
mkdir -p release
|
mkdir -p release
|
||||||
cp result-deb release/streamd_${{ steps.version.outputs.VERSION }}_amd64.deb
|
cp result-deb release/streamd_${{ steps.version.outputs.VERSION }}_amd64.deb
|
||||||
cp result-musl/bin/streamd release/streamd-${{ steps.version.outputs.VERSION }}-linux-x86_64
|
cp result-musl/bin/streamd release/streamd-${{ steps.version.outputs.VERSION }}-linux-x86_64
|
||||||
|
cp result-windows/bin/streamd.exe release/streamd-${{ steps.version.outputs.VERSION }}-windows-x86_64.exe
|
||||||
|
|
||||||
- name: Create release
|
- name: Create release
|
||||||
if: steps.version.outputs.SKIP != 'true'
|
if: steps.version.outputs.SKIP != 'true'
|
||||||
|
|
|
||||||
35
flake.nix
35
flake.nix
|
|
@ -132,6 +132,38 @@
|
||||||
in
|
in
|
||||||
craneLib.buildPackage (commonArgs // { inherit cargoArtifacts; });
|
craneLib.buildPackage (commonArgs // { inherit cargoArtifacts; });
|
||||||
|
|
||||||
|
mkWindowsCraneLib =
|
||||||
|
system:
|
||||||
|
let
|
||||||
|
pkgs = mkPkgs system;
|
||||||
|
toolchain = pkgs.rust-bin.stable.latest.default.override {
|
||||||
|
targets = [ "x86_64-pc-windows-gnu" ];
|
||||||
|
};
|
||||||
|
in
|
||||||
|
(crane.mkLib pkgs).overrideToolchain toolchain;
|
||||||
|
|
||||||
|
mkStreamdWindows =
|
||||||
|
system:
|
||||||
|
let
|
||||||
|
pkgs = mkPkgs system;
|
||||||
|
pkgsCross = pkgs.pkgsCross.mingwW64;
|
||||||
|
craneLib = mkWindowsCraneLib system;
|
||||||
|
commonArgs = {
|
||||||
|
src = craneLib.path ./.;
|
||||||
|
pname = "streamd";
|
||||||
|
inherit version;
|
||||||
|
strictDeps = true;
|
||||||
|
CARGO_BUILD_TARGET = "x86_64-pc-windows-gnu";
|
||||||
|
CC_x86_64_pc_windows_gnu = "${pkgsCross.stdenv.cc}/bin/x86_64-w64-mingw32-gcc";
|
||||||
|
CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER = "${pkgsCross.stdenv.cc}/bin/x86_64-w64-mingw32-gcc";
|
||||||
|
nativeBuildInputs = [ pkgsCross.stdenv.cc ];
|
||||||
|
buildInputs = [ pkgsCross.windows.pthreads ];
|
||||||
|
doCheck = false;
|
||||||
|
};
|
||||||
|
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
|
||||||
|
in
|
||||||
|
craneLib.buildPackage (commonArgs // { inherit cargoArtifacts; });
|
||||||
|
|
||||||
mkStreamdDeb =
|
mkStreamdDeb =
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
|
|
@ -181,9 +213,10 @@
|
||||||
streamd = mkStreamd system;
|
streamd = mkStreamd system;
|
||||||
streamd-musl = mkStreamdMusl system;
|
streamd-musl = mkStreamdMusl system;
|
||||||
streamd-deb = mkStreamdDeb system;
|
streamd-deb = mkStreamdDeb system;
|
||||||
|
streamd-windows = mkStreamdWindows system;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit streamd streamd-musl streamd-deb;
|
inherit streamd streamd-musl streamd-deb streamd-windows;
|
||||||
default = streamd;
|
default = streamd;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,13 @@ pub fn run(number: i32) -> Result<(), StreamdError> {
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Some(file_path) = sorted_shards[selected_index].location.get("file") {
|
if let Some(file_path) = sorted_shards[selected_index].location.get("file") {
|
||||||
let editor = std::env::var("EDITOR").unwrap_or_else(|_| "vi".to_string());
|
let editor = std::env::var("EDITOR").unwrap_or_else(|_| {
|
||||||
|
if cfg!(windows) {
|
||||||
|
"notepad".to_string()
|
||||||
|
} else {
|
||||||
|
"vi".to_string()
|
||||||
|
}
|
||||||
|
});
|
||||||
Command::new(&editor).arg(file_path).status()?;
|
Command::new(&editor).arg(file_path).status()?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,13 @@ pub fn run() -> Result<(), StreamdError> {
|
||||||
drop(file);
|
drop(file);
|
||||||
|
|
||||||
// Open in editor
|
// Open in editor
|
||||||
let editor = std::env::var("EDITOR").unwrap_or_else(|_| "vi".to_string());
|
let editor = std::env::var("EDITOR").unwrap_or_else(|_| {
|
||||||
|
if cfg!(windows) {
|
||||||
|
"notepad".to_string()
|
||||||
|
} else {
|
||||||
|
"vi".to_string()
|
||||||
|
}
|
||||||
|
});
|
||||||
let status = Command::new(&editor).arg(&preliminary_path).status()?;
|
let status = Command::new(&editor).arg(&preliminary_path).status()?;
|
||||||
|
|
||||||
if !status.success() {
|
if !status.success() {
|
||||||
|
|
|
||||||
|
|
@ -92,13 +92,19 @@ pub fn run_edit(number: usize) -> Result<(), StreamdError> {
|
||||||
.get("file")
|
.get("file")
|
||||||
.ok_or(StreamdError::MissingFilePath)?;
|
.ok_or(StreamdError::MissingFilePath)?;
|
||||||
|
|
||||||
let editor = std::env::var("EDITOR").unwrap_or_else(|_| "vi".to_string());
|
let editor = std::env::var("EDITOR").unwrap_or_else(|_| {
|
||||||
let line_arg = format!("+{}", task.start_line);
|
if cfg!(windows) {
|
||||||
|
"notepad".to_string()
|
||||||
|
} else {
|
||||||
|
"vi".to_string()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
let status = Command::new(&editor)
|
let mut cmd = Command::new(&editor);
|
||||||
.arg(&line_arg)
|
if !editor.to_lowercase().contains("notepad") {
|
||||||
.arg(file_path)
|
cmd.arg(format!("+{}", task.start_line));
|
||||||
.status()?;
|
}
|
||||||
|
let status = cmd.arg(file_path).status()?;
|
||||||
|
|
||||||
if !status.success() {
|
if !status.success() {
|
||||||
return Err(StreamdError::IoError(std::io::Error::other(
|
return Err(StreamdError::IoError(std::io::Error::other(
|
||||||
|
|
|
||||||
|
|
@ -37,8 +37,10 @@ impl Settings {
|
||||||
fn config_path() -> PathBuf {
|
fn config_path() -> PathBuf {
|
||||||
if let Some(proj_dirs) = ProjectDirs::from("", "", "streamd") {
|
if let Some(proj_dirs) = ProjectDirs::from("", "", "streamd") {
|
||||||
proj_dirs.config_dir().join("config.toml")
|
proj_dirs.config_dir().join("config.toml")
|
||||||
|
} else if let Some(base_dirs) = directories::BaseDirs::new() {
|
||||||
|
base_dirs.config_dir().join("streamd").join("config.toml")
|
||||||
} else {
|
} else {
|
||||||
PathBuf::from("~/.config/streamd/config.toml")
|
PathBuf::from("streamd_config.toml")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue