2023-03-03 10:52:29 -05:00
#!/bin/bash
2023-05-06 10:31:31 -04:00
# This should allow Blueprint to run in docker. Please note that changing the $FOLDER variable after running
# the Blueprint installation script will not change anything in any files besides blueprint.sh.
2023-05-06 10:21:22 -04:00
FOLDER = "pterodactyl"
if [ [ -f ".dockerenv" ] ] ; then
DOCKER = "y" ;
FOLDER = "html"
fi ;
2023-04-24 10:43:31 -04:00
# If the fallback version below does not match your downloaded version, please let us know.
2023-05-09 16:07:29 -04:00
VER_FALLBACK = "indev-AXN" ;
2023-04-24 10:43:31 -04:00
2023-05-06 10:21:22 -04:00
# This will be automatically replaced by some marketplaces, if not, $VER_FALLBACK will be used as fallback.
2023-04-24 10:43:31 -04:00
PM_VERSION = "([(pterodactylmarket_version)])" ;
2023-05-09 11:45:02 -04:00
if [ [ -d " /var/www/ $FOLDER /blueprint " ] ] ; then mv /var/www/$FOLDER /blueprint /var/www/$FOLDER /.blueprint; fi ;
2023-04-25 13:33:21 -04:00
2023-05-04 16:01:35 -04:00
# BUILT_FROM_SOURCE="y"; # If you downloaded Blueprint from a release instead of building it, this should be "n".
2023-05-09 11:52:08 -04:00
if [ [ $BUILT_FROM_SOURCE = = "y" ] ] ; then if [ [ ! -f " /var/www/ $FOLDER /.blueprint/.storage/versionschemefix.flag " ] ] ; then sed -E -i "s*&bp.version&*source*g" app/Services/Helpers/BlueprintPlaceholderService.php; touch /var/www/$FOLDER /.blueprint/.storage/versionschemefix.flag; fi ; VERSION = "source" ;
2023-05-04 16:01:35 -04:00
elif [ [ $PM_VERSION = = "([(pterodactylmarket" "_version)])" ] ] ; then
2023-04-24 10:43:31 -04:00
# This runs when the placeholder has not changed, indicating an issue with PterodactylMarket
# or Blueprint being installed from other sources.
2023-05-09 11:52:08 -04:00
if [ [ ! -f " /var/www/ $FOLDER /.blueprint/.storage/versionschemefix.flag " ] ] ; then
2023-04-24 10:43:31 -04:00
sed -E -i " s*&bp.version&* $VER_FALLBACK *g " app/Services/Helpers/BlueprintPlaceholderService.php;
2023-05-09 11:52:08 -04:00
touch /var/www/$FOLDER /.blueprint/.storage/versionschemefix.flag;
2023-04-24 10:43:31 -04:00
fi ;
VERSION = $VER_FALLBACK ;
elif [ [ $PM_VERSION != "([(pterodactylmarket" "_version)])" ] ] ; then
# This runs in case it is possible to use the PterodactylMarket placeholder instead of the
# fallback version.
2023-05-09 11:52:08 -04:00
if [ [ ! -f " /var/www/ $FOLDER /.blueprint/.storage/versionschemefix.flag " ] ] ; then
2023-04-24 10:43:31 -04:00
sed -E -i " s*&bp.version&* $PM_VERSION *g " app/Services/Helpers/BlueprintPlaceholderService.php;
2023-05-09 11:52:08 -04:00
touch /var/www/$FOLDER /.blueprint/.storage/versionschemefix.flag;
2023-04-24 10:43:31 -04:00
fi ;
VERSION = $PM_VERSION ;
fi ;
2023-05-09 11:59:12 -04:00
# Fix for Blueprint's bash database to work with docker and custom folder installations.
sed -i " s!&bp.folder&! $FOLDER !g " /var/www/$FOLDER /.blueprint/lib/db.sh;
2023-03-19 16:02:29 -04:00
source .blueprint/lib/bash_colors.sh;
2023-03-22 05:47:43 -04:00
source .blueprint/lib/parse_yaml.sh;
2023-03-22 04:28:14 -04:00
source .blueprint/lib/db.sh;
2023-03-03 10:52:29 -05:00
2023-05-06 10:21:22 -04:00
cd /var/www/$FOLDER ;
2023-04-23 15:23:15 -04:00
if [ [ " $@ " = = *"-php" * ] ] ; then
exit 1;
fi ;
2023-04-05 15:26:33 -04:00
export NEWT_COLORS = '
root = ,black
window = black,blue
title = white,blue
border = blue,blue
textbox = white,blue
listbox = white,black
button = white,blue
' ;
error( ) {
whiptail --title " ◆ " --ok-button "ok" --msgbox " Sorry, this operation could not be completed. For troubleshooting, please go to ptero.shop/error.\n\n\" ${ 1 } \" " 15 60;
2023-05-09 12:16:28 -04:00
log_red " ${ 1 } " ;
2023-04-05 15:26:33 -04:00
exit 1;
} ;
2023-04-02 14:47:24 -04:00
touch /usr/local/bin/blueprint > /dev/null;
2023-05-06 10:21:22 -04:00
echo -e " #!/bin/bash\nbash /var/www/ $FOLDER /blueprint.sh -bash \$@; " > /usr/local/bin/blueprint;
chmod u+x /var/www/$FOLDER /blueprint.sh > /dev/null;
2023-04-02 14:47:24 -04:00
chmod u+x /usr/local/bin/blueprint > /dev/null;
2023-03-23 06:54:40 -04:00
if [ [ $1 != "-bash" ] ] ; then
2023-03-03 10:52:29 -05:00
if dbValidate "blueprint.setupFinished" ; then
2023-05-09 12:16:28 -04:00
log_blue "This command only works if you have yet to install Blueprint. You can run \"\033[1;94mblueprint\033[0m\033[0;34m\" instead." ;
2023-03-22 05:20:59 -04:00
exit 1;
2023-03-03 10:52:29 -05:00
else
2023-05-06 10:21:22 -04:00
if [ [ $DOCKER = = "y" ] ] ; then
2023-05-09 12:16:28 -04:00
log_red "Running Blueprint with Docker may result in issues." ;
2023-05-06 10:21:22 -04:00
fi ;
2023-05-09 15:15:13 -04:00
sed -i " s!&bp.folder&! $FOLDER !g " /var/www/$FOLDER /app/Services/Helpers/BlueprintPlaceholderService.php;
2023-05-06 10:31:31 -04:00
sed -i " s!&bp.folder&! $FOLDER !g " /var/www/$FOLDER /resources/views/layouts/admin.blade.php;
2023-05-06 10:21:22 -04:00
2023-05-09 12:16:28 -04:00
log_bright "php artisan down" ;
2023-04-10 10:50:23 -04:00
php artisan down;
2023-05-09 12:16:28 -04:00
log_bright " /var/www/ $FOLDER /public/themes/pterodactyl/css/pterodactyl.css " ;
2023-05-06 10:21:22 -04:00
sed -i "s!@import 'checkbox.css';!@import 'checkbox.css';\n@import url(/assets/extensions/blueprint/blueprint.style.css);\n/* blueprint reserved line */!g" /var/www/$FOLDER /public/themes/pterodactyl/css/pterodactyl.css;
2023-03-06 13:11:53 -05:00
2023-05-09 12:16:28 -04:00
log_bright "php artisan view:clear" ;
2023-04-10 10:50:23 -04:00
php artisan view:clear;
2023-03-08 12:35:54 -05:00
2023-05-09 12:16:28 -04:00
log_bright "php artisan config:clear" ;
2023-04-10 10:50:23 -04:00
php artisan config:clear;
2023-03-06 13:11:53 -05:00
2023-03-08 12:35:54 -05:00
2023-05-09 12:16:28 -04:00
log_bright "php artisan migrate" ;
2023-04-10 10:50:23 -04:00
php artisan migrate;
2023-04-08 10:14:36 -04:00
2023-05-09 12:16:28 -04:00
log_bright " chown -R www-data:www-data /var/www/ $FOLDER /* " ;
2023-05-06 10:21:22 -04:00
chown -R www-data:www-data /var/www/$FOLDER /*;
2023-03-06 13:11:53 -05:00
2023-05-09 12:16:28 -04:00
log_bright " chown -R www-data:www-data /var/www/ $FOLDER /.* " ;
2023-05-06 10:21:22 -04:00
chown -R www-data:www-data /var/www/$FOLDER /.*;
2023-04-10 10:50:23 -04:00
2023-05-09 12:16:28 -04:00
log_bright "php artisan up" ;
2023-04-10 10:50:23 -04:00
php artisan up;
2023-03-19 15:20:01 -04:00
2023-05-09 12:16:28 -04:00
log_blue "\n\nBlueprint should now be installed. If something didn't work as expected, please let us know at discord.gg/CUwHwv6xRe." ;
2023-04-10 11:13:28 -04:00
2023-03-03 11:00:03 -05:00
dbAdd "blueprint.setupFinished" ;
2023-03-22 05:20:59 -04:00
exit 1;
2023-03-03 10:52:29 -05:00
fi ;
2023-03-19 15:20:01 -04:00
fi ;
2023-04-02 15:12:21 -04:00
if [ [ ( $2 = = "-i" ) || ( $2 = = "-install" ) ] ] ; then
2023-04-14 11:19:15 -04:00
if [ [ $( expr $# - 2) != 1 ] ] ; then error " Expected 1 argument but got $( expr $# - 2) . " ; fi ;
2023-03-22 05:20:59 -04:00
FILE = $3 ".blueprint"
2023-04-05 15:26:33 -04:00
if [ [ ! -f " $FILE " ] ] ; then error " $FILE could not be found. " ; fi ;
2023-03-22 05:20:59 -04:00
2023-04-23 11:24:23 -04:00
ZIP = $3 ".zip" ;
2023-05-09 12:08:22 -04:00
cp $FILE .blueprint/.storage/tmp/$ZIP ;
cd .blueprint/.storage/tmp;
2023-03-22 05:47:43 -04:00
unzip $ZIP ;
2023-04-14 11:19:15 -04:00
rm $ZIP ;
if [ [ ! -f " $3 /* " ] ] ; then
cd ..;
rm -R tmp;
mkdir tmp;
cd tmp;
mkdir ./$3 ;
cp ../../$FILE ./$3 /$ZIP ;
cd $3 ;
unzip $ZIP ;
rm $ZIP ;
cd ..;
2023-04-12 12:10:45 -04:00
fi ;
2023-04-17 10:54:12 -04:00
2023-05-06 10:21:22 -04:00
cd /var/www/$FOLDER ;
2023-03-22 05:20:59 -04:00
2023-05-09 12:08:22 -04:00
eval $( parse_yaml .blueprint/.storage/tmp/$3 /conf.yml)
2023-03-27 15:17:57 -04:00
2023-04-18 04:07:55 -04:00
if [ [ $flags != *"-placeholders.skip;" * ] ] ; then
2023-05-09 12:08:22 -04:00
DIR = .blueprint/.storage/tmp/$3 /*;
2023-04-17 10:54:12 -04:00
# ^#version#^ = version
# ^#author#^ = author
for f in $DIR ; do
sed -i " s~^#version#^~ $version ~g " $f ;
sed -i " s~^#author#^~ $author ~g " $f ;
2023-04-18 04:07:55 -04:00
echo " Done placeholders in ' $f '. " ;
2023-04-17 10:54:12 -04:00
done ;
2023-04-18 04:07:55 -04:00
else echo "-placeholders.skip;" ; fi ;
2023-04-17 10:54:12 -04:00
2023-05-09 12:08:22 -04:00
if [ [ $name = = "" ] ] ; then rm -R .blueprint/.storage/tmp/$3 ; error "'name' is a required option." ; fi ;
if [ [ $identifier = = "" ] ] ; then rm -R .blueprint/.storage/tmp/$3 ; error "'identifier' is a required option." ; fi ;
if [ [ $description = = "" ] ] ; then rm -R .blueprint/.storage/tmp/$3 ; error "'description' is a required option." ; fi ;
if [ [ $version = = "" ] ] ; then rm -R .blueprint/.storage/tmp/$3 ; error "'version' is a required option." ; fi ;
if [ [ $target = = "" ] ] ; then rm -R .blueprint/.storage/tmp/$3 ; error "'target' is a required option." ; fi ;
if [ [ $icon = = "" ] ] ; then rm -R .blueprint/.storage/tmp/$3 ; error "'icon' is a required option." ; fi ;
2023-03-27 15:17:57 -04:00
2023-05-09 12:08:22 -04:00
if [ [ $controller_location = = "" ] ] ; then rm -R .blueprint/.storage/tmp/$3 ; error "'controller_location' is a required option." ; fi ;
if [ [ $view_location = = "" ] ] ; then rm -R .blueprint/.storage/tmp/$3 ; error "'view_location' is a required option." ; fi ;
2023-04-12 11:04:15 -04:00
2023-05-09 12:16:28 -04:00
if [ [ $target != $VERSION ] ] ; then log_red " This extension is built for version $target , but your version is $VERSION . " ; fi ;
2023-05-09 12:08:22 -04:00
if [ [ $identifier != $3 ] ] ; then rm -R .blueprint/.storage/tmp/$3 ; error "The extension identifier should be exactly the same as your .blueprint file (just without the .blueprint). This may be subject to change, but is currently required." ; fi ;
if [ [ $identifier = = "blueprint" ] ] ; then rm -R .blueprint/.storage/tmp/$3 ; error "The operation could not be completed since the extension is attempting to overwrite internal files." ; fi ;
2023-04-01 07:20:25 -04:00
2023-04-18 11:01:41 -04:00
if [ [ $identifier = ~ [ a-z] ] ] ; then echo "ok" ;
2023-05-09 12:08:22 -04:00
else rm -R .blueprint/.storage/tmp/$3 ; error "The extension identifier should be lowercase and only contain characters a-z." ; fi ;
2023-03-22 05:20:59 -04:00
2023-05-09 12:08:22 -04:00
if [ [ ! -f " .blueprint/.storage/tmp/ $3 / $icon " ] ] ; then rm -R .blueprint/.storage/tmp/$3 ; error "The 'icon' path points to a nonexisting file." ; fi ;
2023-04-14 11:19:15 -04:00
2023-04-12 11:04:15 -04:00
if [ [ $migrations_directory != "" ] ] ; then
2023-04-01 06:59:27 -04:00
if [ [ $migrations_enabled = = "yes" ] ] ; then
2023-05-09 12:08:22 -04:00
cp -R .blueprint/.storage/tmp/$3 /$migrations_directory /* database/migrations/ 2> /dev/null;
2023-04-01 06:59:27 -04:00
elif [ [ $migrations_enabled = = "no" ] ] ; then
2023-04-18 04:07:55 -04:00
echo "ok" ;
2023-03-27 14:52:24 -04:00
else
2023-05-09 12:08:22 -04:00
rm -R .blueprint/.storage/tmp/$3 ;
2023-04-17 10:11:33 -04:00
error "If defined, migrations_enabled should only be 'yes' or 'no'." ;
fi ;
fi ;
if [ [ $css_location != "" ] ] ; then
if [ [ $css_enabled = = "yes" ] ] ; then
INJECTCSS = true;
elif [ [ $css_enabled = = "no" ] ] ; then
2023-04-18 04:07:55 -04:00
echo "ok" ;
2023-04-17 10:11:33 -04:00
else
2023-05-09 12:08:22 -04:00
rm -R .blueprint/.storage/tmp/$3 ;
2023-04-17 10:11:33 -04:00
error "If defined, css_enabled should only be 'yes' or 'no'." ;
2023-03-27 14:52:24 -04:00
fi ;
2023-03-26 12:19:10 -04:00
fi ;
2023-04-12 11:04:15 -04:00
if [ [ $adminrequests_directory != "" ] ] ; then
if [ [ $adminrequests_enabled = = "yes" ] ] ; then
mkdir app/Http/Requests/Admin/Extensions/$identifier ;
2023-05-09 12:08:22 -04:00
cp -R .blueprint/.storage/tmp/$3 /$adminrequests_directory /* app/Http/Requests/Admin/Extensions/$identifier / 2> /dev/null;
2023-04-12 11:04:15 -04:00
elif [ [ $adminrequests_enabled = = "no" ] ] ; then
2023-04-18 04:07:55 -04:00
echo "ok" ;
2023-04-12 11:04:15 -04:00
else
2023-05-09 12:08:22 -04:00
rm -R .blueprint/.storage/tmp/$3 ;
2023-04-17 10:11:33 -04:00
error "If defined, adminrequests_enabled should only be 'yes' or 'no'." ;
2023-04-12 11:04:15 -04:00
fi ;
fi ;
2023-04-01 06:58:23 -04:00
if [ [ $publicfiles_directory != "" ] ] ; then
if [ [ $publicfiles_enabled = = "yes" ] ] ; then
2023-04-12 11:04:15 -04:00
mkdir public/extensions/$identifier ;
2023-05-09 12:08:22 -04:00
cp -R .blueprint/.storage/tmp/$3 /$publicfiles_directory /* public/extensions/$identifier / 2> /dev/null;
2023-04-01 06:58:23 -04:00
elif [ [ $publicfiles_enabled = = "no" ] ] ; then
2023-04-18 04:07:55 -04:00
echo "ok" ;
2023-03-31 07:27:57 -04:00
else
2023-05-09 12:08:22 -04:00
rm -R .blueprint/.storage/tmp/$3 ;
2023-04-17 10:11:33 -04:00
error "If defined, publicfiles_enabled should only be 'yes' or 'no'." ;
2023-03-31 07:27:57 -04:00
fi ;
fi ;
2023-05-10 06:10:58 -04:00
cp -R .blueprint/.storage/defaults/extensions/admin.default .blueprint/.storage/defaults/extensions/admin.default.bak 2> /dev/null;
2023-04-01 06:58:23 -04:00
if [ [ $controller_type != "" ] ] ; then
if [ [ $controller_type = = "default" ] ] ; then
2023-05-10 06:10:58 -04:00
cp -R .blueprint/.storage/defaults/extensions/controller.default .blueprint/.storage/defaults/extensions/controller.default.bak 2> /dev/null;
2023-04-01 06:58:23 -04:00
elif [ [ $controller_type = = "custom" ] ] ; then
2023-04-14 11:19:15 -04:00
echo "ok" ;
2023-03-27 14:48:39 -04:00
else
2023-05-09 12:08:22 -04:00
rm -R .blueprint/.storage/tmp/$3 ;
2023-04-17 10:11:33 -04:00
error "If defined, controller_type should only be 'default' or 'custom'." ;
2023-03-27 14:48:39 -04:00
fi ;
2023-03-26 12:19:10 -04:00
fi ;
2023-05-10 06:10:58 -04:00
cp -R .blueprint/.storage/defaults/extensions/route.default .blueprint/.storage/defaults/extensions/route.default.bak 2> /dev/null;
cp -R .blueprint/.storage/defaults/extensions/button.default .blueprint/.storage/defaults/extensions/button.default.bak 2> /dev/null;
2023-03-26 09:19:39 -04:00
2023-03-26 09:10:04 -04:00
mkdir public/assets/extensions/$identifier ;
2023-05-09 12:08:22 -04:00
cp .blueprint/.storage/tmp/$3 /$icon public/assets/extensions/$identifier /icon.jpg;
2023-03-26 11:24:30 -04:00
ICON = " /assets/extensions/ $identifier /icon.jpg " ;
2023-05-09 12:08:22 -04:00
CONTENT = $( cat .blueprint/.storage/tmp/$3 /$view_location ) ;
2023-03-22 05:20:59 -04:00
2023-04-17 10:11:33 -04:00
if [ [ $INJECTCSS = = true ] ] ; then
sed -i " s!/* blueprint reserved line */!/* blueprint reserved line */\n@import url(/assets/extensions/ $identifier / $identifier .style.css);!g " public/themes/pterodactyl/css/pterodactyl.css;
2023-05-09 12:08:22 -04:00
cp -R .blueprint/.storage/tmp/$3 /$css_location /* public/assets/extensions/$identifier /$identifier .style.css 2> /dev/null;
2023-04-17 10:11:33 -04:00
fi ;
2023-05-09 12:16:28 -04:00
if [ [ $name = = *"~" * ] ] ; then log_red "'name' contains '~' and may result in an error." ; fi ;
if [ [ $description = = *"~" * ] ] ; then log_red "'description' contains '~' and may result in an error." ; fi ;
if [ [ $version = = *"~" * ] ] ; then log_red "'version' contains '~' and may result in an error." ; fi ;
if [ [ $CONTENT = = *"~" * ] ] ; then log_red "'CONTENT' contains '~' and may result in an error." ; fi ;
if [ [ $ICON = = *"~" * ] ] ; then log_red "'ICON' contains '~' and may result in an error." ; fi ;
if [ [ $identifier = = *"~" * ] ] ; then log_red "'identifier' contains '~' and may result in an error." ; fi ;
2023-04-14 11:19:15 -04:00
2023-05-10 06:10:58 -04:00
sed -i " s~␀title␀~ $name ~g " .blueprint/.storage/defaults/extensions/admin.default.bak;
sed -i " s~␀name␀~ $name ~g " .blueprint/.storage/defaults/extensions/admin.default.bak;
sed -i " s~␀breadcrumb␀~ $name ~g " .blueprint/.storage/defaults/extensions/admin.default.bak;
sed -i " s~␀name␀~ $name ~g " .blueprint/.storage/defaults/extensions/button.default.bak;
2023-03-26 11:24:30 -04:00
2023-05-10 06:10:58 -04:00
sed -i " s~␀description␀~ $description ~g " .blueprint/.storage/defaults/extensions/admin.default.bak;
2023-03-26 11:24:30 -04:00
2023-05-10 06:10:58 -04:00
sed -i " s~␀version␀~ $version ~g " .blueprint/.storage/defaults/extensions/admin.default.bak;
sed -i " s~␀version␀~ $version ~g " .blueprint/.storage/defaults/extensions/button.default.bak;
2023-03-26 11:24:30 -04:00
2023-05-10 06:10:58 -04:00
sed -i " s~␀icon␀~ $ICON ~g " .blueprint/.storage/defaults/extensions/admin.default.bak;
2023-03-26 11:24:30 -04:00
2023-05-10 06:10:58 -04:00
sed -i " s~␀content␀~ $CONTENT ~g " .blueprint/.storage/defaults/extensions/admin.default.bak;
2023-03-22 05:20:59 -04:00
2023-04-01 06:58:23 -04:00
if [ [ $controller_type != "custom" ] ] ; then
2023-05-10 06:10:58 -04:00
sed -i " s~␀id␀~ $identifier ~g " .blueprint/.storage/defaults/extensions/controller.default.bak;
2023-03-26 12:19:10 -04:00
fi ;
2023-05-10 06:10:58 -04:00
sed -i " s~␀id␀~ $identifier ~g " .blueprint/.storage/defaults/extensions/route.default.bak;
sed -i " s~␀id␀~ $identifier ~g " .blueprint/.storage/defaults/extensions/button.default.bak;
2023-03-26 09:19:39 -04:00
2023-05-10 06:10:58 -04:00
ADMINVIEW_RESULT = $( cat .blueprint/.storage/defaults/extensions/admin.default.bak) ;
ADMINROUTE_RESULT = $( cat .blueprint/.storage/defaults/extensions/route.default.bak) ;
ADMINBUTTON_RESULT = $( cat .blueprint/.storage/defaults/extensions/button.default.bak) ;
2023-04-01 06:58:23 -04:00
if [ [ $controller_type != "custom" ] ] ; then
2023-05-10 06:10:58 -04:00
ADMINCONTROLLER_RESULT = $( cat .blueprint/.storage/defaults/extensions/controller.default.bak) ;
2023-03-26 12:19:10 -04:00
fi ;
2023-03-26 09:27:37 -04:00
ADMINCONTROLLER_NAME = $identifier "ExtensionController.php" ;
2023-03-26 09:10:04 -04:00
mkdir resources/views/admin/extensions/$identifier ;
touch resources/views/admin/extensions/$identifier /index.blade.php;
echo $ADMINVIEW_RESULT > resources/views/admin/extensions/$identifier /index.blade.php;
2023-03-22 05:20:59 -04:00
2023-03-26 09:27:37 -04:00
mkdir app/Http/Controllers/Admin/Extensions/$identifier ;
touch app/Http/Controllers/Admin/Extensions/$identifier /$ADMINCONTROLLER_NAME ;
2023-04-01 06:58:23 -04:00
if [ [ $controller_type != "custom" ] ] ; then
2023-03-26 12:19:10 -04:00
echo $ADMINCONTROLLER_RESULT > app/Http/Controllers/Admin/Extensions/$identifier /$ADMINCONTROLLER_NAME ;
2023-04-01 06:58:23 -04:00
else
2023-05-09 12:08:22 -04:00
cp .blueprint/.storage/tmp/$3 /$controller_location app/Http/Controllers/Admin/Extensions/$identifier /$ADMINCONTROLLER_NAME ;
2023-03-26 12:19:10 -04:00
fi ;
2023-03-26 09:27:37 -04:00
2023-04-12 12:10:45 -04:00
if [ [ $controller_type = = "custom" ] ] ; then
2023-05-09 12:08:22 -04:00
cp .blueprint/.storage/tmp/$3 /$controller_location app/Http/Controllers/Admin/Extensions/$identifier /${ identifier } ExtensionController.php;
2023-04-12 12:10:45 -04:00
fi ;
2023-03-26 11:24:30 -04:00
echo $ADMINROUTE_RESULT >> routes/admin.php;
2023-04-14 11:19:15 -04:00
sed -i " s~<!--␀replace␀-->~ $ADMINBUTTON_RESULT \n<!--␀replace␀-->~g " resources/views/admin/extensions.blade.php;
2023-03-26 09:35:47 -04:00
2023-05-10 06:10:58 -04:00
rm .blueprint/.storage/defaults/extensions/admin.default.bak;
2023-04-01 06:58:23 -04:00
if [ [ $controller_type != "custom" ] ] ; then
2023-05-10 06:10:58 -04:00
rm .blueprint/.storage/defaults/extensions/controller.default.bak;
2023-03-26 12:19:10 -04:00
fi ;
2023-05-10 06:10:58 -04:00
rm .blueprint/.storage/defaults/extensions/route.default.bak;
rm .blueprint/.storage/defaults/extensions/button.default.bak;
2023-05-09 12:08:22 -04:00
rm -R .blueprint/.storage/tmp/$3 ;
2023-03-27 15:17:57 -04:00
2023-05-09 12:16:28 -04:00
if [ [ $author = = "blueprint" ] ] ; then log_blue "Please refrain from setting the author variable to 'blueprint', thanks!" ; fi ;
if [ [ $author = = "Blueprint" ] ] ; then log_blue "Please refrain from setting the author variable to 'Blueprint', thanks!" ; fi ;
2023-04-10 11:13:28 -04:00
2023-05-09 12:16:28 -04:00
log_blue " \n\n $identifier should now be installed. If something didn't work as expected, please let us know at discord.gg/CUwHwv6xRe. " ;
2023-03-22 05:20:59 -04:00
fi ;
2023-05-04 16:01:35 -04:00
if [ [ ( $2 = = "help" ) || ( $2 = = "-help" ) || ( $2 = = "--help" ) ] ] ; then
echo -e "-i [name] install a blueprint extension" "
" " -v get the current blueprint version""
" " -init initialize extension development files""
" " -reinstall rerun the blueprint installation script" ;
2023-03-27 15:17:57 -04:00
fi ;
2023-04-02 15:12:21 -04:00
if [ [ ( $2 = = "-v" ) || ( $2 = = "-version" ) ] ] ; then
2023-03-27 15:17:57 -04:00
echo -e $VERSION ;
2023-04-10 10:50:23 -04:00
fi ;
2023-05-04 16:01:35 -04:00
if [ [ $2 = = "-init" ] ] ; then
2023-05-10 06:39:59 -04:00
if [ [ $3 != "--dev" ] ] ; then
error "-init is currently not available" ; exit 1;
fi ;
# Work in progress code that will only run with "--dev" as 3rd argument.
log "Preparing variables.." ;
icnNUM = $( expr 1 + $RANDOM % 3) ;
2023-05-11 15:12:03 -04:00
log "Copying init defaults to tmp.." ;
cp -R .blueprint/.storage/defaults/init .blueprint/tmp/init;
log "Applying variables.."
sed -i " s~␀num␀~ $icnNUM ~g " .blueprint/.storage/defaults/init/conf.yml;
sed -i " s~␀version␀~ $VERSION ~g " .blueprint/.storage/defaults/init/conf.yml;
# Remove tmp files
rm -R .blueprint/tmp;
mkdir .blueprint/tmp;
2023-05-04 16:01:35 -04:00
fi ;
2023-04-10 10:50:23 -04:00
if [ [ $2 = = "-reinstall" ] ] ; then
dbRemove "blueprint.setupFinished" ;
2023-05-06 10:21:22 -04:00
cd /var/www/$FOLDER ;
2023-04-10 10:50:23 -04:00
bash blueprint.sh;
2023-05-03 14:22:54 -04:00
fi ;