Date: Mon, 26 May 2014 02:09:25 +0300 From: Zaro Korchev <zkorchev@mail.bg> To: soc-status@freebsd.org Subject: [Machine readable output from userland utilities] report Message-ID: <8D1B686D-1AAA-4E07-9270-E42699110561@mail.bg>
next in thread | raw e-mail | index | archive | help
This week I made a simple design for the project and implemented JSON = output for an example application. I made research on several libraries that I may use for my project. I = designed a simple API for structured output. At the moment I call it SOL = (Structured Output Library). I'm open to better name suggestions :) The API is in no way final. I will change it as issues arise in the = future. I have a prototype version of ls that uses the API to output JSON. There = are still some issues to resolve but the modified ls is basically = working. The code is accessible in the GSoC 2014 repository: https://socsvn.freebsd.org/socsvn/soc2014/zkorchev/ here are two examples: ls / = ["COPYRIGHT","bin","boot","dev","entropy","etc","home","lib","libexec","me= dia","mnt","proc","rescue","root","sbin","sys","tmp","usr","var"] ls -l / = [{"mode":"-r--r--r--","nlink":1,"user":"root","group":"root","size":6201,"= time":"Jan 17 = 00:41","name":"COPYRIGHT"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","g= roup":"root","size":1024,"time":"Jan 17 = 00:40","name":"bin"},{"mode":"drwxr-xr-x","nlink":8,"user":"root","group":= "root","size":1024,"time":"Mar 18 = 20:42","name":"boot"},{"mode":"dr-xr-xr-x","nlink":12,"user":"root","group= ":"root","size":512,"time":"May 23 = 15:22","name":"dev"},{"mode":"-rw-------","nlink":1,"user":"root","group":= "root","size":4096,"time":"May 23 = 15:22","name":"entropy"},{"mode":"drwxr-xr-x","nlink":21,"user":"root","gr= oup":"root","size":2048,"time":"May 22 = 18:51","name":"etc"},{"mode":"lrwxr-xr-x","nlink":1,"user":"root","group":= "root","size":8,"time":"Mar 18 = 17:37","name":"home","link":"usr/home"},{"mode":"drwxr-xr-x","nlink":3,"us= er":"root","group":"root","size":1536,"time":"Jan 17 = 00:40","name":"lib"},{"mode":"drwxr-xr-x","nlink":3,"user":"root","group":= "root","size":512,"time":"Mar 18 = 17:28","name":"libexec"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","gro= up":"root","size":512,"time":"Jan 17 = 00:39","name":"media"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","group= ":"root","size":512,"time":"Jan 17 = 00:39","name":"mnt"},{"mode":"dr-xr-xr-x","nlink":2,"user":"root","group":= "root","size":512,"time":"Jan 17 = 00:39","name":"proc"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","group"= :"root","size":2560,"time":"Jan 17 = 00:40","name":"rescue"},{"mode":"drwxr-xr-x","nlink":7,"user":"root","grou= p":"root","size":512,"time":"May 23 = 17:53","name":"root"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","group"= :"root","size":2560,"time":"Jan 17 = 00:41","name":"sbin"},{"mode":"lrwxr-xr-x","nlink":1,"user":"root","group"= :"root","size":11,"time":"Jan 17 = 00:42","name":"sys","link":"usr/src/sys"},{"mode":"drwxrwxrwt","nlink":6,"= user":"root","group":"root","size":512,"time":"May 23 = 17:51","name":"tmp"},{"mode":"drwxr-xr-x","nlink":17,"user":"root","group"= :"root","size":512,"time":"Mar 18 = 17:37","name":"usr"},{"mode":"drwxr-xr-x","nlink":24,"user":"root","group"= :"root","size":512,"time":"May 23 15:22","name":"var"}] As I implemented this example modified version of ls, I got some ideas = about where problems can arise in the future and I got some insight on = how I can approach to solve them. Zaro=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8D1B686D-1AAA-4E07-9270-E42699110561>