diff options
author | Christian Pointner <equinox@helsinki.at> | 2011-03-07 18:45:30 (GMT) |
---|---|---|
committer | Christian Pointner <equinox@helsinki.at> | 2011-03-07 18:45:30 (GMT) |
commit | 1aee7e70f83c43bc59eb8b016aa38fc4f37f2c86 (patch) | |
tree | 8002ac2ce7808674cadc3bab0ffd0af90f78be65 /nopsyncd | |
parent | 23b709b3086ea3fe166630d6888e5f8817a071d2 (diff) |
started nopsyncd
Diffstat (limited to 'nopsyncd')
-rw-r--r-- | nopsyncd/Makefile | 90 | ||||
-rwxr-xr-x | nopsyncd/configure | 190 | ||||
-rw-r--r-- | nopsyncd/nopsyncd.c | 40 | ||||
-rwxr-xr-x | nopsyncd/nopsyncd.lua | 20 |
4 files changed, 340 insertions, 0 deletions
diff --git a/nopsyncd/Makefile b/nopsyncd/Makefile new file mode 100644 index 0000000..ffba7cb --- /dev/null +++ b/nopsyncd/Makefile @@ -0,0 +1,90 @@ +## +## rhnop +## +## Copyright (C) 2011 Christian Pointner <equinox@helsinki.at> +## +## This file is part of rhnop. +## +## rhnop 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. +## +## rhnop 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 rhnop. If not, see <http://www.gnu.org/licenses/>. +## + +ifneq ($(MAKECMDGOALS),distclean) +include include.mk +endif + +EXECUTABLE := nopsyncd + +C_OBJS := nopsyncd.o + +C_SRCS := $(C_OBJS:%.o=%.c) + +.PHONY: clean distclean install install-bin install-etc uninstall remove purge + +all: $(EXECUTABLE) + +%.d: %.c + @set -e; rm -f $@; \ + $(CC) -MM $(CFLAGS) $< > $@.$$$$; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ + rm -f $@.$$$$; echo '(re)building $@' + +ifneq ($(MAKECMDGOALS),distclean) +-include $(C_SRCS:%.c=%.d) +endif + +$(EXECUTABLE): $(C_OBJS) + $(CC) $(C_OBJS) -o $@ $(LDFLAGS) + +%.o: %.c + $(CC) $(CFLAGS) -c $< + +strip: $(EXECUTABLE) + $(STRIP) -s $(EXECUTABLE) + + +distclean: clean + find . -name *.o -exec rm -f {} \; + find . -name "*.\~*" -exec rm -rf {} \; + rm -f include.mk + +clean: + rm -f *.o + rm -f *.d + rm -f *.d.* + rm -f $(EXECUTABLE) + +INSTALL_TARGETS := install-bin install-etc +REMOVE_TARGETS := remove-bin remove-etc + +install: all $(INSTALL_TARGETS) + +install-bin: $(EXECUTABLE) + $(INSTALL) -d $(DESTDIR)$(BINDIR) + $(INSTALL) -m 755 $(EXECUTABLE) $(DESTDIR)$(BINDIR) + +install-etc: + $(INSTALL) -d $(DESTDIR)$(ETCDIR)/$(EXECUTABLE) + +uninstall: remove + +remove: $(REMOVE_TARGETS) + +remove-bin: + rm -f $(DESTDIR)$(BINDIR)/$(EXECUTABLE) + +remove-etc: + rm -f $(DESTDIR)$(ETCDIR)/init.d/$(EXECUTABLE) + +purge: remove + rm -rf $(DESTDIR)$(ETCDIR)/$(EXECUTABLE)/ diff --git a/nopsyncd/configure b/nopsyncd/configure new file mode 100755 index 0000000..30145f2 --- /dev/null +++ b/nopsyncd/configure @@ -0,0 +1,190 @@ +#!/bin/sh +# +# rhnop +# +# Copyright (C) 2011 Christian Pointner <equinox@helsinki.at> +# +# This file is part of rhnop. +# +# rhnop 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. +# +# rhnop 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 rhnop. If not, see <http://www.gnu.org/licenses/>. +# + +TARGET=`uname -s` +EBUILD_COMPAT=0 + +CFLAGS='-g -O2' +LDFLAGS='-g -Wall -O2 -lpthread' + +LUA_DIR='' +LUA='' + +PREFIX='/usr/local' +BINDIR='' +ETCDIR='' + +print_usage() { + echo "configure --help print this" + echo " --target=<TARGET> build target i.e. Linux (default: autodetect)" + echo " --prefix=<PREFIX> the installation prefix (default: /usr/local)" + echo " --bindir=<DIR> the path to the bin directory (default: $PREFIX/bin)" + echo " --sysconfdir=<DIR> the path to the system configuration directory (default: $PREFIX/etc)" + echo " --with-lua=<DIR> use this lua tree instead of system default" +} + +for arg +do + case $arg in + --target=*) + TARGET=${arg#--target=} + ;; + --prefix=*) + PREFIX=${arg#--prefix=} + ;; + --bindir=*) + BINDIR=${arg#--bindir=} + ;; + --sysconfdir=*) + ETCDIR=${arg#--sysconfdir=} + ;; + --with-lua=*) + LUA_DIR=${arg#--with-lua=} + ;; + --ebuild-compat) + EBUILD_COMPAT=1 + ;; + --help) + print_usage + exit 0 + ;; + *) + ERRORS="$ERRORS $arg" + ;; + esac +done + +if [ -n "$ERRORS" ] && [ $EBUILD_COMPAT -ne 1 ]; then + for error in $ERRORS; do + echo "Unknown argument: $error" + done + + print_usage + exit 1 +fi + +rm -f include.mk +case $TARGET in + Linux) + LDFLAGS=$LDFLAGS' -ldl' + ;; + *) + echo "platform not supported" + exit 1; + ;; +esac + + +test_lua_version() +{ + LUA_VERSION=`cat $1 | grep "#define LUA_VERSION[ ]" | cut -f2- | tr -d '"' | sed -e 's/Lua \([0-9][0-9.]*\)/\1/'` + LUA_VERSION_NUM=`cat $1 | grep "#define LUA_VERSION_NUM" | awk '{ print $3 }'` + LUA_RELEASE=`cat $1 | grep "#define LUA_RELEASE[ ]" | cut -f2-` + + if [ $LUA_VERSION_NUM -ge 501 ]; then + return 1; + else + return 0; + fi +} + +if [ -z "$LUA_DIR" ]; then + for prefix in /usr /usr/local; do + if [ -e $prefix/include/lua.h ]; then + test_lua_version $prefix/include/lua.h + if [ $? -eq 1 ]; then + echo "using Lua $LUA_VERSION ($LUA_RELEASE) found at $prefix/include" + CFLAGS="$CFLAGS -I'$prefix/include'" + LDFLAGS="$LDFLAGS -L'$prefix/lib' -llua" + LUA=$prefix/lua + LUAC=$prefix/luac + break + fi + else + for dir in `ls -d $prefix/include/lua* 2> /dev/null`; do + if [ -e $dir/lua.h ]; then + test_lua_version $dir/lua.h + if [ $? -eq 1 ]; then + echo "using Lua $LUA_VERSION ($LUA_RELEASE) found at $dir" + CFLAGS="$CFLAGS -I$dir" + if [ -x "$prefix/bin/lua$LUA_VERSION" ]; then + LDFLAGS="$LDFLAGS -L'$prefix/lib' -llua$LUA_VERSION" + LUA=$prefix/bin/lua$LUA_VERSION + LUAC=$prefix/bin/luac$LUA_VERSION + elif [ -x "$prefix/bin/lua-$LUA_VERSION" ]; then + LDFLAGS="$LDFLAGS -L'$prefix/lib' -llua-$LUA_VERSION" + LUA=$prefix/bin/lua-$LUA_VERSION + LUAC=$prefix/bin/luac-$LUA_VERSION + else + echo "ERROR: found lua.h at $dir/lua.h but no matching lua and luac" + return 1 + fi + break + fi + fi + done + if [ -n "$LUAC" ]; then + break + fi + fi + done + + if [ -z "$LUAC" ]; then + echo "ERROR: no suitable lua found .. please install lua 5.1 or higher or use --with-lua" + return 1 + fi + +else + CFLAGS="$CFLAGS -I'$LUA_DIR/include'" + LDFLAGS="$LDFLAGS '$LUA_DIR/lib/liblua.a'" + LUA=$LUA_DIR/bin/lua + LUAC=$LUA_DIR/bin/luac +fi + +if [ -z "$BINDIR" ]; then + BINDIR=$PREFIX/bin +fi + +if [ -z "$ETCDIR" ]; then + ETCDIR=$PREFIX/etc +fi + +cat > include.mk <<EOF +# this file was created automatically +# do not edit this file directly +# use ./configure instead + +TARGET := '$TARGET' +CC := gcc +CFLAGS := $CFLAGS +LDFLAGS := $LDFLAGS +LUA := '$LUA' +LUAC := '$LUAC' +STRIP := strip +INSTALL := install + +PREFIX := '$PREFIX' +BINDIR := '$BINDIR' +ETCDIR := '$ETCDIR' +EOF + +exit 0 diff --git a/nopsyncd/nopsyncd.c b/nopsyncd/nopsyncd.c new file mode 100644 index 0000000..19d8a7d --- /dev/null +++ b/nopsyncd/nopsyncd.c @@ -0,0 +1,40 @@ +/* + * rhnop + * + * Copyright (C) 2011 Christian Pointner <equinox@helsinki.at> + * + * This file is part of rhnop. + * + * rhnop 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. + * + * rhnop 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 rhnop. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <stdlib.h> +#include <stdio.h> +#include <errno.h> +#include <pthread.h> + +#include <lua.h> +#include <lualib.h> +#include <lauxlib.h> + + + +int main(int argc, char* argv[]) +{ + printf("starting nopsyncd...\n"); + + + printf("stopping nopsyncd...\n"); + return 0; +} diff --git a/nopsyncd/nopsyncd.lua b/nopsyncd/nopsyncd.lua index 5ac1acb..63914d1 100755 --- a/nopsyncd/nopsyncd.lua +++ b/nopsyncd/nopsyncd.lua @@ -1,4 +1,24 @@ #!/usr/bin/lua +-- +-- rhnop +-- +-- Copyright (C) 2011 Christian Pointner <equinox@helsinki.at> +-- +-- This file is part of rhnop. +-- +-- rhnop 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. +-- +-- rhnop 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 rhnop. If not, see <http://www.gnu.org/licenses/>. +-- local queue_name = "/rhnop" |