Skip to content

Commit 9224b2a

Browse files
author
Alistair Turnbull
committed
Add $filename command and test it (fix #23)
1 parent b680bf5 commit 9224b2a

File tree

12 files changed

+64
-0
lines changed

12 files changed

+64
-0
lines changed

nancy/__init__.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,15 @@ def expand(self, args: Optional[list[bytes]], input: Optional[bytes]) -> bytes:
478478

479479
return strip_final_newline(self._expand.expand(input))
480480

481+
def filename(self, args: Optional[list[bytes]], input: Optional[bytes]) -> bytes:
482+
if args is None or len(args) != 1:
483+
raise ValueError("$filename needs exactly one argument")
484+
if input is not None:
485+
raise ValueError("$filename does not take an input")
486+
debug(command_to_str(b"filename", args, input))
487+
488+
return bytes(self._expand.file_arg(args[0]))
489+
481490
def paste(self, args: Optional[list[bytes]], input: Optional[bytes]) -> bytes:
482491
if args is None or len(args) != 1:
483492
raise ValueError("$paste needs exactly one argument")
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
in A
2+
B from A: filename-src/b.in
3+
In B
4+
A from B: filename-src/a.in
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
In subdir/A
2+
super A from A: filename-src/a.in
3+
B from A: filename-src/b.in
4+
In B
5+
A from B: filename-src/subdir/a.in
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
$filename(foo){}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
$filename

tests/test-files/filename-src/a.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
in A
2+
B from A: $filename(b.in)

tests/test-files/filename-src/b.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
In B
2+
A from B: $filename(a.in)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
$include(a.in)
2+
$include(b.in)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
In subdir/A
2+
super A from A: $filename(a.in)
3+
B from A: $filename(b.in)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
$include(a.in)
2+
$include(b.in)

0 commit comments

Comments
 (0)