Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
后端镜像
rust镜像
Exa
提交
e0fc84e8
E
Exa
项目概览
后端镜像
/
rust镜像
/
Exa
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
Exa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e0fc84e8
编写于
5月 04, 2014
作者:
B
Ben S
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add --all command-line option
Also add command-line-option-handling code.
上级
af7689eb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
6 deletion
+32
-6
exa.rs
exa.rs
+32
-6
未找到文件。
exa.rs
浏览文件 @
e0fc84e8
extern
crate
getopts
;
use
std
::
io
::
fs
;
use
std
::
io
;
use
std
::
os
;
...
...
@@ -5,12 +6,33 @@ use std::os;
use
colours
::{
Plain
,
Style
,
Black
,
Red
,
Green
,
Yellow
,
Blue
,
Purple
,
Cyan
};
mod
colours
;
struct
Options
{
showInvisibles
:
bool
,
}
fn
main
()
{
match
os
::
args
()
.as_slice
()
{
[]
=>
unreachable!
(),
[
_
]
=>
{
list
(
Path
::
new
(
"."
))
},
[
_
,
ref
p
]
=>
{
list
(
Path
::
new
(
p
.as_slice
()))
},
_
=>
{
fail
!
(
"args?"
)
},
let
args
=
os
::
args
();
let
program
=
args
[
0
]
.as_slice
();
let
opts
=
~
[
getopts
::
optflag
(
"a"
,
"all"
,
"show dot-files"
)
];
let
matches
=
match
getopts
::
getopts
(
args
.tail
(),
opts
)
{
Ok
(
m
)
=>
m
,
Err
(
f
)
=>
{
fail
!
(
"Invalid options
\n
{}"
,
f
.to_err_msg
());
return
}
};
let
opts
=
Options
{
showInvisibles
:
matches
.opt_present
(
"all"
)
};
let
strs
=
if
matches
.free
.is_empty
()
{
vec!
(
~
"./"
)}
else
{
matches
.free
.clone
()};
for
dir
in
strs
.move_iter
()
{
list
(
opts
,
Path
::
new
(
dir
))
}
}
...
...
@@ -105,7 +127,7 @@ impl<'a> File<'a> {
}
}
fn
list
(
path
:
Path
)
{
fn
list
(
opts
:
Options
,
path
:
Path
)
{
let
mut
files
=
match
fs
::
readdir
(
&
path
)
{
Ok
(
files
)
=>
files
,
Err
(
e
)
=>
fail
!
(
"readdir: {}"
,
e
),
...
...
@@ -114,6 +136,10 @@ fn list(path: Path) {
for
subpath
in
files
.iter
()
{
let
file
=
File
::
from_path
(
subpath
);
if
file
.name
.starts_with
(
"."
)
&&
!
opts
.showInvisibles
{
continue
;
}
let
columns
=
~
[
~
Permissions
as
~
Column
,
~
FileSize
{
useSIPrefixes
:
false
}
as
~
Column
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录