<?php
-require_once dirname(__FILE__).'/../lib/php/nb.php';
+#require_once dirname(__FILE__).'/../lib/php/nb.php';
+require_once dirname(__FILE__).'/../lib/php/db.php';
+#
+# Globals
+#
$DBQ = [];
-#$dev = (bool)(stripos(gethostname(),'macbook') !== false);
-$LOCAL_DB = (
- file_exists('/opt/local/var/run/mysql5')
- and ! file_exists('/opt/local/var/run/mysql5/mysqld.sock')
-) ? true : false;
-#
# DIR_SQLITE=*/var/lib/sqlite
-#
unset($DIR_SQLITE);
foreach ([
'/home/nico/ownCloud',
'/Users/nico/ownCloud',
-] as $dir) {
- #$dir = nb::untilde($dir);
- if (!is_readable($dir)) continue;
- $DIR_SQLITE = $dir;
- break;
-}
-if (!empty($DIR_SQLITE)) $DIR_SQLITE .= '/var/lib/sqlite';
-
-#
-# Includes dbq/*php
-#
-$dir = dirname(__FILE__).'/dbq';
-foreach (nb::ls_dir($dir,'\.php$') as $file) {
- require_once("$dir/$file");
-}
-
-#
-# Create *-sqlite databases
-#
-$host_already_exists = [];
-foreach ($DBQ as $id => $db) {
- if (1
- and !empty($db['type']) and $db['type'] == 'sqlite'
- and !empty($db['host'])
- ) $host_already_exists[$db['host']] = $id;
-}
-
-if (!empty($DIR_SQLITE)) {
- foreach (nb::ls_dir($DIR_SQLITE,'\.db$') as $file) {
-
- if (strpos($file,'_conflict-')) continue;
-
- if (isset($host_already_exists["$DIR_SQLITE/$file"])) {
- $DBQ[$host_already_exists["$DIR_SQLITE/$file"]]['sql_pre'][] = 'PRAGMA journal_mode=OFF';
- continue;
- }
-
- $name = basename($file,'.db');
- $id = "$name-sqlite";
-
- $DBQ[$id] = [
- 'host' => "$DIR_SQLITE/$file",
- 'type' => 'sqlite',
- 'title' => 'created by dbq.php',
- '_import' => $name
- ];
- #if (!empty($DBQ[$name])) $DBQ[$id] = array_merge_recursive($DBQ[$name],$DBQ[$id]);
+] as $DIR_SQLITE) {
+ if (is_readable($DIR_SQLITE)) {
+ break;
+ } else {
+ unset($DIR_SQLITE);
}
}
+if (!empty($DIR_SQLITE)) $DIR_SQLITE .= '/var/lib/sqlite';
-#
-# ALL - Attach all sqlite databases
-#
-#return;
-$DBQ['all'] = [
- 'host' => ':memory:',
- 'type' => 'sqlite',
- 'pdo' => '',
- #'order' => '0',
- 'options' => [
- PDO::ATTR_PERSISTENT => true,
- ],
- 'tables' => [],
- 'sql_pre' => [
- 'PRAGMA busy_timeout = 1000',
- #'PRAGMA synchronous=NORMAL',
- 'PRAGMA journal_mode=MEMORY',
- ],
-];
-
-foreach ($DBQ as $id => $db) {
- if (0
-
- or empty($db['type'] )
- or $db['type']!='sqlite'
-
- or empty($db['host'] )
- or !is_readable($db['host'])
- or !strpos($db['host'],'.db')
-
- ) continue;
-
- $fname = basename($db['host'],'.db');
- $fname = preg_replace('/\..*$/','',basename($db['host']));
-
- $DBQ['all']['types']['sql_pre'][] = "ATTACH DATABASE '".$db['host']."' as ".$fname."";
- if (!isset($DBQ[$fname]['name'])) $DBQ[$fname]['name'] = $fname;
- conf_merge($DBQ[$fname],$DBQ['all']);
-
-}
-conf_merge($DBQ['nb'],$DBQ['all']);
-
-#
-# Functions
-#
-function conf_merge(&$c1,&$c2) {
-
- // .*
- foreach ([
- 'default_table',
- 'title',
- 'row_parse',
- #'_import',
- ] as $k) {
- if (isset($c1[$k])) $c2[$k] = $c1[$k];
- }
-
- // tables.*
- if (!empty($c1['tables'])) {
- foreach ((array)$c1['tables'] as $k=>$v) {
- $c2['tables'][$k] = $v + ['database' => $c1['name']];
- }
- }
-
- return [$c1,$c2];
-}
?>
+++ /dev/null
-_mysql:
- type: mysql
-
-izi:
- title: Izi Admin
- host: admin.izideal.vpn
- default_table: process
- user: izideal
- name: izi
- type: mysql
- _import:
- - _izi
- encoding: utf-8
- tables:
- site:
- replace:
- idlang: lang.id
-
-izi-sql:
- title: Mysql Izi Slave
- host: sql.izideal.vpn
- _import:
- - izi
-
-izi-dev:
- host: big.cascais.loc
- title: Mysql Izi on Big
- #user: nico
- _import:
- - izi
-
-crypt:
- type: sqlite
- host: /dev/shm/crypt.db
--- /dev/null
+crypt:
+ type: sqlite
+ host: /dev/shm/crypt.db
--- /dev/null
+izi:
+ title: Izi Admin
+ host: admin.izideal.vpn
+ default_table: process
+ user: izideal
+ name: izi
+ type: mysql
+ _import:
+ - _izi
+ encoding: utf-8
+ tables:
+ site:
+ replace:
+ idlang: lang.id
+
+'izi-sql':
+ title: Mysql Izi Slave
+ host: sql.izideal.vpn
+ _import:
+ - izi
+
+'izi-dev':
+ host: big.cascais.loc
+ title: Mysql Izi on Big
+ #user: nico
+ _import:
+ - izi
#
# !!! MANDATORY !!!
#
-if (1) $DBQ = [
- 'local' => [
+if (true or !nb::is_vm()) $DBQ = [
+ 'shell' => [
'type' => 'sqlite',
- 'name' => 'local',
- 'host' => nb::ROOT_DIR.'/share/db/local.db',
+ 'name' => 'shell',
+ 'host' => nb::ROOT_DIR.'/share/db/shell.db',
],
];
?>
--- /dev/null
+<?php
+#
+# Create *-sqlite databases
+#
+$host_already_exists = [];
+foreach ($DBQ as $id => $db) {
+ if (1
+ and !empty($db['type']) and $db['type'] == 'sqlite'
+ and !empty($db['host'])
+ ) $host_already_exists[$db['host']] = $id;
+}
+
+if (!empty($DIR_SQLITE)) {
+ foreach (nb::ls_dir($DIR_SQLITE,'\.db$') as $file) {
+
+ if (strpos($file,'_conflict-')) continue;
+
+ if (isset($host_already_exists["$DIR_SQLITE/$file"])) {
+ $DBQ[$host_already_exists["$DIR_SQLITE/$file"]]['sql_pre'][] = 'PRAGMA journal_mode=OFF';
+ continue;
+ }
+
+ $name = basename($file,'.db');
+ $id = "$name-sqlite";
+
+ $DBQ[$id] = [
+ 'host' => "$DIR_SQLITE/$file",
+ 'type' => 'sqlite',
+ 'title' => 'created by dbq.php',
+ '_import' => $name
+ ];
+ #if (!empty($DBQ[$name])) $DBQ[$id] = array_merge_recursive($DBQ[$name],$DBQ[$id]);
+ }
+}
+
+#
+# ALL - Attach all sqlite databases
+#
+#return;
+#die(count($DBQ)."\n");
+$DBQ['all'] = [
+ 'host' => ':memory:',
+ 'type' => 'sqlite',
+ 'pdo' => '',
+ #'order' => '0',
+ 'options' => [
+ PDO::ATTR_PERSISTENT => true,
+ ],
+ 'tables' => [],
+ 'sql_pre' => [
+ 'PRAGMA busy_timeout = 1000',
+ #'PRAGMA synchronous=NORMAL',
+ 'PRAGMA journal_mode=MEMORY',
+ ],
+];
+
+foreach ($DBQ as $id => $db) {
+ if (0
+
+ or empty($db['type'] )
+ or $db['type']!='sqlite'
+
+ or empty($db['host'] )
+ or !is_readable($db['host'])
+ or !strpos($db['host'],'.db')
+
+ ) continue;
+
+ $fname = basename($db['host'],'.db');
+ $fname = preg_replace('/\..*$/','',basename($db['host']));
+
+ $DBQ['all']['types']['sql_pre'][] = "ATTACH DATABASE '".$db['host']."' as ".$fname."";
+ if (!isset($DBQ[$fname]['name'])) $DBQ[$fname]['name'] = $fname;
+ conf_merge($DBQ[$fname],$DBQ['all']);
+
+}
+
+if (!empty($DBQ['nb'])) conf_merge($DBQ['nb'],$DBQ['all']);
+
+#
+# Functions
+#
+function conf_merge(&$c1,&$c2) {
+
+ // .*
+ foreach ([
+ 'default_table',
+ 'title',
+ 'row_parse',
+ #'_import',
+ ] as $k) {
+ if (isset($c1[$k])) $c2[$k] = $c1[$k];
+ }
+
+ // tables.*
+ if (!empty($c1['tables'])) {
+ foreach ((array)$c1['tables'] as $k=>$v) {
+ $c2['tables'][$k] = $v + ['database' => $c1['name']];
+ }
+ }
+
+ return [$c1,$c2];
+}
+?>
#
# Avoid infinit loop. Eg: profile -> .bashrc -> profile
#
-[ "$1" = "--debug" ] && export NB_DEBUG="echo " && shift
+[ "$1" = "--debug" ] && export NB_DEBUG="echo DEBUG: " && shift
+
#NB_DEBUG='echo '
if [ -n "$NB_LOOP" ]; then
[ -n "$NB_DEBUG" ] && $NB_DEBUG "WARN: NB_LOOP=$NB_LOOP: BASH_SOURCE=$BASH_SOURCE \$0=$0"
unset NB_LOOP
return 2>/dev/null || exit # if executable
fi
-[ -n "$NB_DEBUG" ] && $NB_DEBUG "OK: BASH_SOURCE=$BASH_SOURCE \$0=$0"
+[ -n "$NB_DEBUG" ] && $NB_DEBUG "ENVS: BASH_SOURCE=$BASH_SOURCE \$0=$0"
#trap 'unset NB_LOOP' EXIT
export NB_LOOP=1
#
# SEARCH ROOT
#
-dir=''
-#NB_DEBUG="echo $0:"
+CURRENT_DIR=''
#[ "${BASH-no}" != "no" ] && echo Is BASH
-case "$BASH_SOURCE" in
- */*) dir="${BASH_SOURCE%/*}";;
- *)
- if [ -n "$ZSH_NAME" ]; then
- dir=${(%):-%N}
- dir=${dir%/*}
- elif [ -r /etc/profile.d/nb.sh ]; then
- return
- dir=$(dirname $(cut -d'.' -f2 /etc/profile.d/nb.sh))
- fi
- ;;
-esac
-
-if [ -z "$dir" ]; then
- [ -n "$NB_DEBUG" ] && $NB_DEBUG "ERR: Can't find NB_ROOT"
- return 0
+if [ -n "$BASH_SOURCE" ]; then
+ #CURRENT_DIR="${BASH_SOURCE%/*}"
+ CURRENT_DIR="${BASH_SOURCE%/*}"
+elif [ -n "$ZSH_VERSION" ]; then
+ eval 'CURRENT_DIR=${(%):-%N}'
+ CURRENT_DIR=${dir%/*}
+elif [ "$KSH_VERSION" != "" ]; then
+#elif eval '[[ -n ${.sh.file} ]]' 2>/dev/null; then
+ eval 'CURRENT_DIR="$(dirname "${.sh.file}")"'
+elif [ -r /etc/profile.d/nb.sh ]; then
+ CURRENT_DIR=$(dirname $(grep '\. ' -m1 /etc/profile.d/nb.sh | cut -d'.' -f2 /etc/profile.d/nb.sh))
+elif [ -r "$0" ]; then
+ CURRENT_DIR="$(dirname "$0")"
+else
+ for i in /*/*/bin/nb-install /*/*/*/bin/nb-install; do
+ [ -r "$i" ] && CURRENT_DIR=$(dirname "$i")/../etc && break
+ done
fi
-[ -e "$dir/profile.d/functions" ] && . "$dir/profile.d/functions"
-NB_ROOT=$(realpath ${dir}/.. 2>/dev/null)
-#echo "$NB_ROOT: `pwd`"
+if [ -z "$CURRENT_DIR" ]; then
+ [ -n "$NB_DEBUG" ] && $NB_DEBUG "ERR: Unsupported shell. Please use bash, ksh93 or zsh."
+else
-#
-# Profiles
-#
-if [ -n "$NB_ROOT" ]; then
- [ -e "$NB_ROOT/etc/profile.d/envs" ] && . "$NB_ROOT/etc/profile.d/envs"
+ [ -e "$CURRENT_DIR/profile.d/functions" ] && . "$CURRENT_DIR/profile.d/functions"
+ export NB_ROOT=$(realpath $CURRENT_DIR/.. 2>/dev/null)
- for i in \
- ${NB_ROOT}/etc/profile.d/aliases \
- $(nb-repo-dirs "etc/profile" "etc/profile.d/*.sh" | grep -vFx "${NB_ROOT}/etc/profile") \
- ;do
- [ -n "$NB_DEBUG" ] && $NB_DEBUG "OK: . $i"
- [ -r "$i" -a -f "$i" ] && . "$i"
- done
+ #
+ # Profiles
+ #
+ if [ -n "$NB_ROOT" ]; then
+ [ -e "$NB_ROOT/etc/profile.d/envs" ] && . "$NB_ROOT/etc/profile.d/envs"
+
+ for i in \
+ ${NB_ROOT}/etc/profile.d/aliases \
+ $(nb-repo-dirs "etc/profile" "etc/profile.d/*.sh" | grep -vFx "${NB_ROOT}/etc/profile") \
+ ;do
+ [ -n "$NB_DEBUG" ] && $NB_DEBUG "OK: . $i"
+ [ -r "$i" -a -f "$i" ] && . "$i"
+ done
+
+ fi
fi
-unset i tmp dir NB_DEBUG NB_LOOP
-#unset NB_LOOP
-true
+unset i tmp CURRENT_DIR NB_DEBUG NB_LOOP
[ -d ~/ownCloud/Docker ] && export DOCKER_HOME=~/ownCloud/Docker
[ -z "$DOCKER_HUB" ] && DOCKER_HUB=""
-unset DOCKER_IP
-if [ -z "$MYVIMRC" ]; then
+if is_prompt && which docker-machine > /dev/null && [ -z "$MYVIMRC" ]; then
- if [ -z "$DOCKER_CERT_PATH" -o ! -e "$DOCKER_CERT_PATH" ] && which docker-machine>/dev/null && docker-machine ls -q 2>/dev/null |grep -qFm1 "$DOCKER_MACHINE_NAME"; then
+ if [ -z "$DOCKER_CERT_PATH" -o ! -e "$DOCKER_CERT_PATH" ] && docker-machine ls -q 2>/dev/null |grep -qFm1 "$DOCKER_MACHINE_NAME"; then
eval "$(docker-machine env "$DOCKER_MACHINE_NAME")" 2>/dev/null
- DOCKER_IP=$(docker-machine ip "$DOCKER_MACHINE_NAME")
fi
- export DOCKER_IP
fi
urlencode() {
local length="${#1}"
+ local i
for (( i = 0; i < length; i++ )); do
#for i in `seq 0 $(($length-1))`; do
local c="${1:i:1}"
--- /dev/null
+sys_is_vm() {
+ grep -q ^flags.*\ hypervisor /proc/cpuinfo && echo "This machine is a VM"
+}
];
# Params
+ protected $default_params = [
+ ];
+
protected static $paliases = [
'd' => 'db',
't' => 'table',
#if(!is_scalar($opt['type'])) debug($opt['type']);
if (empty($this->out)) $this->out = new Out(['charset'=>$this->charset]);
- # id
- if (!empty($this->conf)) {
- foreach ($this->conf as $id=>$conf) {
- }
- }
+# NB 20.11.16 # id
+# NB 20.11.16 if (!empty($this->conf)) {
+# NB 20.11.16 foreach ($this->conf as $id=>$conf) {
+# NB 20.11.16 }
+# NB 20.11.16 }
# Add formats from module out
foreach($this->out->types() as $t=>$v) if (!in_array($t,$this->formats)) $this->formats[] = $t;
$file = self::untilde($file);
+ #if (!is_readable($file))
if (!is_readable($file)) continue;
-
if (preg_match('/\.(yaml|yml)$/i',$file) and ($yaml = self::yaml_parse_file($file))) {
$dbs = array_replace_recursive($dbs,$yaml);
+ #If (!empty($dbs['crypt'])) debug($dbs['crypt']);
} elseif (preg_match('/\.php$/i',$file)) {
require($file);
<?php
require_once(realpath(dirname(__FILE__).'/../config.php'));
require_once(realpath(dirname(__FILE__).'/../db.php'));
+$DB_CONFS = array_merge([]
-# NB 19.11.16: TODEL
-foreach ([
- Db::ROOT_DIR.'/etc/dbs.yaml',
- Db::ROOT_DIR.'/etc/dbs.php',
- '/etc/dbs.yaml',
-] as $file) {
- if (file_exists($file)) nb::msg("Delete obsolete file: $file (".__FILE__.")");
-}
+ # ::ROOT_DIR
+ ,[
+ Db::ROOT_DIR.'/etc/dbq.yml',
+ Db::ROOT_DIR.'/etc/dbq.yaml',
+ Db::ROOT_DIR.'/etc/dbq.php',
+ ]
+ ,(array)glob(Db::ROOT_DIR.'/etc/dbq/*.yml')
+ ,(array)glob(Db::ROOT_DIR.'/etc/dbq/*.yaml')
+ ,(array)glob(Db::ROOT_DIR.'/etc/dbq/*.php')
-$DB_CONFS = Db::conf_load(
-glob('/etc/dbq/*.yaml')+
-glob('/etc/dbq/*.php')+
-[
- Db::ROOT_DIR.'/etc/dbs.yaml',
- Db::ROOT_DIR.'/etc/dbs.php',
+ # /etc
+ ,[
+ '/etc/dbq.yml',
+ '/etc/dbq.yaml',
+ '/etc/dbq.php',
+ ]
+ ,(array)glob('/etc/dbq/*.yml')
+ ,(array)glob('/etc/dbq/*.yaml')
+ ,(array)glob('/etc/dbq/*.php')
- Db::ROOT_DIR.'/etc/dbq.yaml',
- Db::ROOT_DIR.'/etc/dbq.php',
+ # ~/
+ ,[
+ '~/.dbq.yml',
+ '~/.dbq.yaml',
+ '~/.dbq.php',
+ ]
+);
+#bye($DB_CONFS);
+$DB_CONFS = Db::conf_load($DB_CONFS);
-
- '/etc/dbs.yaml',
- '/etc/dbq.yaml',
-
- '/etc/dbq.yaml',
- '/etc/dbq.php',
-
- '~/.dbq.yaml',
- '~/.dbq.php',
-]);
?>
function($page){
#if (!$page->is('html')) return;
global $Db;
- if (!empty($Db)) echo $page->tag('div class="db-infos"',join(' | ',[
+ if (!empty($Db)) echo $page->tag('p class="db-infos"',join(' | ',[
$Db->type,
$Db->host,
($Db->name ? $Db->name : null),
return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, substr($value, $iv_size), MCRYPT_MODE_CBC, substr($value, 0, $iv_size)));
}
+ public static function is_vm() {
+ return file_exists('/proc/cpuinfo') && preg_match('/^flags.* hypervisor/m',file_get_contents('/proc/cpuinfo'));
+ }
+
} # < Class
return;
<?php
+require_once('/opt/nb/lib/php/db/page.php');
+return;
echo '<?xml version="1.0" encoding="utf-8"?>'."\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">