# sorting by name

[[cmd]]
name = "‘exa -1 --sort=name’ sorts by file name"
shell = "exa -1 --sort=name /testcases/file-names-exts"
stdout = { file = "outputs/exts_oneline_sort_name.ansitxt" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort' ]

[[cmd]]
name = "‘exa -1 --sort=Name’ sorts by file name (case-sensitively)"
shell = "exa -1 --sort=Name /testcases/file-names-exts"
stdout = { file = "outputs/exts_oneline_sort_namecase.ansitxt" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort' ]


# sorting by file extension

[[cmd]]
name = "‘exa -1 --sort=ext’ sorts by file extension"
shell = "exa -1 --sort=ext /testcases/file-names-exts"
stdout = { file = "outputs/exts_oneline_sort_ext.ansitxt" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort' ]

[[cmd]]
name = "‘exa -1 --sort=Ext’ sorts by file extension (case-sensitively)"
shell = "exa -1 --sort=Ext /testcases/file-names-exts"
stdout = { file = "outputs/exts_oneline_sort_extcase.ansitxt" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort' ]


# sorting by kind

[[cmd]]
name = "‘exa -1 --sort=type’ sorts by file kind (files and symlinks)"
shell = "exa -1 --sort=type /testcases/links"
stdout = { file = "outputs/links_oneline_sort_type.ansitxt" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort' ]

[[cmd]]
name = "‘exa -1 --sort=type’ sorts by file kind (special files)"
shell = "exa -1 --sort=type /testcases/specials"
stdout = { file = "outputs/specials_oneline_sort_type.ansitxt" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort' ]


# sorting by inode

# We can’t guarantee inode numbers, but we can at least check that they’re in
# order. The inode column is the leftmost one, so sort works for this.
[[cmd]]
name = "‘exa -l --inode --sort=inode’ sorts by file inode"
shell = "exa -l --inode --sort=inode /testcases/file-names-exts | sort --check"
stdout = { empty = true }
stderr = { empty = true }
status = 0
tags = [ 'long', 'inode', 'sort' ]


# sorting by modified date

[[cmd]]
name = "‘exa -1 --sort=modified’ sorts most recently modified at the bottom"
shell = "exa -1 --sort=modified /testcases/dates"
stdout = { string = "pear\npeach\nplum" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort', 'dates' ]

[[cmd]]
name = "‘exa -1 --sort=modified -r’ sorts most recently modified at the top"
shell = "exa -1 --sort=modified -r /testcases/dates"
stdout = { string = "plum\npeach\npear" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort', 'dates', 'reverse' ]

[[cmd]]
name = "‘exa -1 --sort=newest’ sorts most recently modified at the bottom"
shell = "exa -1 --sort=newest /testcases/dates"
stdout = { string = "pear\npeach\nplum" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort', 'dates' ]

[[cmd]]
name = "‘exa -1 --sort=newest -r’ sorts most recently modified at the top"
shell = "exa -1 --sort=newest -r /testcases/dates"
stdout = { string = "plum\npeach\npear" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort', 'dates', 'reverse' ]

[[cmd]]
name = "‘exa -1 --sort=oldest’ sorts most recently modified at the top"
shell = "exa -1 --sort=oldest /testcases/dates"
stdout = { string = "plum\npeach\npear" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort', 'dates' ]

[[cmd]]
name = "‘exa -1 --sort=oldest -r’ sorts most recently modified at the bottom"
shell = "exa -1 --sort=oldest -r /testcases/dates"
stdout = { string = "pear\npeach\nplum" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort', 'dates', 'reverse' ]


# sorting by other date fields

[[cmd]]
name = "‘exa -1 --sort=created’ sorts by created date"
shell = "exa -1 --sort=created /testcases/dates"
stdout = { string = "peach\nplum\npear" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort', 'dates' ]

[[cmd]]
name = "‘exa -1 --sort=accessed’ sorts by accessed date"
shell = "exa -1 --sort=accessed /testcases/dates"
stdout = { string = "plum\npear\npeach" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort', 'dates' ]

# sorting with arguments specified

[[cmd]]
name = "‘exa -G --sort=name -r’ with file arguments sorts by file name in reverse order"
shell = "cd /testcases/file-names-exts; exa -G --sort=name -r *"
environment = { COLUMNS = "80" }
stdout = { file = "outputs/exts_grid_sort_name_reverse.ansitxt" }
stderr = { empty = true }
status = 0
tags = [ 'grid', 'sort', 'reverse' ]

[[cmd]]
name = "‘exa -1 --sort=name -r’ with file arguments sorts by file name in reverse order"
shell = "cd /testcases/file-names-exts; exa -1 --sort=name -r *"
stdout = { file = "outputs/exts_oneline_sort_name_reverse.ansitxt" }
stderr = { empty = true }
status = 0
tags = [ 'oneline', 'sort', 'reverse' ]