⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lsrpm

📁 一个C格式的脚本处理函数库源代码,可让你的C程序具有执行C格式的脚本文件
💻
字号:
#! /usr/bin/env slsh% Generate a listing of an RPM filestatic define pgm_usage (){   vmessage ("Usage: lsrpm FILENAME");   exit (1);}static variable RPM_Command = "rpm -q -l --dump -p ";static define exit_error (msg){   () = fprintf (stderr, "%s\n", msg);   exit (1);}static define run_rpm (file){   variable fp;   variable lines;   variable months =      ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",      "Oct", "Nov", "Dec"];   variable s;   fp = popen (RPM_Command + file, "r");   if (fp == NULL)     exit_error ("Failed to open RPM process");      % each line contains:    % path size mtime md5sum mode owner group isconfig isdoc rdev symlink      variable six_months_ago = _time () - 3600*24*30*6;      foreach (fp)     {	variable path, size, mode, owner, group, symlink, mtime;	variable mstring;	variable tm;	s = ();	s = strchop (strtrim_end (s, "\n"), ' ', 0);		path = s[0];	size = s[1];	mtime = integer (s[2]);	mode = integer (s[4]);	owner = s[5];	group = s[6];	tm = localtime (mtime);	if (mtime < six_months_ago)	  mtime = sprintf ("%s %2d %4d", 			   months[tm.tm_mon],			   tm.tm_mday,			   1900 + tm.tm_year);	else	  mtime = sprintf ("%s %2d % 2d:%02d",			   months[tm.tm_mon],			   tm.tm_mday,			   tm.tm_hour,			   tm.tm_min);			   	symlink = "";	if (stat_is ("lnk", mode))	  symlink = " -> " + s[10];		mstring = stat_mode_to_string (mode);	if (-1 == fprintf (stdout,			   "%8s %8s %8s %10s %s %s%s\n",			   mstring, owner, group, size, mtime, path, symlink))	  exit_error (sprintf ("Write failed: %s", errno_string (errno)));     }   () = pclose (fp);}if (__argc != 2)  pgm_usage ();run_rpm (__argv[1]);exit (0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -