diff --git a/README.md b/README.md index bd4c6a8ef3ba3d7eb96aacda42dd6766717d75f6..a9c2180e990447460a9f7181bef8f45ffa197f82 100644 --- a/README.md +++ b/README.md @@ -132,43 +132,49 @@ eg: ./jarvis -dp ``` -7.一键生成环境变量(会读取配置文件中的[ENV]字段内容并生成env.sh脚本执行,默认自动生成) +7.输出已安装的软件清单 + +``` +./jarvis -l +``` + +8.一键生成环境变量(会读取配置文件中的[ENV]字段内容并生成env.sh脚本执行,默认自动生成) ``` ./jarvis -e && source ./env.sh ``` -8.一键编译(会读取配置文件中的[BUILD]字段内容并生成build.sh脚本执行) +9.一键编译(会读取配置文件中的[BUILD]字段内容并生成build.sh脚本执行) ``` ./jarvis -b ``` -9.一键运行(会读取配置文件中的[RUN]字段内容并生成run.sh脚本执行) +10.一键运行(会读取配置文件中的[RUN]字段内容并生成run.sh脚本执行) ``` ./jarvis -r ``` -10.一键性能采集(会读取配置文件中的[PERF]字段内容的perf值) +11.一键性能采集(会读取配置文件中的[PERF]字段内容的perf值) ``` ./jarvis -p ``` -11.一键GPU性能采集(需安装nsys、ncu) +12.一键GPU性能采集(需安装nsys、ncu) ``` ./jarvis -gp ``` -12.一键输出服务器信息(包括CPU、网卡、OS、内存等) +13.一键输出服务器信息(包括CPU、网卡、OS、内存等) ``` ./jarvis -i ``` -13.一键服务器性能评测(包括MPI、OMP、P2P等) +14.一键服务器性能评测(包括MPI、OMP、P2P等) ``` ./jarvis -bench all #运行所有benchmark @@ -177,19 +183,20 @@ eg: ./jarvis -bench gemm #运行矩阵运算 benchmark ``` -14.切换配置 +15.切换配置(配置文件路径会保存到.meta文件中) ``` ./jarvis -use XXX.config ``` -15.根据当前配置生成Singularity容器定义文件 +16.根据当前配置生成Singularity容器定义文件 ``` ./jarvis -container docker-hub-address +eg: ./jarvis -container openeuler:openeuler ``` -16.其它功能查看(网络检测等) +17.其它功能查看(网络检测等) ``` ./jarvis -h @@ -213,7 +220,7 @@ eg: - 为我们宣传 - 帮助新的贡献者加入 -请添加openEuler HPC SIG微信群了解更多HPC迁移调优知识 +请添加openEuler HPC SIG微信群了解更多HPC部署调优知识 ![微信群](./images/wechat-group-qr.png) diff --git a/images/wechat-group-qr.png b/images/wechat-group-qr.png index ae9910483692fabef392e73a216643879962742d..32e7143e1429f1658a7cac818ccd194b74e29456 100644 Binary files a/images/wechat-group-qr.png and b/images/wechat-group-qr.png differ diff --git a/src/analysisService.py b/src/analysisService.py index 6e39645eb2df615cdb5580fd5d83c35465f1a229..37c7a7566a3242b72cc40a481e632e02d81b0f05 100644 --- a/src/analysisService.py +++ b/src/analysisService.py @@ -75,6 +75,9 @@ class AnalysisService: def install(self,software_path, compiler_mpi_info): self.jinstall.install(software_path, compiler_mpi_info) + def get_install_list(self): + self.jinstall.list() + def remove(self,software_path): self.jinstall.remove(software_path) diff --git a/src/installService.py b/src/installService.py index f11e1b3c02d493f067153c181a11fd83491f3e83..8ce23b7becb639b5f158fe33fdce36f7676a6bd4 100644 --- a/src/installService.py +++ b/src/installService.py @@ -394,5 +394,14 @@ chmod +x {depend_file} self.set_installed_status(remove_list[choice-1], "0") print("Successfully remove "+software_info) - - + def list(self): + self.tool.prt_content("Installed list".upper()) + file_list = [d for d in glob(self.SOFTWARE_PATH+'/**', recursive=True)] + installed_list = [] + for file in file_list: + if os.path.isdir(file) and self.is_installed(file): + installed_list.append(file) + for file in installed_list: + file = file.replace(self.SOFTWARE_PATH, 'software') + print(file) + \ No newline at end of file diff --git a/src/jarvis.py b/src/jarvis.py index eab4fb49b2d0822507137c4c1fe7a367f7e8021d..ca1e15d99cdd02fb59f945045ef9de3512380be0 100644 --- a/src/jarvis.py +++ b/src/jarvis.py @@ -14,6 +14,7 @@ class Jarvis: parser.add_argument("-v","--version", help=f"get version info", action="store_true") parser.add_argument("-use","--use", help="Switch config file...", nargs=1) parser.add_argument("-i","--info", help=f"get machine info", action="store_true") + parser.add_argument("-l","--list", help=f"get installed package info", action="store_true") #accept software_name/version GCC/GCC+MPI/CLANG/CLANG+MPI parser.add_argument("-install","--install", help=f"install dependency", nargs=2) #accept software_name/version GCC/GCC+MPI/CLANG/CLANG+MPI @@ -54,6 +55,9 @@ class Jarvis: if self.args.info: self.analysis.get_machine_info() + if self.args.list: + self.analysis.get_install_list() + if self.args.install: self.analysis.install(self.args.install[0], self.args.install[1])