Compare commits

...
Author SHA1 Message Date
Tobias Waldekranz 747b211348 klinfix: Initial add
Infix integration of klish and klish-plugin-sysrepo.
2023-03-29 16:14:43 +02:00
13 changed files with 295 additions and 0 deletions
+1
View File
@@ -6,6 +6,7 @@ source "$BR2_EXTERNAL_INFIX_PATH/package/faux/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/finit/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/ifupdown2/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/ifupdown-ng/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/klinfix/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/klish/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/klish-plugin-sysrepo/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/mdnsd/Config.in"
+8
View File
@@ -0,0 +1,8 @@
config BR2_PACKAGE_KLINFIX
bool "klinfix"
select BR2_PACKAGE_KLISH
select BR2_PACKAGE_KLISH_PLUGIN_SYSREPO
select BR2_PACKAGE_SYSREPO
help
A plugin to klish with an opinionated config and some
command extensions, suitable for systems running Infix.
+14
View File
@@ -0,0 +1,14 @@
################################################################################
#
# klinfix
#
################################################################################
KLINFIX_VERSION = 1.0
KLINFIX_LICENSE = BSD-3-Clause
KLINFIX_SITE_METHOD = local
KLINFIX_SITE = $(BR2_EXTERNAL_INFIX_PATH)/src/klinfix
KLINFIX_DEPENDENCIES = klish-plugin-sysrepo
KLINFIX_AUTORECONF = YES
$(eval $(autotools-package))
+1
View File
@@ -13,6 +13,7 @@ config BR2_PACKAGE_KLISH_PLUGIN_SYSREPO
config BR2_PACKAGE_KLISH_PLUGIN_SYSREPO_XML
bool "install xml"
depends on BR2_PACKAGE_KLISH_PLUGIN_SYSREPO
depends on !BR2_PACKAGE_KLINFIX
default y
help
Install the default XML spec bundled with the project, which
+1
View File
@@ -12,6 +12,7 @@ config BR2_PACKAGE_KLISH
config BR2_PACKAGE_KLISH_DEFAULT_XML
bool "install xml"
depends on BR2_PACKAGE_KLISH
depends on !BR2_PACKAGE_KLINFIX
default y
help
Install a small XML spec containing a definition of an
+33
View File
@@ -0,0 +1,33 @@
*~
*.o
*.la
*.lo
*.so
.deps
.libs
/aclocal.m4
/autom4te.cache/
/aux
/clixon.xml
/compile
/config.h
/config.h.in
/config.guess
/config.log
/config.status
/config.sub
/configure
/depcomp
/install-sh
/libtool
/ltmain.sh
/m4
/missing
GPATH
GRTAGS
GTAGS
Makefile
Makefile.in
+3
View File
@@ -0,0 +1,3 @@
SUBDIRS = src xml
DISTCLEANFILES = *~ *.d
ACLOCAL_AMFLAGS = -I m4
+15
View File
@@ -0,0 +1,15 @@
Configuration Daemon
====================
`confd` is the Infix configuration daemon that serves as the glue
between sysrepo and netopeer2 (NETCONF) and the UNIX system under
it all.
Origin & References
-------------------
Based on the Open Source [dklibc/sysrepo_plugin_ietf_system][0]
project by Denis Kalashnikov.
[0]: https://github.com/dklibc/sysrepo_plugin_ietf_system
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
autoreconf -W portability -vifm
+33
View File
@@ -0,0 +1,33 @@
AC_PREREQ(2.61)
AC_INIT([klinfix], [1.0.0],
[https://github.com/kernelkit/infix/issues])
AM_INIT_AUTOMAKE(1.11 foreign subdir-objects)
AM_SILENT_RULES(yes)
LT_INIT
AC_CONFIG_FILES([
Makefile
src/Makefile
xml/Makefile
])
AC_PROG_CC
AC_PROG_INSTALL
# Check for pkg-config first, warn if it's not installed
PKG_PROG_PKG_CONFIG
PKG_CHECK_MODULES([sysrepo], [sysrepo >= 2.2.60])
AC_CHECK_LIB([klish], [kplugin_new],, AC_MSG_ERROR([Klish not found]))
test "x$prefix" = xNONE && prefix=$ac_default_prefix
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
KLISHLIBDIR=`eval echo $libdir/klish`
AC_SUBST(KLISHLIBDIR)
KLISHCONFDIR=`eval echo $sysconfdir/klish`
AC_SUBST(KLISHCONFDIR)
AC_OUTPUT
View File
+2
View File
@@ -0,0 +1,2 @@
klishconfdir = $(KLISHCONFDIR)
klishconf_DATA = $(wildcard *.xml)
+181
View File
@@ -0,0 +1,181 @@
<?xml version="1.0" encoding="UTF-8"?>
<KLISH
xmlns="https://klish.libcode.org/klish3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://src.libcode.org/pkun/klish/src/master/klish.xsd">
<PLUGIN name="klish"/>
<PLUGIN name="script"/>
<PLUGIN name="sysrepo">
ShowBrackets = y
ShowSemicolons = y
FirstKeyWithStatement = n
MultiKeysWithStatement = y
Colorize = y
Indent = 2
</PLUGIN>
<PTYPE name="PLINE_SET">
<COMPL>
<ACTION sym="srp_compl@sysrepo"/>
</COMPL>
<HELP>
<ACTION sym="srp_help@sysrepo"/>
</HELP>
<ACTION sym="PLINE_SET@sysrepo"/>
</PTYPE>
<PTYPE name="PLINE_DEL">
<COMPL>
<ACTION sym="srp_compl@sysrepo"/>
</COMPL>
<HELP>
<ACTION sym="srp_help@sysrepo"/>
</HELP>
<ACTION sym="PLINE_DEL@sysrepo"/>
</PTYPE>
<PTYPE name="PLINE_EDIT">
<COMPL>
<ACTION sym="srp_compl@sysrepo"/>
</COMPL>
<HELP>
<ACTION sym="srp_help@sysrepo"/>
</HELP>
<ACTION sym="PLINE_EDIT@sysrepo"/>
</PTYPE>
<PTYPE name="PLINE_INSERT_FROM">
<COMPL>
<ACTION sym="srp_compl@sysrepo"/>
</COMPL>
<HELP>
<ACTION sym="srp_help@sysrepo"/>
</HELP>
<ACTION sym="PLINE_INSERT_FROM@sysrepo"/>
</PTYPE>
<PTYPE name="PLINE_INSERT_TO">
<COMPL>
<ACTION sym="srp_compl_insert_to@sysrepo"/>
</COMPL>
<HELP>
<ACTION sym="srp_help_insert_to@sysrepo"/>
</HELP>
<ACTION sym="PLINE_INSERT_TO@sysrepo"/>
</PTYPE>
<VIEW name="main">
<HOTKEY key="^D" cmd="exit"/>
<PROMPT>
<ACTION sym="prompt" exec_on="always">%u@%h:exec> </ACTION>
</PROMPT>
<COMMAND name="exit" help="Exit">
<ACTION sym="nav">pop</ACTION>
</COMMAND>
<COMMAND name="configure" help="Configure system">
<ACTION sym="nav">replace configure</ACTION>
</COMMAND>
<COMMAND name="show" help="Show" mode="switch">
<COMMAND name="running-config" help="Show running-config">
<ACTION sym="srp_show_running@sysrepo"/>
</COMMAND>
</COMMAND>
</VIEW>
<VIEW name="configure">
<PROMPT>
<ACTION sym="srp_prompt_edit_path@sysrepo"/>
<ACTION sym="prompt" exec_on="always">%u@%h:configure> </ACTION>
</PROMPT>
<HOTKEY key="^C" cmd="up"/>
<HOTKEY key="^D" cmd="abort"/>
<HOTKEY key=":" cmd="show"/>
<HOTKEY key="!" cmd="check"/>
<!-- Move -->
<COMMAND name="abort" help="Exit configuration mode, abandon changes">
<ACTION sym="srp_rollback@sysrepo"/>
<ACTION sym="nav">replace main</ACTION>
</COMMAND>
<COMMAND name="leave" help="Exit configuration mode, commit changes">
<ACTION sym="srp_commit@sysrepo"/>
<ACTION sym="nav" exec_on="success">replace main</ACTION>
</COMMAND>
<COMMAND name="end" help="Climb one configuration context, or leave (from top)">
<ACTION sym="srp_up@sysrepo"/>
<ACTION sym="srp_commit@sysrepo" exec_on="fail"/>
<ACTION sym="nav" exec_on="success">replace main</ACTION>
</COMMAND>
<COMMAND name="up" help="Climb one configuration context">
<ACTION sym="srp_up@sysrepo"/>
</COMMAND>
<COMMAND name="top" help="Climb to configuration root">
<ACTION sym="srp_top@sysrepo"/>
</COMMAND>
<COMMAND name="goto" help="Go to configuration context">
<PARAM name="path" ptype="/PLINE_EDIT" max="100"/>
<ACTION sym="srp_edit@sysrepo"/>
</COMMAND>
<!-- Edit -->
<COMMAND name="set" help="Set configuration setting">
<PARAM name="path" ptype="/PLINE_SET" max="100"/>
<ACTION sym="srp_set@sysrepo"/>
</COMMAND>
<COMMAND name="no" help="Delete configuration setting(s)">
<PARAM name="path" ptype="/PLINE_DEL" max="100"/>
<ACTION sym="srp_del@sysrepo"/>
</COMMAND>
<COMMAND name="commit" help="Commit data to running-config">
<ACTION sym="srp_commit@sysrepo"/>
</COMMAND>
<COMMAND name="rollback" help="Rollback to running-config">
<ACTION sym="srp_rollback@sysrepo"/>
</COMMAND>
<!-- Display -->
<COMMAND name="check" help="Verify the candidate configuration">
<ACTION sym="srp_verify@sysrepo"/>
</COMMAND>
<COMMAND name="show" help="Show data hierarchy">
<PARAM name="path" ptype="/PLINE_EDIT" min="0" max="100"/>
<ACTION sym="srp_show@sysrepo"/>
</COMMAND>
<COMMAND name="diff" help="Show diff to running-config">
<PARAM name="path" ptype="/PLINE_EDIT" min="0" max="100"/>
<ACTION sym="srp_diff@sysrepo"/>
</COMMAND>
<!-- Misc -->
<COMMAND name="do" help="Execute operational mode command">
<VIEW name="operational" ref="/main"/>
</COMMAND>
</VIEW>
</KLISH>