From: Harald Hoyer Date: Tue, 22 May 2012 12:28:34 +0000 (+0200) Subject: add dracut-version.sh X-Git-Tag: 019~45 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dbf8f6ba0e503c1eb04cfb7991e0394a22e2e7a8;p=thirdparty%2Fdracut.git add dracut-version.sh --- diff --git a/.gitignore b/.gitignore index 08d713cde..36937832c 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ test*.img /.buildpath /.project +/dracut-version.sh diff --git a/Makefile b/Makefile index d9068c54e..3373ed054 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ manpages = dracut.8 dracut.cmdline.7 dracut.conf.5 dracut-catimages.8 .PHONY: install clean archive rpm testimage test all check AUTHORS doc -all: syncheck +all: syncheck dracut-version.sh doc: $(manpages) dracut.html @@ -32,7 +32,7 @@ dracut.html: dracut.asc $(manpages) http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl dracut.xml rm dracut.xml -install: doc +install: doc dracut-version.sh mkdir -p $(DESTDIR)$(pkglibdir) mkdir -p $(DESTDIR)$(bindir) mkdir -p $(DESTDIR)$(sysconfdir) @@ -45,6 +45,7 @@ install: doc install -m 0644 dracut.conf $(DESTDIR)$(sysconfdir)/dracut.conf mkdir -p $(DESTDIR)$(sysconfdir)/dracut.conf.d install -m 0755 dracut-functions.sh $(DESTDIR)$(pkglibdir)/dracut-functions.sh + install -m 0755 dracut-version.sh $(DESTDIR)$(pkglibdir)/dracut-version.sh ln -s dracut-functions.sh $(DESTDIR)$(pkglibdir)/dracut-functions install -m 0755 dracut-logger.sh $(DESTDIR)$(pkglibdir)/dracut-logger.sh install -m 0755 dracut-initramfs-restore.sh $(DESTDIR)$(pkglibdir)/dracut-initramfs-restore @@ -71,6 +72,9 @@ install: doc $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants/dracut-shutdown.service; \ fi +dracut-version.sh: + @echo "DRACUT_VERSION=$(VERSION)-$(GITVERSION)" > dracut-version.sh + clean: $(RM) *~ $(RM) */*~ diff --git a/dracut.sh b/dracut.sh index c5151d7b9..b52c69197 100755 --- a/dracut.sh +++ b/dracut.sh @@ -27,9 +27,17 @@ dracut_args="$@" usage() { + [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut + if [[ -f $dracutbasedir/dracut-version.sh ]]; then + . $dracutbasedir/dracut-version.sh + fi + # 80x25 linebreak here ^ cat << EOF Usage: $0 [OPTION]... + +Version: $DRACUT_VERSION + Creates initial ramdisk images for preloading modules -f, --force Overwrite existing initramfs file. @@ -249,7 +257,11 @@ while (($# > 0)); do --sshkey) read_arg sshkey "$@" || shift;; -v|--verbose) ((verbosity_mod_l++));; -q|--quiet) ((verbosity_mod_l--));; - -l|--local) allowlocal="yes" ;; + -l|--local) + allowlocal="yes" + [[ -f "$(readlink -f ${0%/*})/dracut-functions.sh" ]] \ + && dracutbasedir="$(readlink -f ${0%/*})" + ;; -H|--hostonly) hostonly_l="yes" ;; --no-hostonly) hostonly_l="no" ;; --fstab) use_fstab_l="yes" ;; @@ -313,9 +325,6 @@ unset GREP_OPTIONS [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut -[[ $allowlocal && -f "$(readlink -f ${0%/*})/dracut-functions.sh" ]] && \ - dracutbasedir="$(readlink -f ${0%/*})" - # if we were not passed a config file, try the default one if [[ ! -f $conffile ]]; then [[ $allowlocal ]] && conffile="$dracutbasedir/dracut.conf" || \ @@ -460,6 +469,10 @@ else exit 1 fi +if [[ -f $dracutbasedir/dracut-version.sh ]]; then + . $dracutbasedir/dracut-version.sh +fi + # Verify bash version, curret minimum is 3.1 if (( ${BASH_VERSINFO[0]} < 3 || ( ${BASH_VERSINFO[0]} == 3 && ${BASH_VERSINFO[1]} < 1 ) )); then @@ -642,7 +655,8 @@ export initdir dracutbasedir dracutmodules drivers \ add_drivers omit_drivers mdadmconf lvmconf filesystems \ use_fstab fstab_lines libdir usrlibdir fscks nofscks \ stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \ - debug host_fs_types host_devs sshkey add_fstab + debug host_fs_types host_devs sshkey add_fstab \ + DRACUT_VERSION # Create some directory structure first [[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}" diff --git a/dracut.spec b/dracut.spec index 201da0d66..144b6e25a 100644 --- a/dracut.spec +++ b/dracut.spec @@ -240,6 +240,7 @@ rm -rf $RPM_BUILD_ROOT %dir %{dracutlibdir}/modules.d %{dracutlibdir}/dracut-functions.sh %{dracutlibdir}/dracut-functions +%{dracutlibdir}/dracut-version.sh %{dracutlibdir}/dracut-logger.sh %{dracutlibdir}/dracut-initramfs-restore %config(noreplace) /etc/dracut.conf