-
Notifications
You must be signed in to change notification settings - Fork 2
/
lister.nu
71 lines (63 loc) · 1.22 KB
/
lister.nu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env nu
def main [file] {
let file = ((["~/Dropbox/Directorios" $"($file).json"] | path join | path expand))
let df = get-files -f -F
let last = ($df | into df | drop name)
let df = (
$df
| each {|file|
$file
| get name
| parse $"{origin}/($env.USER)/{location}/{rest}"
}
| flatten
)
let first = ($df | select origin location | into df)
let second = (
$df
| select rest
| each {|file|
$file
| get rest
| path parse -e ''
}
| into df
| drop extension
| rename [parent stem] [path file]
)
$first | append $second | append $last | into nu | save -f $file
}
#get list of files recursively
def get-files [--full(-f),--dir(-d):string,--full_path(-F)] {
if $full {
if not ($dir | is-empty) {
if $full_path {
ls -f $"($dir)/**/*"
} else {
ls $"($dir)/**/*"
}
} else {
if $full_path {
ls -f **/*
} else {
ls **/*
}
}
} else {
if not ($dir | is-empty) {
if $full_path {
ls -f $"($dir)"
} else {
ls $"($dir)"
}
} else {
if $full_path {
ls -f
} else {
ls
}
}
}
| where type == file
| sort-by -i name
}