fix SC2162

This commit is contained in:
josephsmendoza
2022-11-05 19:54:21 +00:00
parent 4ebd41a071
commit 4333ab6a2f
+22 -22
View File
@@ -17,12 +17,12 @@ workdir=/dev/shm/nspawn-oci
mkdir -p $workdir mkdir -p $workdir
skopeo_output=$(echo $workdir/$source | sed s.://./.g) skopeo_output=$(echo $workdir/$source | sed s.://./.g)
mkdir -p $skopeo_output mkdir -p "$skopeo_output"
skopeo copy $source oci:$skopeo_output:latest skopeo copy "$source" oci:"$skopeo_output":latest
umoci_output=$workdir/$hostname umoci_output=$workdir/$hostname
rm -rf $umoci_output rm -rf "$umoci_output"
umoci --verbose unpack --image $skopeo_output $umoci_output umoci --verbose unpack --image "$skopeo_output" "$umoci_output"
oci_config=$umoci_output/config.json oci_config=$umoci_output/config.json
@@ -31,22 +31,22 @@ if $convert;then
mkdir -p /etc/systemd/nspawn mkdir -p /etc/systemd/nspawn
nspawn_config=/etc/systemd/nspawn/$hostname.nspawn nspawn_config=/etc/systemd/nspawn/$hostname.nspawn
cat << end > $nspawn_config cat << end > "$nspawn_config"
[Exec] [Exec]
ProcessTwo=true ProcessTwo=true
end end
for environment in $(jq --compact-output '.process.env' $oci_config | sed "s/[][]//g;s/\"//g;s/,/ /g") for environment in $(jq --compact-output '.process.env' "$oci_config" | sed "s/[][]//g;s/\"//g;s/,/ /g")
do do
echo $environment echo "$environment"
cat << end >> $nspawn_config cat << end >> "$nspawn_config"
Environment=$environment Environment=$environment
end end
done done
cat << end >> $nspawn_config cat << end >> "$nspawn_config"
WorkingDirectory=$(jq --compact-output '.process.cwd' $oci_config | sed "s/[][]//g;s/\"//g;s/,/ /g") WorkingDirectory=$(jq --compact-output '.process.cwd' "$oci_config" | sed "s/[][]//g;s/\"//g;s/,/ /g")
Parameters=$(jq --compact-output '.process.args' $oci_config | sed "s/[][]//g;s/,/ /g") Parameters=$(jq --compact-output '.process.args' "$oci_config" | sed "s/[][]//g;s/,/ /g")
[Network] [Network]
VirtualEthernet=no VirtualEthernet=no
@@ -54,32 +54,32 @@ VirtualEthernet=no
[Files] [Files]
end end
for mount in $(jq -c '.mounts[]' $oci_config); do for mount in $(jq -c '.mounts[]' "$oci_config"); do
source=$(echo $mount | jq -r '.source' ) source=$(echo "$mount" | jq -r '.source' )
echo $source echo "$source"
if [ $source == 'none' ]; then if [ "$source" == 'none' ]; then
echo 'container requires bind mount' echo 'container requires bind mount'
destination=$(echo $mount | jq -r '.destination') destination=$(echo "$mount" | jq -r '.destination')
read -p "$destination:" source read -p "$destination:" source
cat << end >> $nspawn_config cat << end >> "$nspawn_config"
Bind=$source:$destination Bind=$source:$destination
end end
fi fi
done done
machinectl import-fs $umoci_output/rootfs $2 machinectl import-fs "$umoci_output"/rootfs $2
echo "Edit $nspawn_config before starting" echo "Edit $nspawn_config before starting"
else else
# oci mode # oci mode
mkdir -p /etc/systemd/system/systemd-nspawn@$hostname.service.d/ mkdir -p "/etc/systemd/system/systemd-nspawn@$hostname.service.d/"
override=/etc/systemd/system/systemd-nspawn@$hostname.service.d/override.conf override="/etc/systemd/system/systemd-nspawn@$hostname.service.d/override.conf"
cat << end > $override cat << end > "$override"
[Service] [Service]
ExecStart=systemd-nspawn --oci-bundle=/var/lib/machines/%i --machine %i ExecStart=systemd-nspawn --oci-bundle=/var/lib/machines/%i --machine %i
end end
machinectl import-fs $umoci_output $hostname machinectl import-fs "$umoci_output" "$hostname"
echo "Edit /var/lib/machines/$hostname/config.json before starting" echo "Edit /var/lib/machines/$hostname/config.json before starting"
fi fi