@@ -1733,12 +1733,14 @@ nvm_print_versions() {
1733
1733
fi
1734
1734
1735
1735
command awk \
1736
- -v remote_versions=" $( printf ' %s' " ${1-} " | tr ' \n' ' |' ) " \
1736
+ -v remote_versions=" $( printf ' %s' " ${1-} " | tr ' \n' ' |' ) " -v min_ver= " ${NVM_MIN_VER :- v0} " \
1737
1737
-v installed_versions=" $( nvm_ls | tr ' \n' ' |' ) " -v current=" $NVM_CURRENT " \
1738
1738
-v installed_color=" $INSTALLED_COLOR " -v system_color=" $SYSTEM_COLOR " \
1739
1739
-v current_color=" $CURRENT_COLOR " -v default_color=" $DEFAULT_COLOR " \
1740
1740
-v old_lts_color=" $DEFAULT_COLOR " -v has_colors=" $NVM_HAS_COLORS " '
1741
1741
function alen(arr, i, len) { len=0; for(i in arr) len++; return len; }
1742
+ function v2a(v, a, s) { s=v; sub(/^(iojs-)?v/, "", s); split(s, a, "."); }
1743
+ function comp(v1,v2,d,a1,a2,i) { v2a(v1,a1); v2a(v2,a2); for(i in a1) d[i] = a1[i] - a2[i]; for(i in d) { if(d[i] != 0) return d[i]}; return 0; }
1742
1744
BEGIN {
1743
1745
fmt_installed = has_colors ? (installed_color ? "\033[" installed_color "%15s\033[0m" : "%15s") : "%15s *";
1744
1746
fmt_system = has_colors ? (system_color ? "\033[" system_color "%15s\033[0m" : "%15s") : "%15s *";
@@ -1753,13 +1755,15 @@ BEGIN {
1753
1755
split(remote_versions, lines, "|");
1754
1756
split(installed_versions, installed, "|");
1755
1757
rows = alen(lines);
1756
-
1757
- for (n = 1; n <= rows; n++) {
1758
+ filter = (min_ver != "v0");
1759
+ for (m = n = 1; n <= rows; n++) {
1758
1760
split(lines[n], fields, "[[:blank:]]+");
1759
1761
cols = alen(fields);
1760
1762
version = fields[1];
1761
- is_installed = 0 ;
1763
+ if (filter && comp(version, min_ver) < 0) continue ;
1762
1764
1765
+ filter = 0;
1766
+ is_installed = 0;
1763
1767
for (i in installed) {
1764
1768
if (version == installed[i]) {
1765
1769
is_installed = 1;
@@ -1776,8 +1780,7 @@ BEGIN {
1776
1780
fmt_version = fmt_installed;
1777
1781
}
1778
1782
1779
- padding = (!has_colors && is_installed) ? "" : " ";
1780
-
1783
+ padding = (is_installed && !has_colors) ? "" : " ";
1781
1784
if (cols == 1) {
1782
1785
formatted = sprintf(fmt_version, version);
1783
1786
} else if (cols == 2) {
@@ -1786,11 +1789,11 @@ BEGIN {
1786
1789
formatted = sprintf((fmt_version padding fmt_latest_lts), version, fields[2]);
1787
1790
}
1788
1791
1789
- output[n ] = formatted;
1792
+ output[m++ ] = formatted;
1790
1793
}
1791
1794
1792
- for (n = 1; n <= rows; n++ ) {
1793
- print output[n ]
1795
+ for (m in output ) {
1796
+ print output[m ]
1794
1797
}
1795
1798
1796
1799
exit
0 commit comments