gitAndTools.git-interactive-rebase-tool: init

This commit is contained in:
Asad Saeeduddin 2020-02-02 01:25:29 -05:00 committed by Maximilian Bosch
parent e3a9318b6f
commit 4d67e30713
No known key found for this signature in database
GPG key ID: 091DBF4D1FC46B8E
4 changed files with 204 additions and 0 deletions

View file

@ -8004,4 +8004,10 @@
githubId = 56247270;
name = "Foxit";
};
masaeedu = {
email = "masaeedu@gmail.com";
github = "masaeedu";
githubId = 3674056;
name = "Asad Saeeduddin";
};
}

View file

@ -103,6 +103,8 @@ let
git-imerge = callPackage ./git-imerge { };
git-interactive-rebase-tool = callPackage ./git-interactive-rebase-tool {};
git-machete = python3Packages.callPackage ./git-machete { };
git-octopus = callPackage ./git-octopus { };

View file

@ -0,0 +1,169 @@
--- a/src/display/utils.rs
+++ b/src/display/utils.rs
@@ -53,166 +53,3 @@
_ => ColorMode::TwoTone,
}
}
-
-#[cfg(all(windows, test))]
-mod tests {
- use crate::display::color_mode::ColorMode;
- use crate::display::utils::detect_color_mode;
-
- #[test]
- fn detect_color_mode_windows() {
- assert_eq!(detect_color_mode(2), ColorMode::ThreeBit);
- }
-}
-
-#[cfg(all(unix, test))]
-mod tests {
- use crate::display::color_mode::ColorMode;
- use crate::display::utils::detect_color_mode;
- use std::env::{remove_var, set_var};
-
- fn clear_env() {
- remove_var("COLORTERM");
- remove_var("VTE_VERSION");
- remove_var("TERM_PROGRAM");
- remove_var("TERM");
- }
-
- #[test]
- fn detect_color_mode_no_env_2_colors() {
- clear_env();
- assert_eq!(detect_color_mode(2), ColorMode::TwoTone);
- }
-
- #[test]
- fn detect_color_mode_no_env_8_colors() {
- clear_env();
- assert_eq!(detect_color_mode(8), ColorMode::ThreeBit);
- }
-
- #[test]
- fn detect_color_mode_no_env_less_8_colors() {
- clear_env();
- assert_eq!(detect_color_mode(7), ColorMode::TwoTone);
- }
-
- #[test]
- fn detect_color_mode_no_env_16_colors() {
- clear_env();
- assert_eq!(detect_color_mode(16), ColorMode::FourBit);
- }
-
- #[test]
- fn detect_color_mode_no_env_less_16_colors() {
- clear_env();
- assert_eq!(detect_color_mode(15), ColorMode::ThreeBit);
- }
-
- #[test]
- fn detect_color_mode_no_env_256_colors() {
- clear_env();
- assert_eq!(detect_color_mode(256), ColorMode::EightBit);
- }
-
- #[test]
- fn detect_color_mode_no_env_less_256_colors() {
- clear_env();
- assert_eq!(detect_color_mode(255), ColorMode::FourBit);
- }
-
- #[test]
- fn detect_color_mode_no_env_more_256_colors() {
- clear_env();
- assert_eq!(detect_color_mode(257), ColorMode::EightBit);
- }
-
- #[test]
- fn detect_color_mode_term_env_no_256() {
- clear_env();
- set_var("TERM", "XTERM");
- assert_eq!(detect_color_mode(0), ColorMode::TwoTone);
- }
-
- #[test]
- fn detect_color_mode_term_env_with_256() {
- clear_env();
- set_var("TERM", "XTERM-256");
- assert_eq!(detect_color_mode(0), ColorMode::EightBit);
- }
-
- #[test]
- fn detect_color_mode_term_program_env_apple_terminal() {
- clear_env();
- set_var("TERM_PROGRAM", "Apple_Terminal");
- assert_eq!(detect_color_mode(0), ColorMode::EightBit);
- }
-
- #[test]
- fn detect_color_mode_term_program_env_iterm() {
- clear_env();
- set_var("TERM_PROGRAM", "iTerm.app");
- assert_eq!(detect_color_mode(0), ColorMode::EightBit);
- }
-
- #[test]
- fn detect_color_mode_term_program_env_other() {
- clear_env();
- set_var("TERM_PROGRAM", "other");
- assert_eq!(detect_color_mode(0), ColorMode::TwoTone);
- }
-
- #[test]
- fn detect_color_mode_vte_version_0_36_00() {
- clear_env();
- set_var("VTE_VERSION", "3600");
- assert_eq!(detect_color_mode(0), ColorMode::TrueColor);
- }
-
- #[test]
- fn detect_color_mode_vte_version_greater_0_36_00() {
- clear_env();
- set_var("VTE_VERSION", "3601");
- assert_eq!(detect_color_mode(0), ColorMode::TrueColor);
- }
-
- #[test]
- fn detect_color_mode_vte_version_less_0_36_00() {
- clear_env();
- set_var("VTE_VERSION", "1");
- assert_eq!(detect_color_mode(0), ColorMode::EightBit);
- }
-
- #[test]
- fn detect_color_mode_vte_version_0() {
- clear_env();
- set_var("VTE_VERSION", "0");
- assert_eq!(detect_color_mode(0), ColorMode::TwoTone);
- }
- #[test]
- fn detect_color_mode_vte_version_invalid() {
- clear_env();
- set_var("VTE_VERSION", "invalid");
- assert_eq!(detect_color_mode(0), ColorMode::TwoTone);
- }
-
- #[test]
- fn detect_color_mode_colorterm_env_is_truecolor() {
- clear_env();
- set_var("COLORTERM", "truecolor");
- assert_eq!(detect_color_mode(0), ColorMode::TrueColor);
- }
-
- #[test]
- fn detect_color_mode_colorterm_env_is_24bit() {
- clear_env();
- set_var("COLORTERM", "24bit");
- assert_eq!(detect_color_mode(0), ColorMode::TrueColor);
- }
-
- #[test]
- fn detect_color_mode_colorterm_env_is_other() {
- clear_env();
- set_var("COLORTERM", "other");
- assert_eq!(detect_color_mode(0), ColorMode::TwoTone);
- }
-}

View file

@ -0,0 +1,27 @@
{ lib, ncurses5, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "git-interactive-rebase-tool";
version = "1.2.1";
src = fetchFromGitHub {
owner = "MitMaro";
repo = pname;
rev = version;
sha256 = "10z3di2qypgsmg2z7xfs9nlrf9vng5i7l8dvqadv1l4lb9zz7i8q";
};
patches = [ ./01-terminaltests.patch ];
cargoSha256 = "002kr52vlpv1rhnxki29xflpmgk6bszrw0dsxcc34kyal0593ajk";
buildInputs = [ ncurses5 ];
meta = with lib; {
homepage = "https://github.com/MitMaro/git-interactive-rebase-tool";
description = "Native cross platform full feature terminal based sequence editor for git interactive rebase";
changelog = "https://github.com/MitMaro/git-interactive-rebase-tool/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ masaeedu ];
};
}