mirror of
https://github.com/raspiblitz/raspiblitz.git
synced 2025-04-11 21:29:29 +02:00
Merge branch 'dev' of https://github.com/rootzoll/raspiblitz into dev
This commit is contained in:
commit
ffc280796b
@ -10,7 +10,7 @@
|
||||
- New: Suez - channel visualization for LND and CLN [details](https://github.com/prusnak/suez)
|
||||
- New: LND Static Channel Backup to Nextcloud
|
||||
- New: Allow SphinxApp to connect over Tor
|
||||
- New: Parallel TESTNET & SIGNET servcies
|
||||
- New: Parallel TESTNET & SIGNET services
|
||||
- Update: Bitcoin Core v22.0 [details](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-22.0.md)
|
||||
- Update: LND v0.13.1 [details](https://github.com/lightningnetwork/lnd/releases/tag/v0.13.1-beta)
|
||||
- Update: Specter Desktop 1.6.0 [details](https://github.com/cryptoadvance/specter-desktop/blob/master/README.md)
|
||||
@ -21,6 +21,7 @@
|
||||
- Update: BTC-RPC-Explorer v3.2.0 [details](https://github.com/janoside/btc-rpc-explorer/blob/master/CHANGELOG.md#v320)
|
||||
- Update: stacking-sats-kraken 0.4.4 [details](https://github.com/dennisreimann/stacking-sats-kraken/blob/master/README.md)
|
||||
- Update: BTCPayServer 1.2.3 [details](https://github.com/btcpayserver/btcpayserver/releases/tag/v1.2.3)
|
||||
- Update: Lightning Terminal v0.5.1-alpha [details](https://github.com/lightninglabs/lightning-terminal/releases/tag/v0.5.1-alpha)
|
||||
- Update: RTL 0.11.2 [details](https://github.com/Ride-The-Lightning/RTL/releases/tag/v0.11.2)
|
||||
- Update: Lightning Terminal v0.5.0-alpha [details](https://github.com/lightninglabs/lightning-terminal/releases/tag/v0.5.0-alpha)
|
||||
- Update: Thunderhub v0.12.25 [details](https://github.com/apotdevin/thunderhub/releases/tag/v0.12.25)
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# https://github.com/lightninglabs/lightning-terminal/releases
|
||||
LITVERSION="0.5.0-alpha"
|
||||
LITVERSION="0.5.1-alpha"
|
||||
|
||||
# command info
|
||||
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||
@ -12,7 +12,7 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||
fi
|
||||
|
||||
# check who signed the release in https://github.com/lightninglabs/lightning-terminal/releases
|
||||
PGPsigner="roasbeef"
|
||||
PGPsigner="guggero"
|
||||
|
||||
if [ $PGPsigner = guggero ];then
|
||||
PGPpkeys="https://keybase.io/guggero/pgp_keys.asc"
|
||||
@ -93,8 +93,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||
if [ ${isInstalled} -eq 0 ]; then
|
||||
|
||||
# create dedicated user
|
||||
sudo adduser --disabled-password --gecos "" lit || exit 1
|
||||
|
||||
sudo adduser --disabled-password --gecos "" lit
|
||||
# make sure symlink to central app-data directory exists
|
||||
sudo rm -rf /home/lit/.lnd # not a symlink.. delete it silently
|
||||
# create symlink
|
||||
@ -188,7 +187,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||
wget -N https://github.com/lightninglabs/lightning-terminal/releases/download/v${LITVERSION}/${binaryName}
|
||||
|
||||
echo "# check binary was not manipulated (checksum test)"
|
||||
wget -N https://github.com/lightninglabs/lightning-terminal/releases/download/v${LITVERSION}/manifest-${PGPsigner}-v${LITVERSION}.sig
|
||||
wget -N https://github.com/lightninglabs/lightning-terminal/releases/download/v${LITVERSION}/manifest-v${LITVERSION}.sig
|
||||
wget --no-check-certificate ${PGPpkeys}
|
||||
binaryChecksum=$(sha256sum ${binaryName} | cut -d " " -f1)
|
||||
if [ "${binaryChecksum}" != "${SHA256}" ]; then
|
||||
@ -209,7 +208,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||
fi
|
||||
gpg --import ./pgp_keys.asc
|
||||
sleep 3
|
||||
verifyResult=$(gpg --verify manifest-${PGPsigner}-v${LITVERSION}.sig manifest-v${LITVERSION}.txt 2>&1)
|
||||
verifyResult=$(gpg --verify manifest-v${LITVERSION}.sig manifest-v${LITVERSION}.txt 2>&1)
|
||||
goodSignature=$(echo ${verifyResult} | grep 'Good signature' -c)
|
||||
echo "goodSignature(${goodSignature})"
|
||||
correctKey=$(echo ${verifyResult} | tr -d " \t\n\r" | grep "${GPGcheck}" -c)
|
||||
|
@ -208,7 +208,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||
|
||||
echo "# --> Installing prerequisites"
|
||||
sudo apt update
|
||||
sudo apt install -y libusb-1.0.0-dev libudev-dev virtualenv libffi-dev
|
||||
sudo apt-get install -y virtualenv libffi-dev libusb-1.0.0-dev libudev-dev
|
||||
|
||||
sudo adduser --disabled-password --gecos "" specter
|
||||
|
||||
@ -225,15 +225,15 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||
sudo ln -s /mnt/hdd/app-data/.specter /home/specter/ 2>/dev/null
|
||||
sudo chown -R specter:specter /home/specter/.specter
|
||||
|
||||
# activating Authentication here ...
|
||||
configure_specter
|
||||
|
||||
echo "# --> creating a virtualenv"
|
||||
sudo -u specter virtualenv --python=python3 /home/specter/.env
|
||||
|
||||
echo "# --> pip-installing specter"
|
||||
sudo -u specter /home/specter/.env/bin/python3 -m pip install --upgrade cryptoadvance.specter==$pinnedVersion
|
||||
|
||||
sudo -u specter /home/specter/.env/bin/python3 -m pip install --upgrade cryptoadvance.specter==$pinnedVersion || exit 1
|
||||
|
||||
# activating Authentication here ...
|
||||
configure_specter
|
||||
|
||||
# Mandatory as the camera doesn't work without https
|
||||
echo "# --> Creating self-signed certificate"
|
||||
openssl req -x509 -newkey rsa:4096 -nodes -out /tmp/cert.pem -keyout /tmp/key.pem -days 365 -subj "/C=US/ST=Nooneknows/L=Springfield/O=Dis/CN=www.fakeurl.com"
|
||||
@ -246,7 +246,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
||||
echo "# --> Updating Firewall"
|
||||
sudo ufw allow 25441 comment 'specter'
|
||||
sudo ufw --force enable
|
||||
echo ""
|
||||
echo
|
||||
|
||||
echo "# --> Installing udev-rules for hardware-wallets"
|
||||
|
||||
|
@ -2,18 +2,20 @@
|
||||
|
||||
# command info
|
||||
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||
echo "# ---------------------------------------------------"
|
||||
echo "# CLN RESCUE FILE (tar.gz of complete cln directory)"
|
||||
echo "# ---------------------------------------------------"
|
||||
echo "# cln.backup.sh cln-export"
|
||||
echo "# cln.backup.sh cln-export-gui"
|
||||
echo "# cln.backup.sh cln-import [file]"
|
||||
echo "# cln.backup.sh cln-import-gui [setup|production] [?resultfile]"
|
||||
echo "# ---------------------------------------------------"
|
||||
echo "# SEED WORDS"
|
||||
echo "# ---------------------------------------------------"
|
||||
echo "# cln.backup.sh seed-export-gui [lndseeddata]"
|
||||
echo "# cln.backup.sh seed-import-gui [resultfile]"
|
||||
echo
|
||||
echo "---------------------------------------------------"
|
||||
echo "CLN RESCUE FILE (tar.gz of complete cln directory)"
|
||||
echo "---------------------------------------------------"
|
||||
echo "cln.backup.sh cln-export"
|
||||
echo "cln.backup.sh cln-export-gui"
|
||||
echo "cln.backup.sh cln-import [file]"
|
||||
echo "cln.backup.sh cln-import-gui [setup|production] [?resultfile]"
|
||||
echo "---------------------------------------------------"
|
||||
echo "SEED WORDS"
|
||||
echo "---------------------------------------------------"
|
||||
echo "cln.backup.sh seed-export-gui [lndseeddata]"
|
||||
echo "cln.backup.sh seed-import-gui [resultfile]"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -9,26 +9,26 @@
|
||||
if [ $# -lt 1 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]||\
|
||||
! echo "$@" | grep -Eq "new|seed|unlock|lock|encrypt|decrypt|autounlock-on|autounlock-off|change-password" ;then
|
||||
echo
|
||||
echo "# create new wallet or import seed"
|
||||
echo "# unlock/lock, encrypt, decrypt, set autounlock or change password for the hsm_secret"
|
||||
echo "Create new wallet or import seed"
|
||||
echo "Unlock/lock, encrypt, decrypt, set autounlock or change password for the hsm_secret"
|
||||
echo
|
||||
echo "# usage:"
|
||||
echo "# Create new wallet"
|
||||
echo "# cln.hsmtool.sh [new] [mainnet|testnet|signet] [?seedPassword]"
|
||||
echo "# cln.hsmtool.sh [new-force] [mainnet|testnet|signet] [?seedPassword]"
|
||||
echo "# There will be no seedPassword(passphrase) used by default"
|
||||
echo "# new-force will delete any old wallet and will work without dialog"
|
||||
echo "Usage:"
|
||||
echo "Create new wallet:"
|
||||
echo "cln.hsmtool.sh [new] [mainnet|testnet|signet] [?seedPassword]"
|
||||
echo "cln.hsmtool.sh [new-force] [mainnet|testnet|signet] [?seedPassword]"
|
||||
echo "There will be no seedPassword(passphrase) used by default"
|
||||
echo "new-force will delete any old wallet and will work without dialog"
|
||||
echo
|
||||
echo "# cln.hsmtool.sh [seed] [mainnet|testnet|signet] [\"space-separated-seed-words\"] [?seedPassword]"
|
||||
echo "# cln.hsmtool.sh [seed-force] [mainnet|testnet|signet] [\"space-separated-seed-words\"] [?seedPassword]"
|
||||
echo "# the new hsm_secret will be not encrypted if no NewPassword is given"
|
||||
echo "# seed-force will delete any old wallet and will work without dialog"
|
||||
echo "cln.hsmtool.sh [seed] [mainnet|testnet|signet] [\"space-separated-seed-words\"] [?seedPassword]"
|
||||
echo "cln.hsmtool.sh [seed-force] [mainnet|testnet|signet] [\"space-separated-seed-words\"] [?seedPassword]"
|
||||
echo "The new hsm_secret will be not encrypted if no NewPassword is given"
|
||||
echo "seed-force will delete any old wallet and will work without dialog"
|
||||
echo
|
||||
echo "# cln.hsmtool.sh [unlock|lock] <mainnet|testnet|signet>"
|
||||
echo "# cln.hsmtool.sh [encrypt|decrypt] <mainnet|testnet|signet>"
|
||||
echo "# cln.hsmtool.sh [autounlock-on|autounlock-off] <mainnet|testnet|signet>"
|
||||
echo "cln.hsmtool.sh [unlock|lock] <mainnet|testnet|signet>"
|
||||
echo "cln.hsmtool.sh [encrypt|decrypt] <mainnet|testnet|signet>"
|
||||
echo "cln.hsmtool.sh [autounlock-on|autounlock-off] <mainnet|testnet|signet>"
|
||||
echo
|
||||
echo "# cln.hsmtool.sh [change-password] <mainnet|testnet|signet> <NewPassword>"
|
||||
echo "cln.hsmtool.sh [change-password] <mainnet|testnet|signet> <NewPassword>"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
@ -1,8 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
# script to set up or update the CLN systemd service
|
||||
# usage:
|
||||
# /home/admin/config.scripts/cln.install-service.sh $CHAIN
|
||||
# help
|
||||
if [ "$1" = "-h" ]||[ "$1" = "--help" ];then
|
||||
echo
|
||||
echo "Script to set up or update the C-lightning systemd service"
|
||||
echo "Usage:"
|
||||
echo "/home/admin/config.scripts/cln.install-service.sh <mainnet|testnet|signet>"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# source <(/home/admin/config.scripts/network.aliases.sh getvars cln <mainnet|testnet|signet>)
|
||||
source <(/home/admin/config.scripts/network.aliases.sh getvars cln $1)
|
||||
|
@ -16,14 +16,14 @@ source /mnt/hdd/raspiblitz.conf
|
||||
if [ $# -eq 0 ]||[ "$1" = "-h" ]||[ "$1" = "--help" ];then
|
||||
echo
|
||||
echo "C-lightning install script"
|
||||
echo "the default version is: $CLVERSION"
|
||||
echo "setting up on ${chain}net unless otherwise specified"
|
||||
echo "The default version is: $CLVERSION"
|
||||
echo "Setting up on ${chain}net unless otherwise specified"
|
||||
echo "mainnet / testnet / signet instances can run parallel"
|
||||
echo
|
||||
echo "usage:"
|
||||
echo "Usage:"
|
||||
echo "cln.install.sh on <mainnet|testnet|signet>"
|
||||
echo "cln.install.sh off <mainnet|testnet|signet> <purge>"
|
||||
echo "cln.install.sh [update <version>|experimental|testPR <PRnumber>]"
|
||||
echo "cln.install.sh [update <version>|testPR <PRnumber>]"
|
||||
echo "cln.install.sh display-seed <mainnet|testnet|signet>"
|
||||
echo
|
||||
exit 1
|
||||
@ -61,8 +61,7 @@ if [ "$1" = on ]||[ "$1" = update ]||[ "$1" = experimental ]||[ "$1" = testPR ];
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f /usr/local/bin/lightningd ]||[ "$1" = update ]||[ "$1" = experimental ]||[ "$1" = testPR ];then
|
||||
|
||||
if [ ! -f /usr/local/bin/lightningd ]||[ "$1" = update ]||[ "$1" = testPR ];then
|
||||
|
||||
########################
|
||||
# Install dependencies #
|
||||
@ -84,7 +83,7 @@ if [ "$1" = on ]||[ "$1" = update ]||[ "$1" = experimental ]||[ "$1" = testPR ];
|
||||
####################################
|
||||
|
||||
cd /home/bitcoin || exit 1
|
||||
if [ "$1" = "update" ] || [ "$1" = "testPR" ] || [ "$1" = "experimental" ]; then
|
||||
if [ "$1" = "update" ]||[ "$1" = "testPR" ]||[ "$1" = "experimental" ];then
|
||||
echo
|
||||
echo "# Deleting the old source code"
|
||||
sudo rm -rf lightning
|
||||
@ -94,37 +93,35 @@ if [ "$1" = on ]||[ "$1" = update ]||[ "$1" = experimental ]||[ "$1" = testPR ];
|
||||
echo
|
||||
sudo -u bitcoin git clone https://github.com/ElementsProject/lightning.git
|
||||
cd lightning || exit 1
|
||||
echo
|
||||
|
||||
if [ "$1" = "testPR" ]; then
|
||||
if [ "$1" = "update" ]; then
|
||||
if [ $# -gt 1 ];then
|
||||
CLVERSION=$2
|
||||
echo "# Installing the version $CLVERSION"
|
||||
else
|
||||
echo "# Updating to the latest commit in:"
|
||||
echo "# https://github.com/ElementsProject/lightning"
|
||||
fi
|
||||
|
||||
elif [ "$1" = "testPR" ]; then
|
||||
PRnumber=$2 || exit 1
|
||||
echo
|
||||
echo "# Using the PR:"
|
||||
echo "# https://github.com/ElementsProject/lightning/pull/$PRnumber"
|
||||
sudo -u bitcoin git fetch origin pull/$PRnumber/head:pr$PRnumber || exit 1
|
||||
sudo -u bitcoin git checkout pr$PRnumber || exit 1
|
||||
echo "# Building with EXPERIMENTAL_FEATURES enabled"
|
||||
echo
|
||||
sudo -u bitcoin ./configure --enable-experimental-features
|
||||
elif [ "$1" = "experimental" ]; then
|
||||
echo
|
||||
echo "# Updating to the latest commit in:"
|
||||
echo "# https://github.com/ElementsProject/lightning"
|
||||
echo
|
||||
echo "# Building with EXPERIMENTAL_FEATURES enabled"
|
||||
sudo -u bitcoin ./configure --enable-experimental-features
|
||||
|
||||
else
|
||||
if [ "$1" = "update" ]; then
|
||||
CLVERSION=$2
|
||||
echo "# Updating to the version $CLVERSION"
|
||||
fi
|
||||
echo "# Installing the version $CLVERSION"
|
||||
sudo -u bitcoin git reset --hard $CLVERSION
|
||||
sudo -u bitcoin ./configure
|
||||
fi
|
||||
|
||||
echo "# Building with EXPERIMENTAL_FEATURES enabled"
|
||||
echo
|
||||
sudo -u bitcoin ./configure --enable-experimental-features
|
||||
echo
|
||||
currentCLversion=$(cd /home/bitcoin/lightning 2>/dev/null; \
|
||||
git describe --tags 2>/dev/null)
|
||||
sudo -u bitcoin ./configure
|
||||
echo
|
||||
echo "# Building from source C-lightning $currentCLversion"
|
||||
echo
|
||||
sudo -u bitcoin make
|
||||
@ -136,6 +133,7 @@ if [ "$1" = on ]||[ "$1" = update ]||[ "$1" = experimental ]||[ "$1" = testPR ];
|
||||
sudo make install || exit 1
|
||||
# clean up
|
||||
# cd .. && rm -rf lightning
|
||||
|
||||
else
|
||||
installedVersion=$(sudo -u bitcoin /usr/local/bin/lightningd --version)
|
||||
echo "# C-lightning ${installedVersion} is already installed"
|
||||
@ -223,12 +221,12 @@ alias ${netprefix}clnconf=\"sudo\
|
||||
echo "${netprefix}lightning-cli help"
|
||||
echo
|
||||
|
||||
# setting value in raspi blitz config
|
||||
# setting value in the raspiblitz.conf
|
||||
sudo sed -i "s/^${netprefix}cln=.*/${netprefix}cln=on/g" /mnt/hdd/raspiblitz.conf
|
||||
|
||||
# if this is the first lighting mainnet turned on - make default
|
||||
# if this is the first lightning mainnet turned on - make default
|
||||
if [ "${CHAIN}" == "mainnet" ] && [ "${lightning}" == "" ]; then
|
||||
echo "# CLN is now default lighthning implementation"
|
||||
echo "# CLN is now the default lightning implementation"
|
||||
sudo sed -i "s/^lightning=.*/lightning=cln/g" /mnt/hdd/raspiblitz.conf
|
||||
fi
|
||||
|
||||
@ -243,7 +241,7 @@ if [ "$1" = "display-seed" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# get network and aliasses from second parameter (default mainnet)
|
||||
# get network and aliases from second parameter (default mainnet)
|
||||
displayNetwork=$2
|
||||
if [ "${displayNetwork}" == "" ]; then
|
||||
displayNetwork="mainnet"
|
||||
@ -252,9 +250,9 @@ if [ "$1" = "display-seed" ]; then
|
||||
|
||||
# check if seedword file exists
|
||||
seedwordFile="/home/bitcoin/.lightning/${CLNETWORK}/seedwords.info"
|
||||
echo "# seewordFile(${seedwordFile})"
|
||||
echo "# seedwordFile(${seedwordFile})"
|
||||
seedwordFileExists=$(ls ${seedwordFile} 2>/dev/null | grep -c "seedwords.info")
|
||||
echo "# seewordFileExists(${seewordFileExists})"
|
||||
echo "# seedwordFileExists(${seewordFileExists})"
|
||||
if [ "${seedwordFileExists}" == "1" ]; then
|
||||
source ${seedwordFile}
|
||||
#echo "# seedwords(${seedwords})"
|
||||
@ -270,7 +268,7 @@ if [ "$1" = "display-seed" ]; then
|
||||
fi
|
||||
done
|
||||
else
|
||||
hsmFile="/home/bitcoin/.lightning/${CLNETWORK}/hsm_secret"
|
||||
# hsmFile="/home/bitcoin/.lightning/${CLNETWORK}/hsm_secret"
|
||||
whiptail --title "C-Lightning ${displayNetwork} Wallet Info" --msgbox "Your C-Lightning ${displayNetwork} wallet was already created before - there are no seed words available.\n\nTo secure your wallet secret you can manually backup the file: /home/bitcoin/.lightning/${CLNETWORK}/hsm_secret" 11 76
|
||||
fi
|
||||
|
||||
@ -289,15 +287,15 @@ if [ "$1" = "off" ];then
|
||||
sudo rm -f /usr/local/bin/lightningd
|
||||
sudo rm -f /usr/local/bin/lightning-cli
|
||||
fi
|
||||
# setting value in raspi blitz config
|
||||
# setting value in the raspiblitz.conf
|
||||
sudo sed -i "s/^${netprefix}cln=.*/${netprefix}cln=off/g" /mnt/hdd/raspiblitz.conf
|
||||
|
||||
# if cln mainnet was default - remove
|
||||
if [ "${CHAIN}" == "mainnet" ] && [ "${lightning}" == "cln" ]; then
|
||||
echo "# CLN is REMOVED as default lightning implementation"
|
||||
echo "# CLN is REMOVED as the default lightning implementation"
|
||||
sudo sed -i "s/^lightning=.*/lightning=/g" /mnt/hdd/raspiblitz.conf
|
||||
if [ "${lnd}" == "on" ]; then
|
||||
echo "# LND is now new default lightning implementation"
|
||||
echo "# LND is now the new default lightning implementation"
|
||||
sudo sed -i "s/^lightning=.*/lightning=lnd/g" /mnt/hdd/raspiblitz.conf
|
||||
fi
|
||||
fi
|
||||
|
@ -7,12 +7,11 @@ CLRESTVERSION="v0.5.1"
|
||||
if [ $# -eq 0 ]||[ "$1" = "-h" ]||[ "$1" = "--help" ];then
|
||||
echo
|
||||
echo "C-lightning-REST install script"
|
||||
echo "the default version is: $CLRESTVERSION"
|
||||
echo "setting up on ${chain}net unless otherwise specified"
|
||||
echo "The default version is: $CLRESTVERSION"
|
||||
echo "mainnet | testnet | signet instances can run parallel"
|
||||
echo "the same macaroon and certs will be used for the parallel networks"
|
||||
echo "The same macaroon and certs will be used for the parallel networks"
|
||||
echo
|
||||
echo "usage:"
|
||||
echo "Usage:"
|
||||
echo "cln.rest.sh [on|off|connect] <mainnet|testnet|signet>"
|
||||
echo
|
||||
exit 1
|
||||
|
@ -2,9 +2,11 @@
|
||||
|
||||
# command info
|
||||
if [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
||||
echo "small config script to set alias of the C-lightning node "
|
||||
echo "cln.setname.sh [mainnet|testnet|signet] [?newName]"
|
||||
exit 1
|
||||
echo
|
||||
echo "Config script to set the alias of the C-lightning node"
|
||||
echo "cln.setname.sh [mainnet|testnet|signet] [?newName]"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1. parameter [?newName]
|
||||
|
Loading…
x
Reference in New Issue
Block a user