From 93c8ac08da00f57d732dbf45a5dafce6aa9c8ed0 Mon Sep 17 00:00:00 2001 From: Sodium <11473408+sodium0@user.noreply.gitee.com> Date: Sat, 26 Nov 2022 11:52:59 +0000 Subject: [PATCH 1/9] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20rust-dnf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rust-dnf/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 rust-dnf/.keep diff --git a/rust-dnf/.keep b/rust-dnf/.keep new file mode 100644 index 00000000..e69de29b -- Gitee From ec644a5cb42e4da9f00f5f0935d9d538d22a088d Mon Sep 17 00:00:00 2001 From: Sodium <11473408+sodium0@user.noreply.gitee.com> Date: Sat, 26 Nov 2022 11:55:43 +0000 Subject: [PATCH 2/9] =?UTF-8?q?DNF=E5=8C=85-help=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Sodium <11473408+sodium0@user.noreply.gitee.com> --- bang.rs | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ help.txt | 22 ++++++++++++++++++++ main.rs | 29 +++++++++++++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 bang.rs create mode 100644 help.txt create mode 100644 main.rs diff --git a/bang.rs b/bang.rs new file mode 100644 index 00000000..80b959d1 --- /dev/null +++ b/bang.rs @@ -0,0 +1,61 @@ +//help.txt存放于包的根目录下 +//use std::io::stdin;//从命令行输入命令的库 +use std::fs; +use std::io::prelude::*; +use std::fs::File; +use std::io::BufReader; +pub struct Bang{ } +impl Bang{ + + pub fn new() -> Bang{ + return Bang{}; + } + pub fn help(&mut self,str_buf:String) { + + let a=String::from("help"); + + //trim()将stdin().read_line输入读取的头尾符删除 + if str_buf.trim()==a { + + //将命令及作用所在txt文件中所有内容赋予 bangzhu + let bangzhu = fs::read_to_string("help.txt").unwrap(); + //输出所有命令及其作用 + println!("{}", bangzhu); + + } + + else { + let mut buer=0;//用于判断是否有所查询命令命令 + + //打开命令及作用所在txt文件以供读取 + let file = File::open("help.txt").unwrap(); + + //读取txt文件中内容 + let fin = BufReader::new(file);//fin前移除了mut + + let _ml=&str_buf[5..];//将用户输入help <命令名> 中的help以及空格切掉 + let _ml4=_ml.trim();//将命令行读取时读取到的换行符切掉 + + //逐行读取 fin所读取到的txt的内容 + //注意 line的格式并非String而是结构体 Result;是lines()函数的返回值 + let mut num=0; + for line in fin.lines() { + + //将line读取到的每行的内容以String形式赋值给kknd + //注意使用clone()来传递变量,避免无效化 + let kknd = line.unwrap().clone(); + + //用starts_with()函数匹配命令并输出 + if kknd.starts_with(&_ml4) { + num += 1; + println!("\n{}.{}\n", num,kknd); + buer+=1; + } + //用starts_with()函数匹配命令并输出 + + } + //如果没有查询到命令就输出提示 + if buer==0{println!("There is no such command.")} + } +} +} diff --git a/help.txt b/help.txt new file mode 100644 index 00000000..0f4dc0c5 --- /dev/null +++ b/help.txt @@ -0,0 +1,22 @@ +repolist 显示系统中可用的 DNF 软件库 +list 列出用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包 +search <包名> 搜索软件库中的软件包 +provides <路径> 查找某一文件的提供者 +info <包名> 查看软件包详情 +install <包名> 安装软件包 +update <包名> 升级软件包 +check-update 检查系统软件包的更新 +update 升级所有系统软件包 +remove 删除软件包 +autoremove 删除无用孤立的软件包 +clean all 删除缓存的无用软件包 +help <命令名> 获取有关某条命令的使用帮助 +help 查看所有的dnf命令及其用途 +history 查看dnf命令的执行历史 +grouplist 查看所有的软件包组 +groupinstall <软件包组名称> 安装一个软件包组 +groupupdate <软件包组名称> 升级一个软件包组中的软件包 +groupremove <软件包组名称> 删除一个软件包组 +distro-sync 更新软件包到最新的稳定发行版 +reinstall <包名> 重新安装特定软件包 +downgrade <包名> 回滚某个特定软件的版本 \ No newline at end of file diff --git a/main.rs b/main.rs new file mode 100644 index 00000000..7e59034f --- /dev/null +++ b/main.rs @@ -0,0 +1,29 @@ +mod bang; +use std::io::stdin;//从命令行输入命令的库 +fn main() { + println!("请输入命令并按下回车以执行"); + loop { + + //从命令行读入命令并赋值给str_buf + let mut str_buf = String::new(); + stdin().read_line(&mut str_buf) + .expect("Failed to read line."); + //从命令行读入命令并赋值给str_buf + + //输入c则结束程序 + if str_buf.trim()==String::from("c") {break;} + + //调用另一文件中的结构体函数,将c设置为该函数文件中的结构体 + let mut c=bang::Bang::new(); + + if str_buf.starts_with("help"){ + + //调用另一文件中的结构体函数 + c.help(str_buf); + } + else { + print!("没有\"{}\"命令:", str_buf.trim()); + } + println!("继续输入命令或输入“c”并按下回车以结束程序"); + } +} -- Gitee From 588da3152d548311e3e8b3d95d8e5b26cf0606b4 Mon Sep 17 00:00:00 2001 From: Sodium <11473408+sodium0@user.noreply.gitee.com> Date: Sat, 26 Nov 2022 11:56:26 +0000 Subject: [PATCH 3/9] update bang.rs. Signed-off-by: Sodium <11473408+sodium0@user.noreply.gitee.com> --- bang.rs => rust-dnf/bang.rs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename bang.rs => rust-dnf/bang.rs (100%) diff --git a/bang.rs b/rust-dnf/bang.rs similarity index 100% rename from bang.rs rename to rust-dnf/bang.rs -- Gitee From 52b85e7b64b1e6b063c2c7641d31917da8a6e574 Mon Sep 17 00:00:00 2001 From: Sodium <11473408+sodium0@user.noreply.gitee.com> Date: Sat, 26 Nov 2022 11:57:08 +0000 Subject: [PATCH 4/9] =?UTF-8?q?=E6=96=B0=E5=BB=BA=206=E7=BA=A7425-dnf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "rust-dnf/6\347\272\247425-dnf/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "rust-dnf/6\347\272\247425-dnf/.keep" diff --git "a/rust-dnf/6\347\272\247425-dnf/.keep" "b/rust-dnf/6\347\272\247425-dnf/.keep" new file mode 100644 index 00000000..e69de29b -- Gitee From 37449b5220a1614ddaf132e6b049307469b4a95b Mon Sep 17 00:00:00 2001 From: Sodium <11473408+sodium0@user.noreply.gitee.com> Date: Sat, 26 Nov 2022 11:57:48 +0000 Subject: [PATCH 5/9] update help.txt. Signed-off-by: Sodium <11473408+sodium0@user.noreply.gitee.com> --- help.txt => "6\347\272\247425-dnf/help.txt" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename help.txt => "6\347\272\247425-dnf/help.txt" (100%) diff --git a/help.txt "b/6\347\272\247425-dnf/help.txt" similarity index 100% rename from help.txt rename to "6\347\272\247425-dnf/help.txt" -- Gitee From 4b514cac88354c40c787dddb1ac496c62b033836 Mon Sep 17 00:00:00 2001 From: Sodium <11473408+sodium0@user.noreply.gitee.com> Date: Sat, 26 Nov 2022 11:58:26 +0000 Subject: [PATCH 6/9] update main.rs. Signed-off-by: Sodium <11473408+sodium0@user.noreply.gitee.com> --- main.rs => "rust-dnf/6\347\272\247425-dnf/main.rs" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename main.rs => "rust-dnf/6\347\272\247425-dnf/main.rs" (100%) diff --git a/main.rs "b/rust-dnf/6\347\272\247425-dnf/main.rs" similarity index 100% rename from main.rs rename to "rust-dnf/6\347\272\247425-dnf/main.rs" -- Gitee From 4bd3e05f288e1581c9118d77465b653ead4f7ce4 Mon Sep 17 00:00:00 2001 From: Sodium <11473408+sodium0@user.noreply.gitee.com> Date: Sat, 26 Nov 2022 11:58:58 +0000 Subject: [PATCH 7/9] update rust-dnf/bang.rs. Signed-off-by: Sodium <11473408+sodium0@user.noreply.gitee.com> --- rust-dnf/bang.rs => "rust-dnf/6\347\272\247425-dnf/bang.rs" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rust-dnf/bang.rs => "rust-dnf/6\347\272\247425-dnf/bang.rs" (100%) diff --git a/rust-dnf/bang.rs "b/rust-dnf/6\347\272\247425-dnf/bang.rs" similarity index 100% rename from rust-dnf/bang.rs rename to "rust-dnf/6\347\272\247425-dnf/bang.rs" -- Gitee From 9e135a7357cb644987b0bf8bf5398c4803f7bcd1 Mon Sep 17 00:00:00 2001 From: Sodium <11473408+sodium0@user.noreply.gitee.com> Date: Sat, 26 Nov 2022 11:59:24 +0000 Subject: [PATCH 8/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=206?= =?UTF-8?q?=E7=BA=A7425-dnf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "6\347\272\247425-dnf/help.txt" | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 "6\347\272\247425-dnf/help.txt" diff --git "a/6\347\272\247425-dnf/help.txt" "b/6\347\272\247425-dnf/help.txt" deleted file mode 100644 index 0f4dc0c5..00000000 --- "a/6\347\272\247425-dnf/help.txt" +++ /dev/null @@ -1,22 +0,0 @@ -repolist 显示系统中可用的 DNF 软件库 -list 列出用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包 -search <包名> 搜索软件库中的软件包 -provides <路径> 查找某一文件的提供者 -info <包名> 查看软件包详情 -install <包名> 安装软件包 -update <包名> 升级软件包 -check-update 检查系统软件包的更新 -update 升级所有系统软件包 -remove 删除软件包 -autoremove 删除无用孤立的软件包 -clean all 删除缓存的无用软件包 -help <命令名> 获取有关某条命令的使用帮助 -help 查看所有的dnf命令及其用途 -history 查看dnf命令的执行历史 -grouplist 查看所有的软件包组 -groupinstall <软件包组名称> 安装一个软件包组 -groupupdate <软件包组名称> 升级一个软件包组中的软件包 -groupremove <软件包组名称> 删除一个软件包组 -distro-sync 更新软件包到最新的稳定发行版 -reinstall <包名> 重新安装特定软件包 -downgrade <包名> 回滚某个特定软件的版本 \ No newline at end of file -- Gitee From 1ba0f4162fdcd4ae93ee7fd55b6face289aa3763 Mon Sep 17 00:00:00 2001 From: Sodium <11473408+sodium0@user.noreply.gitee.com> Date: Sat, 26 Nov 2022 11:59:40 +0000 Subject: [PATCH 9/9] =?UTF-8?q?DNF=E5=8C=85-help=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Sodium <11473408+sodium0@user.noreply.gitee.com> --- "rust-dnf/6\347\272\247425-dnf/help.txt" | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 "rust-dnf/6\347\272\247425-dnf/help.txt" diff --git "a/rust-dnf/6\347\272\247425-dnf/help.txt" "b/rust-dnf/6\347\272\247425-dnf/help.txt" new file mode 100644 index 00000000..0f4dc0c5 --- /dev/null +++ "b/rust-dnf/6\347\272\247425-dnf/help.txt" @@ -0,0 +1,22 @@ +repolist 显示系统中可用的 DNF 软件库 +list 列出用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包 +search <包名> 搜索软件库中的软件包 +provides <路径> 查找某一文件的提供者 +info <包名> 查看软件包详情 +install <包名> 安装软件包 +update <包名> 升级软件包 +check-update 检查系统软件包的更新 +update 升级所有系统软件包 +remove 删除软件包 +autoremove 删除无用孤立的软件包 +clean all 删除缓存的无用软件包 +help <命令名> 获取有关某条命令的使用帮助 +help 查看所有的dnf命令及其用途 +history 查看dnf命令的执行历史 +grouplist 查看所有的软件包组 +groupinstall <软件包组名称> 安装一个软件包组 +groupupdate <软件包组名称> 升级一个软件包组中的软件包 +groupremove <软件包组名称> 删除一个软件包组 +distro-sync 更新软件包到最新的稳定发行版 +reinstall <包名> 重新安装特定软件包 +downgrade <包名> 回滚某个特定软件的版本 \ No newline at end of file -- Gitee