aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sh/.gitignore1
-rw-r--r--sh/Makefile3
-rw-r--r--sh/migrate-to-run.sh.in36
3 files changed, 39 insertions, 1 deletions
diff --git a/sh/.gitignore b/sh/.gitignore
index 69e3bd03..918a9f65 100644
--- a/sh/.gitignore
+++ b/sh/.gitignore
@@ -4,4 +4,5 @@ openrc-run.sh
cgroup-release-agent.sh
init.sh
init-early.sh
+migrate-to-run.sh
binfmt.sh
diff --git a/sh/Makefile b/sh/Makefile
index 176e7209..259954c7 100644
--- a/sh/Makefile
+++ b/sh/Makefile
@@ -14,7 +14,8 @@ SRCS-FreeBSD=
BIN-FreeBSD=
SRCS-Linux= binfmt.sh.in cgroup-release-agent.sh.in init-early.sh.in \
-BIN-Linux= binfmt.sh cgroup-release-agent.sh init-early.sh
+ migrate-to-run.sh.in
+BIN-Linux= binfmt.sh cgroup-release-agent.sh init-early.sh migrate-to-run.sh
INC-Linux= rc-cgroup.sh
SRCS-NetBSD=
diff --git a/sh/migrate-to-run.sh.in b/sh/migrate-to-run.sh.in
new file mode 100644
index 00000000..7dc85e66
--- /dev/null
+++ b/sh/migrate-to-run.sh.in
@@ -0,0 +1,36 @@
+#!/bin/sh
+# Copyright (c) 2012-2015 The OpenRC Authors.
+# See the Authors file at the top-level directory of this distribution and
+# https://github.com/OpenRC/openrc/blob/master/AUTHORS
+#
+# This file is part of OpenRC. It is subject to the license terms in
+# the LICENSE file found in the top-level directory of this
+# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
+# This file may not be copied, modified, propagated, or distributed
+# except according to the terms contained in the LICENSE file.
+
+. "@LIBEXECDIR@/sh/functions.sh"
+
+if [ -e /run/openrc/softlevel ]; then
+ einfo "The OpenRC dependency data has already been migrated."
+ exit 0
+fi
+
+if [ ! -d /run ]; then
+ eerror "/run is not a directory."
+ eerror "moving /run to /run.pre-openrc"
+ mv /run /run.pre-openrc
+ mkdir /run
+fi
+
+rm -rf /run/openrc
+
+if ! mountinfo -q -f tmpfs /run; then
+ ln -s "@LIBEXECDIR@"/init.d /run/openrc
+else
+ cp -a "@LIBEXECDIR@/init.d" /run/openrc
+ rc-update -u
+fi
+
+einfo "The OpenRC dependency data was migrated successfully."
+exit 0