From 9444597aaee2d8006943f953fd585c639e970b40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn-Michael=20Miehe?= Date: Wed, 5 Aug 2020 02:08:55 +0200 Subject: [PATCH] Crude init function --- .idea/kiwi-config.iml | 3 +- .idea/misc.xml | 2 +- src/default.kiwi.yml | 13 +++---- src/kiwi-config.py | 2 +- src/kiwi/config.py | 53 ++++++++++++++------------ src/kiwi/init.py | 0 src/venv/bin/activate | 76 ++++++++++++++++++++++++++++++++++++++ src/venv/bin/activate.csh | 37 +++++++++++++++++++ src/venv/bin/activate.fish | 75 +++++++++++++++++++++++++++++++++++++ src/venv/bin/python | 1 + src/venv/bin/python3 | 1 + src/venv/lib64 | 1 + src/venv/pyvenv.cfg | 3 ++ 13 files changed, 233 insertions(+), 34 deletions(-) create mode 100644 src/kiwi/init.py create mode 100644 src/venv/bin/activate create mode 100644 src/venv/bin/activate.csh create mode 100644 src/venv/bin/activate.fish create mode 120000 src/venv/bin/python create mode 120000 src/venv/bin/python3 create mode 120000 src/venv/lib64 create mode 100644 src/venv/pyvenv.cfg diff --git a/.idea/kiwi-config.iml b/.idea/kiwi-config.iml index 15c0cd1..48e8b4f 100644 --- a/.idea/kiwi-config.iml +++ b/.idea/kiwi-config.iml @@ -3,8 +3,9 @@ + - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index d4fc832..b2ea69b 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/src/default.kiwi.yml b/src/default.kiwi.yml index f3bd13b..b1edc12 100644 --- a/src/default.kiwi.yml +++ b/src/default.kiwi.yml @@ -1,12 +1,9 @@ version: - -suffix: +suffixes: project: .project down: .down - -docker: - net: kiwinet +network: + name: kiwinet cidr: 10.22.46.0/24 - -target: - root: /var/kiwi +storage: + location: /var/kiwi diff --git a/src/kiwi-config.py b/src/kiwi-config.py index 1f38814..ab1183c 100755 --- a/src/kiwi-config.py +++ b/src/kiwi-config.py @@ -20,7 +20,7 @@ def main(): print(args.command) cf = Config.default() - cf.init() + cf.user_input() pass diff --git a/src/kiwi/config.py b/src/kiwi/config.py index 07f0e69..3ba490e 100644 --- a/src/kiwi/config.py +++ b/src/kiwi/config.py @@ -2,50 +2,57 @@ import os import yaml - class Config: - __content = None + KIWI_ROOT = os.getenv('KIWI_ROOT', '.') + __ymlContent = None - def __init__(self, filename): + def __init__(self): + + + @classmethod + def __from_file(cls, filename): with open(filename, 'r') as stream: try: - self.__content = yaml.safe_load(stream) - print(self.__content) + self.__ymlContent = yaml.safe_load(stream) except yaml.YAMLError as exc: print(exc) @classmethod def default(cls): - kiwi_root = os.environ.get('KIWI_ROOT') + result = cls.__from_file(cls.KIWI_ROOT + "/default.kiwi.yml") - cfg = cls(kiwi_root + "/default.kiwi.yml") - with open(kiwi_root + "/version-tag", 'r') as stream: - cfg.__content["version"] = stream.read().strip() + with open(cls.KIWI_ROOT + "/version-tag", 'r') as stream: + result.__ymlContent["version"] = stream.read().strip() - return cfg + return result - def __user_input(self, path, key, prompt): - content = self.__content + def __user_input(self, key, prompt): + """""" + # "a:b:c" => path = ['a', 'b'], key = 'c' + path = key.split(':') + (path, key) = (path[:-1], path[-1]) + + # resolve path + content = self.__ymlContent for step in path: content = content[step] - try: - result = input("{} [Default: {}] ".format(prompt, content[key])).strip() - except: - result = None + # prompt user as per argument + result = input("{} [Default: {}] ".format(prompt, content[key])).strip() + # if result: content[key] = result - def init(self): - self.__user_input([], "version", "Choose kiwi-config version") + def user_input(self): + self.__user_input("version", "Choose kiwi-config version") - self.__user_input(["suffix"], "project", "Enter suffix for project directories") - self.__user_input(["suffix"], "down", "Enter suffix for disabled projects") + self.__user_input("suffixes:project", "Enter suffix for project directories") + self.__user_input("suffixes:down", "Enter suffix for disabled projects") - self.__user_input(["docker"], "net", "Enter ") - self.__user_input(["docker"], "cidr", "Enter ") + self.__user_input("network:name", "Enter name for docker network") + self.__user_input("network:cidr", "Enter ") - self.__user_input(["target"], "root", "Enter ") + self.__user_input("storage:location", "Enter ") diff --git a/src/kiwi/init.py b/src/kiwi/init.py new file mode 100644 index 0000000..e69de29 diff --git a/src/venv/bin/activate b/src/venv/bin/activate new file mode 100644 index 0000000..7acdce2 --- /dev/null +++ b/src/venv/bin/activate @@ -0,0 +1,76 @@ +# This file must be used with "source bin/activate" *from bash* +# you cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then + PATH="${_OLD_VIRTUAL_PATH:-}" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then + PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # This should detect bash and zsh, which have a hash command that must + # be called to get it to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then + hash -r + fi + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + if [ ! "$1" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV="/home/jmm/Dokumente/git/dev/kiwi-config/src/venv" +export VIRTUAL_ENV + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/bin:$PATH" +export PATH + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "${PYTHONHOME:-}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1:-}" + if [ "x(venv) " != x ] ; then + PS1="(venv) ${PS1:-}" + else + if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then + # special case for Aspen magic directories + # see http://www.zetadev.com/software/aspen/ + PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1" + else + PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1" + fi + fi + export PS1 +fi + +# This should detect bash and zsh, which have a hash command that must +# be called to get it to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then + hash -r +fi diff --git a/src/venv/bin/activate.csh b/src/venv/bin/activate.csh new file mode 100644 index 0000000..7fa116f --- /dev/null +++ b/src/venv/bin/activate.csh @@ -0,0 +1,37 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. +# Created by Davide Di Blasi . +# Ported to Python 3.3 venv by Andrew Svetlov + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV "/home/jmm/Dokumente/git/dev/kiwi-config/src/venv" + +set _OLD_VIRTUAL_PATH="$PATH" +setenv PATH "$VIRTUAL_ENV/bin:$PATH" + + +set _OLD_VIRTUAL_PROMPT="$prompt" + +if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then + if ("venv" != "") then + set env_name = "venv" + else + if (`basename "VIRTUAL_ENV"` == "__") then + # special case for Aspen magic directories + # see http://www.zetadev.com/software/aspen/ + set env_name = `basename \`dirname "$VIRTUAL_ENV"\`` + else + set env_name = `basename "$VIRTUAL_ENV"` + endif + endif + set prompt = "[$env_name] $prompt" + unset env_name +endif + +alias pydoc python -m pydoc + +rehash diff --git a/src/venv/bin/activate.fish b/src/venv/bin/activate.fish new file mode 100644 index 0000000..2819498 --- /dev/null +++ b/src/venv/bin/activate.fish @@ -0,0 +1,75 @@ +# This file must be used with ". bin/activate.fish" *from fish* (http://fishshell.org) +# you cannot run it directly + +function deactivate -d "Exit virtualenv and return to normal shell environment" + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + set -gx PATH $_OLD_VIRTUAL_PATH + set -e _OLD_VIRTUAL_PATH + end + if test -n "$_OLD_VIRTUAL_PYTHONHOME" + set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME + set -e _OLD_VIRTUAL_PYTHONHOME + end + + if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + functions -e fish_prompt + set -e _OLD_FISH_PROMPT_OVERRIDE + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end + + set -e VIRTUAL_ENV + if test "$argv[1]" != "nondestructive" + # Self destruct! + functions -e deactivate + end +end + +# unset irrelevant variables +deactivate nondestructive + +set -gx VIRTUAL_ENV "/home/jmm/Dokumente/git/dev/kiwi-config/src/venv" + +set -gx _OLD_VIRTUAL_PATH $PATH +set -gx PATH "$VIRTUAL_ENV/bin" $PATH + +# unset PYTHONHOME if set +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # fish uses a function instead of an env var to generate the prompt. + + # save the current fish_prompt function as the function _old_fish_prompt + functions -c fish_prompt _old_fish_prompt + + # with the original prompt function renamed, we can override with our own. + function fish_prompt + # Save the return status of the last command + set -l old_status $status + + # Prompt override? + if test -n "(venv) " + printf "%s%s" "(venv) " (set_color normal) + else + # ...Otherwise, prepend env + set -l _checkbase (basename "$VIRTUAL_ENV") + if test $_checkbase = "__" + # special case for Aspen magic directories + # see http://www.zetadev.com/software/aspen/ + printf "%s[%s]%s " (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal) + else + printf "%s(%s)%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal) + end + end + + # Restore the return status of the previous command. + echo "exit $old_status" | . + _old_fish_prompt + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" +end diff --git a/src/venv/bin/python b/src/venv/bin/python new file mode 120000 index 0000000..b8a0adb --- /dev/null +++ b/src/venv/bin/python @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/src/venv/bin/python3 b/src/venv/bin/python3 new file mode 120000 index 0000000..ae65fda --- /dev/null +++ b/src/venv/bin/python3 @@ -0,0 +1 @@ +/usr/bin/python3 \ No newline at end of file diff --git a/src/venv/lib64 b/src/venv/lib64 new file mode 120000 index 0000000..7951405 --- /dev/null +++ b/src/venv/lib64 @@ -0,0 +1 @@ +lib \ No newline at end of file diff --git a/src/venv/pyvenv.cfg b/src/venv/pyvenv.cfg new file mode 100644 index 0000000..d411f1c --- /dev/null +++ b/src/venv/pyvenv.cfg @@ -0,0 +1,3 @@ +home = /usr/bin +include-system-site-packages = false +version = 3.6.9