lots of fixes for trisquel flidas
[distro-setup] / rootsshsync
index ab904e32223ceded8b2537f342c9017aa6b84876..5be639c8387d64e18d7d1cd70c683c9622a767ae 100755 (executable)
@@ -1,10 +1,32 @@
-#!/bin/bash -l
+#!/bin/bash
 # Copyright (C) 2016 Ian Kelling
-# This program is under GPL v. 3 or later, see <http://www.gnu.org/licenses/>
-if s test -e /q/root/.ssh; then
-    s lnf /q/root/.ssh /root
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+#     http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eE -o pipefail
+trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+
+[[ $EUID == 0 ]] || exec sudo "$BASH_SOURCE" "$@"
+
+if test -e /q/root/.ssh; then
+    dest=/q/root/.ssh
+    /a/exe/lnf $dest /root
 else
-    mkdir /root/.ssh
+    dest=/root/.ssh
+    mkdir -p /root/.ssh
+    chmod 700 /root/.ssh
 fi
-s cp -rL $(eval echo ~${SUDO_USER:-$USER})/.ssh/* /root/.ssh
-s chown -R root:root /root/.ssh
+# -t times, so it won't rewrite the file every time,
+# -L resolve links
+rsync -rtL --delete $(eval echo ~${SUDO_USER:-$USER})/.ssh/ $dest
+chown -R root:root /root/.ssh