diff options
author | Christian Pointner <equinox@spreadspace.org> | 2010-10-02 00:00:32 +0000 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2010-10-02 00:00:32 +0000 |
commit | 621c7f4acf2ce36db5dcae2de1d013f7de2f2cf8 (patch) | |
tree | d51cc5299a535929923fb45edd88ac5731b7e66e /tools | |
parent | added initial svn dirs (diff) |
inital checkin (base daemon should be running)
git-svn-id: https://svn.spreadspace.org/gcsd/trunk@2 ac14a137-c7f1-4531-abe0-07747231d213
Diffstat (limited to 'tools')
-rw-r--r-- | tools/bin2c.lua | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tools/bin2c.lua b/tools/bin2c.lua new file mode 100644 index 0000000..e70f4ff --- /dev/null +++ b/tools/bin2c.lua @@ -0,0 +1,59 @@ +-- +-- gcsd +-- +-- gcsd the generic command sequencer daemon can be used to serialize +-- commands sent over various paralell communication channels to a +-- single command output. It can be seen as a multiplexer for any +-- kind of communication between a single resource and various clients +-- which want to submit commands to it or query information from it. +-- gcsd is written in C and Lua. The goal is to provide an easy to +-- understand high level API based on Lua which can be used to +-- implement the business logic of the so formed multiplexer daemon. +-- +-- +-- Copyright (C) 2009-2010 Markus Grueneis <gimpf@spreadspace.org> +-- Christian Pointner <equinox@spreadspace.org> +-- +-- This file is part of gcsd. +-- +-- gcsd is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- any later version. +-- +-- gcsd is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with gcsd. If not, see <http://www.gnu.org/licenses/>. +-- + +if not arg or not arg[1] or not arg[2] then + io.stderr:write("Usage: lua bin2c.lua filename c_var_name\n") + return +end + +local filename, c_var_name = ... + +local content = assert(io.open(filename,"rb")):read"*a" + +local dump do + local numtab={}; for i=0,255 do numtab[string.char(i)]=("%3d,"):format(i) end + function dump(str) + return (str:gsub(".", numtab):gsub(("."):rep(80), "%0\n")) + end +end + +io.write([=[ +/* code automatically generated by bin2c -- DO NOT EDIT */ + +#include "datatypes.h" + +const uint8_t ]=] , c_var_name, [=[[]={ +]=], dump(content), [=[ + +}; +const uint32_t ]=] , c_var_name, [=[_len = sizeof(]=] , c_var_name, [=[); +]=]) |