mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-12 03:56:17 +03:00
Add package 'trash-cli'.
This commit is contained in:
parent
b8b8e80c87
commit
b017231a21
38
pkgs/tools/misc/trash-cli/default.nix
Normal file
38
pkgs/tools/misc/trash-cli/default.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ stdenv, fetchurl, substituteAll, coreutils, python2, python2Packages }:
|
||||||
|
|
||||||
|
python2Packages.buildPythonPackage rec {
|
||||||
|
name = "trash-cli-${version}";
|
||||||
|
version = "0.12.9.14";
|
||||||
|
namePrefix = "";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/andreafrancia/trash-cli/archive/${version}.tar.gz";
|
||||||
|
sha256 = "10idvzrlppj632pw6mpk1zy9arn1x4lly4d8nfy9cz4zqv06lhvh";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Fix paths.
|
||||||
|
(substituteAll {
|
||||||
|
src = ./nix-paths.patch;
|
||||||
|
df = "${coreutils}/bin/df";
|
||||||
|
python = "${python2}/bin/${python2.executable}";
|
||||||
|
libc = "${stdenv.gcc.libc}/lib/libc.so.6";
|
||||||
|
})
|
||||||
|
|
||||||
|
# Apply https://github.com/JaviMerino/trash-cli/commit/4f45a37a3
|
||||||
|
# to fix failing test case.
|
||||||
|
./fix_should_output_info_for_multiple_files.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with python2Packages; [ nose mock ];
|
||||||
|
|
||||||
|
checkPhase = "nosetests";
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://github.com/andreafrancia/trash-cli;
|
||||||
|
description = "Command line tool for the desktop trash can";
|
||||||
|
maintainer = [ maintainers.rycee ];
|
||||||
|
license = licenses.gpl2;
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
From 4f45a37a390d7c844dd9c9b58fff7259a77ffff9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Javi Merino <merino.jav@gmail.com>
|
||||||
|
Date: Sun, 31 Aug 2014 05:45:17 -0700
|
||||||
|
Subject: [PATCH] Fix should_output_info_for_multiple_files
|
||||||
|
|
||||||
|
Test should_output_info_for_multiple_files fails because the output is
|
||||||
|
not in the same order as the input. Add assert_equal_any_order() to
|
||||||
|
the OutputCollector, which sorts the expected and actual lines so that
|
||||||
|
the output matches even if the order in which they are shown in
|
||||||
|
trash-list is different.
|
||||||
|
---
|
||||||
|
integration_tests/describe_trash_list.py | 8 +++++---
|
||||||
|
integration_tests/output_collector.py | 8 ++++++++
|
||||||
|
2 files changed, 13 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/integration_tests/describe_trash_list.py b/integration_tests/describe_trash_list.py
|
||||||
|
index 6dd8d30..3489a22 100644
|
||||||
|
--- a/integration_tests/describe_trash_list.py
|
||||||
|
+++ b/integration_tests/describe_trash_list.py
|
||||||
|
@@ -73,9 +73,9 @@ def should_output_info_for_multiple_files(self):
|
||||||
|
|
||||||
|
self.user.run_trash_list()
|
||||||
|
|
||||||
|
- self.user.should_read_output( "2000-01-01 00:00:01 /file1\n"
|
||||||
|
- "2000-01-01 00:00:02 /file2\n"
|
||||||
|
- "2000-01-01 00:00:03 /file3\n")
|
||||||
|
+ self.user.should_read_output_any_order( "2000-01-01 00:00:01 /file1\n"
|
||||||
|
+ "2000-01-01 00:00:02 /file2\n"
|
||||||
|
+ "2000-01-01 00:00:03 /file3\n")
|
||||||
|
|
||||||
|
@istest
|
||||||
|
def should_output_unknown_dates_with_question_marks(self):
|
||||||
|
@@ -294,6 +294,8 @@ def error(self):
|
||||||
|
raise ValueError()
|
||||||
|
def should_read_output(self, expected_value):
|
||||||
|
self.stdout.assert_equal_to(expected_value)
|
||||||
|
+ def should_read_output_any_order(self, expected_value):
|
||||||
|
+ self.stdout.assert_equal_any_order(expected_value)
|
||||||
|
def should_read_error(self, expected_value):
|
||||||
|
self.stderr.assert_equal_to(expected_value)
|
||||||
|
def output(self):
|
||||||
|
diff --git a/integration_tests/output_collector.py b/integration_tests/output_collector.py
|
||||||
|
index 06dc002..7f3704f 100644
|
||||||
|
--- a/integration_tests/output_collector.py
|
||||||
|
+++ b/integration_tests/output_collector.py
|
||||||
|
@@ -9,6 +9,14 @@ def write(self,data):
|
||||||
|
self.stream.write(data)
|
||||||
|
def assert_equal_to(self, expected):
|
||||||
|
return self.should_be(expected)
|
||||||
|
+ def assert_equal_any_order(self, expected):
|
||||||
|
+ actual_sorted = sorted(self.stream.getvalue().splitlines(1))
|
||||||
|
+ actual = "".join(actual_sorted)
|
||||||
|
+
|
||||||
|
+ expected_sorted = sorted(expected.splitlines(1))
|
||||||
|
+ expected = "".join(expected_sorted)
|
||||||
|
+
|
||||||
|
+ assert_equals_with_unidiff(expected, actual)
|
||||||
|
def should_be(self, expected):
|
||||||
|
assert_equals_with_unidiff(expected, self.stream.getvalue())
|
||||||
|
def should_match(self, regex):
|
39
pkgs/tools/misc/trash-cli/nix-paths.patch
Normal file
39
pkgs/tools/misc/trash-cli/nix-paths.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
diff -Nurp trash-cli-0.12.9.14-orig/integration_tests/test_trash_rm_script.py trash-cli-0.12.9.14/integration_tests/test_trash_rm_script.py
|
||||||
|
--- trash-cli-0.12.9.14-orig/integration_tests/test_trash_rm_script.py 2014-12-23 10:10:43.808470486 +0100
|
||||||
|
+++ trash-cli-0.12.9.14/integration_tests/test_trash_rm_script.py 2014-12-23 10:11:02.688517975 +0100
|
||||||
|
@@ -9,7 +9,7 @@ from pprint import pprint
|
||||||
|
@istest
|
||||||
|
class WhenNoArgs:
|
||||||
|
def setUp(self):
|
||||||
|
- process = Popen(['python', 'trashcli/rm.py'],
|
||||||
|
+ process = Popen(['@python@', 'trashcli/rm.py'],
|
||||||
|
env={'PYTHONPATH':'.'},
|
||||||
|
stdin=None,
|
||||||
|
stdout=PIPE,
|
||||||
|
diff -Nurp trash-cli-0.12.9.14-orig/trashcli/list_mount_points.py trash-cli-0.12.9.14/trashcli/list_mount_points.py
|
||||||
|
--- trash-cli-0.12.9.14-orig/trashcli/list_mount_points.py 2014-12-23 10:10:43.808470486 +0100
|
||||||
|
+++ trash-cli-0.12.9.14/trashcli/list_mount_points.py 2014-12-23 10:19:04.954796457 +0100
|
||||||
|
@@ -12,7 +12,7 @@ def mount_points_from_getmnt():
|
||||||
|
|
||||||
|
def mount_points_from_df():
|
||||||
|
import subprocess
|
||||||
|
- df_output = subprocess.Popen(["df", "-P"], stdout=subprocess.PIPE).stdout
|
||||||
|
+ df_output = subprocess.Popen(["@df@", "-P"], stdout=subprocess.PIPE).stdout
|
||||||
|
return list(_mount_points_from_df_output(df_output))
|
||||||
|
|
||||||
|
def _mount_points_from_df_output(df_output):
|
||||||
|
@@ -46,13 +46,7 @@ def _mounted_filesystems_from_getmnt() :
|
||||||
|
("mnt_freq", c_int), # Dump frequency (in days).
|
||||||
|
("mnt_passno", c_int)] # Pass number for `fsck'.
|
||||||
|
|
||||||
|
- if sys.platform == "cygwin":
|
||||||
|
- libc_name = "cygwin1.dll"
|
||||||
|
- else:
|
||||||
|
- libc_name = find_library("c")
|
||||||
|
-
|
||||||
|
- if libc_name == None :
|
||||||
|
- libc_name="/lib/libc.so.6" # fix for my Gentoo 4.0
|
||||||
|
+ libc_name = "@libc@"
|
||||||
|
|
||||||
|
libc = cdll.LoadLibrary(libc_name)
|
||||||
|
libc.getmntent.restype = POINTER(mntent_struct)
|
@ -2579,6 +2579,8 @@ let
|
|||||||
|
|
||||||
traceroute = callPackage ../tools/networking/traceroute { };
|
traceroute = callPackage ../tools/networking/traceroute { };
|
||||||
|
|
||||||
|
trash-cli = callPackage ../tools/misc/trash-cli { };
|
||||||
|
|
||||||
trickle = callPackage ../tools/networking/trickle {};
|
trickle = callPackage ../tools/networking/trickle {};
|
||||||
|
|
||||||
trousers = callPackage ../tools/security/trousers { };
|
trousers = callPackage ../tools/security/trousers { };
|
||||||
|
Loading…
Reference in New Issue
Block a user