Merge branch 'master' into preos

This commit is contained in:
Nico Schottelius 2014-01-21 16:05:03 +01:00
commit d89cdbae0a
8 changed files with 82 additions and 20 deletions

1
.gitignore vendored
View file

@ -30,3 +30,4 @@ build
.lock-* .lock-*
.git-current-branch .git-current-branch
.lock* .lock*
.pypi-release

View file

@ -205,19 +205,30 @@ eof
fi fi
# Ensure we are on the master branch # Ensure we are on the master branch
masterbranch=yes
if [ "$(git rev-parse --abbrev-ref HEAD)" != "master" ]; then if [ "$(git rev-parse --abbrev-ref HEAD)" != "master" ]; then
echo "Releases are happening from the master branch, aborting" echo "Releases are happening from the master branch, aborting"
exit 1
echo "Enter the magic word to release anyway"
read magicword
if [ "$magicword" = "iknowwhatido" ]; then
masterbranch=no
else
exit 1
fi
fi fi
# Ensure version branch exists if [ "$masterbranch" = yes ]; then
if ! git rev-parse --verify refs/heads/$target_branch 2>/dev/null; then # Ensure version branch exists
git branch "$target_branch" if ! git rev-parse --verify refs/heads/$target_branch 2>/dev/null; then
fi git branch "$target_branch"
fi
# Merge master branch into version branch # Merge master branch into version branch
git checkout "$target_branch" git checkout "$target_branch"
git merge master git merge master
fi
# Verify that after the merge everything works # Verify that after the merge everything works
"$0" check-date "$0" check-date
@ -236,8 +247,10 @@ eof
"$0" release-git-tag "$0" release-git-tag
# Also merge back the version branch # Also merge back the version branch
git checkout master if [ "$masterbranch" = yes ]; then
git merge "$target_branch" git checkout master
git merge "$target_branch"
fi
# Publish git changes # Publish git changes
make pub make pub

View file

@ -188,7 +188,7 @@ class Local(object):
Return the output as a string. Return the output as a string.
""" """
command = ["/bin/sh", "-e"] command = [ os.environ.get('CDIST_LOCAL_SHELL',"/bin/sh") , "-e"]
command.append(script) command.append(script)
return self.run(command=command, env=env, return_output=return_output, message_prefix=message_prefix) return self.run(command=command, env=env, return_output=return_output, message_prefix=message_prefix)

View file

@ -113,7 +113,7 @@ class Remote(object):
""" """
command = ["/bin/sh", "-e"] command = [ os.environ.get('CDIST_REMOTE_SHELL',"/bin/sh") , "-e"]
command.append(script) command.append(script)
return self.run(command, env, return_output) return self.run(command, env, return_output)

View file

@ -45,10 +45,7 @@ class Shell(object):
"""Select shell to execute, if not specified by user""" """Select shell to execute, if not specified by user"""
if not self.shell: if not self.shell:
if 'SHELL' in os.environ: self.shell = os.environ.get('SHELL',"/bin/sh")
self.shell = os.environ['SHELL']
else:
self.shell = "/bin/sh"
def _init_files_dirs(self): def _init_files_dirs(self):
self.local.create_files_dirs() self.local.create_files_dirs()

View file

@ -6,6 +6,7 @@ Changelog
3.0.3: 3.0.3:
* Core: Enhance error message when requirement is missing object id * Core: Enhance error message when requirement is missing object id
* Core: Add environment variable to select shell for executing scripts (Daniel Heule)
* Explorer hostname: Return host name by using uname -n * Explorer hostname: Return host name by using uname -n
* New Type: __hostname (Steven Armstrong) * New Type: __hostname (Steven Armstrong)

View file

@ -0,0 +1,44 @@
raw quote from irc
16:00 < sar> telmich: btw, ich denke nicht dass man install schon zu gross bewerben
sollte
16:00 < telmich> sar: ack
16:00 < sar> telmich: imho sollten wir erst die cdist environments implementieren,
install waere dann eines davon
16:00 < sar> config ein anderes
16:01 < sar> foobar noch ein anderes
16:01 < sar> es macht einfach keinen sinn auf type ebene install vs nicht-install zu
unterscheiden
16:02 < telmich> sar: environments sind bei mir noch nicht ganz im gehirn (ganicht?)
angelangt - hast du (nochmal?) kurz eine idee, was du damit meinst?
16:02 < sar> telmich: wenn man cdist anschaut, dann macht es eigentlich folgendes:
16:03 < sar> - definiere objekte mit hilfe von types
16:03 < sar> - deps zwischen objekten
16:03 < sar> - queue von objekten abarbeiten und auf $etwas anwenden
16:03 < sar> das ist alles
16:04 < sar> telmich: das ist eigentlich ziemlich generisch
16:04 < sar> telmich: fuer mich wuerde es sich hier anbieten das auch so zu
abstrahieren
16:05 < sar> telmich: ein environment (nenn das mal so weil kein besserer name zzt)
koennte das wie $objekt auf $etwas bestimmen
16:05 < sar> telmich: und auch was fuer types es in diesem environment gibt
16:06 < telmich> sar: klingt gut
16:06 < sar> telmich: e.g. es gibt ein environment fuer config -> was wir jetzt haben
16:06 < sar> eins fuer install -> += was im install branch ist (nur die types), den
python code brauchts nacher nicht mehr
16:07 < sar> eins fuer cisco-switch -> hat types um mit cisco zu spielen
16:07 < sar> usw
16:07 < sar> ein environment hat auch eigene remote-{exec,copy} scripte
16:08 < sar> und vielleicht globale explorer, vielleicht auch nicht
16:08 < sar> ein enviroment ist ein cconfig style directory
16:09 < sar> wo man cdist drueber laufen laesst
16:09 < sar> so was in der art
16:13 < telmich> sar: hmmja...klingt gut
16:15 < telmich> vielleicht etwas für cdist 4 oder cdist 5 :-)
16:15 < telmich> aber ich denke auf jeden fall als grundgedanke behaltbar
16:16 < telmich> ok für dich, wenn ich den chat ins docs/dev/logs kopiere als
erinnerungs
16:16 < telmich> s/s$/?/?
16:16 < telmich> s/?$//
16:20 < sar> klar

View file

@ -127,10 +127,16 @@ usage: __git --source SOURCE [--state STATE] [--branch BRANCH]
ENVIRONMENT ENVIRONMENT
----------- -----------
TMPDIR, TEMP, TMP:: TMPDIR, TEMP, TMP::
Setup the base directory for the temporary directory. Setup the base directory for the temporary directory.
See http://docs.python.org/py3k/library/tempfile.html for See http://docs.python.org/py3k/library/tempfile.html for
more information. This is rather useful, if the standard more information. This is rather useful, if the standard
directory used does not allow executables. directory used does not allow executables.
CDIST_LOCAL_SHELL::
Selects shell for local script execution, defaults to /bin/sh
CDIST_REMOTE_SHELL::
Selects shell for remote scirpt execution, defaults to /bin/sh
EXIT STATUS EXIT STATUS