Reorganize project

Many resources have been added to Textual with little thought for long term maintenance. This commit is an overdue overhaul of the entire project. The goals of this overhaul was to introduce as much consistency as possible to the project.

Some notable changes:

• Code signing identity file has moved to "Configurations/Build"
• All build configuration files, including entitlements, moved to "Configurations"
• Source code for the app has moved to "Sources/App"
• Shared source code has moved to "Sources/Shared"
• Source code for extensions have moved to "Sources/Plugins"
• The project file for the app has moved along with its source code. It's recommended to use the Textual.xcworkspace workspace file.
• Build scripts are no longer packaged within the project files.
• Folders are now used throughout most projects instead of groups.
• Removed a lot of redundant framework linking.
• The preference panel sample plugin has been modified to use standard Cocoa facilities instead of those that are project specific. e.g. NSUserDefaults and NSLog() instead of TPCPreferencesUserDefaults and LogToConsole()
This commit is contained in:
Michael
2018-07-04 04:55:28 -04:00
parent f1bcb25ece
commit 2e236abb64
975 changed files with 14349 additions and 13455 deletions
@@ -0,0 +1,23 @@
If you are using a copy of Textual downloaded through the Mac
App Store, then custom scripts can be installed in the folder:
"~/Library/Application Scripts/com.codeux.apps.textual-mas/"
Otherwise, custom scripts can be installed in the folder:
"~/Library/Application Scripts/com.codeux.apps.textual/"
This folder might not exist. If it does not, create it. Textual does
not have write permission to this location so it cannot create it on
its own. Scripts installed within this folder benefit from the ability
to be ran outside of the OS X sandbox giving them unrestricted access
to the system as a whole.
Only OS X Mountain Lion or later can read scripts from this folder.
This is an unfortunate design flaw of the OS X sandbox that Textual
cannot circumvent.
For more information, read the knowledge base:
https://help.codeux.com/textual/Writing-Scripts.kb
@@ -0,0 +1,59 @@
set -e
export BUILD_PATH="/private/tmp/Textual-${RANDOM}"
export BUILD_PATH_SCRIPTS_MACAPPSTORE="${BUILD_PATH}/Library/Application Scripts/com.codeux.apps.textual-mas"
export BUILD_PATH_SCRIPTS_STANDALONE="${BUILD_PATH}/Library/Application Scripts/com.codeux.apps.textual"
export BUILD_PATH_EXTENSIONS_MACAPPSTORE="${BUILD_PATH}/Library/Group Containers/8482Q6EPL6.com.codeux.irc.textual/Library/Application Support/Textual/Extensions"
export BUILD_PATH_EXTENSIONS_STANDALONE="${BUILD_PATH}/Library/Group Containers/com.codeux.apps.textual/Library/Application Support/Textual/Extensions"
export SOURCE_FILES_SCRIPTS="./Installation Files/Scripts"
export SOURCE_FILES_EXTENSIONS="./Installation Files/Extensions"
export PACKAGES_DESTINATION="./Packages"
echo "**************************"
./Installer\ Helpers/Build-Scripts-Package "AudioVideo" \
"hermes" \
"music" \
"np" \
"qt" \
"radium" \
"spotify" \
"vlc"
echo "**************************"
./Installer\ Helpers/Build-Scripts-Package "Fun" \
"banhammer" \
"ffuu" \
"o_o" \
"slap"
echo "**************************"
./Installer\ Helpers/Build-Scripts-Package "Utilities" \
"apps" \
"flip" \
"page" \
"reverse" \
"shell"
echo "**************************"
./Installer\ Helpers/Build-Extension-Package "BlowfishEncryption"
echo "**************************"
./Installer\ Helpers/Build-Extension-Package "Caffeine"
echo "**************************"
./Installer\ Helpers/Build-Extension-Package "WikiStyleLinkParser"
echo "**************************"
./Installer\ Helpers/Build-Final-Package
@@ -0,0 +1,46 @@
echo "Extension - ${1} - Start";
codesign -f -s "Developer ID Application: Codeux Software, LLC (8482Q6EPL6)" "${SOURCE_FILES_EXTENSIONS}/${1}.bundle"
# *****************************************************
# STANDALONE
# *****************************************************
mkdir -p "${BUILD_PATH_EXTENSIONS_STANDALONE}"
cp -Rp "${SOURCE_FILES_EXTENSIONS}/${1}.bundle" "${BUILD_PATH_EXTENSIONS_STANDALONE}"
pkgbuild \
--root "${BUILD_PATH}" \
--ownership recommended \
--sign "Developer ID Installer: Codeux Software, LLC (8482Q6EPL6)" \
--quiet \
--identifier "com.codeux.app-extensions.textual-extension-installer-${1}" \
--version "1.0" \
"${PACKAGES_DESTINATION}/STANDALONE/Extension-${1}.pkg"
rm -fr "${BUILD_PATH}"
# *****************************************************
# MAC APP STORE
# *****************************************************
mkdir -p "${BUILD_PATH_EXTENSIONS_MACAPPSTORE}"
cp -Rp "${SOURCE_FILES_EXTENSIONS}/${1}.bundle" "${BUILD_PATH_EXTENSIONS_MACAPPSTORE}"
pkgbuild \
--root "${BUILD_PATH}" \
--ownership recommended \
--sign "Developer ID Installer: Codeux Software, LLC (8482Q6EPL6)" \
--quiet \
--identifier "com.codeux.app-extensions.textual-extension-installer-${1}" \
--version "1.0" \
"${PACKAGES_DESTINATION}/MACAPPSTORE/Extension-${1}.pkg"
rm -fr "${BUILD_PATH}"
# *****************************************************
echo "Extension - ${1} - End";
@@ -0,0 +1,38 @@
echo "Build Finale Package - Start"
# *****************************************************
# STANDALONE
# *****************************************************
productbuild \
--distribution distribution.plist \
--resources "./Installer Resources" \
--package-path "${PACKAGES_DESTINATION}/STANDALONE/" \
--sign "Developer ID Installer: Codeux Software, LLC (8482Q6EPL6)" \
--identifier "com.codeux.app-extensions.textual-extras-installer" \
--version "1.0" \
--quiet \
"${PACKAGES_DESTINATION}/Textual-Extras.pkg"
rm -f "${PACKAGES_DESTINATION}/STANDALONE/*.pkg"
# *****************************************************
# MAC APP STORE
# *****************************************************
productbuild \
--distribution distribution.plist \
--resources "./Installer Resources" \
--package-path "${PACKAGES_DESTINATION}/MACAPPSTORE/" \
--sign "Developer ID Installer: Codeux Software, LLC (8482Q6EPL6)" \
--identifier "com.codeux.app-extensions.textual-extras-installer" \
--version "1.0" \
--quiet \
"${PACKAGES_DESTINATION}/Textual-Extras-MAS.pkg"
rm -f "${PACKAGES_DESTINATION}/MACAPPSTORE/*.pkg"
# *****************************************************
echo "Build Finale Package - End"
@@ -0,0 +1,52 @@
echo "${1} - Start";
# *****************************************************
# STANDALONE
# *****************************************************
mkdir -p "${BUILD_PATH_SCRIPTS_STANDALONE}"
for i in ${@:2}
do
echo "Copying ${i}"
cp "${SOURCE_FILES_SCRIPTS}/${i}.scpt" "${BUILD_PATH_SCRIPTS_STANDALONE}"
done
pkgbuild \
--root "${BUILD_PATH}" \
--ownership recommended \
--sign "Developer ID Installer: Codeux Software, LLC (8482Q6EPL6)" \
--quiet \
--identifier "com.codeux.app-extensions.textual-scripts-installer-${1}" \
--version "1.0" \
"${PACKAGES_DESTINATION}/STANDALONE/Scripts-${1}.pkg"
rm -fr "${BUILD_PATH}"
# *****************************************************
# MAC APP STORE
# *****************************************************
mkdir -p "${BUILD_PATH_SCRIPTS_MACAPPSTORE}"
for i in ${@:2}
do
cp "${SOURCE_FILES_SCRIPTS}/${i}.scpt" "${BUILD_PATH_SCRIPTS_MACAPPSTORE}"
done
pkgbuild \
--root "${BUILD_PATH}" \
--ownership recommended \
--sign "Developer ID Installer: Codeux Software, LLC (8482Q6EPL6)" \
--quiet \
--identifier "com.codeux.app-extensions.textual-scripts-installer-${1}" \
--version "1.0" \
"${PACKAGES_DESTINATION}/MACAPPSTORE/Scripts-${1}.pkg"
rm -fr "${BUILD_PATH}"
# *****************************************************
echo "${1} - End";
@@ -0,0 +1,14 @@
{\rtf1\ansi\ansicpg1252\cocoartf1545\cocoasubrtf100
{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\margl1440\margr1440\vieww13040\viewh11540\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\f0\fs26 \cf0 Click \'93Continue\'94 to view a list of addons that can be installed. \
\
When the next screen appears, expand the various categories,\
then click each item to view its description. \
\
Enable the checkbox next to the items that you are interested in \
then click \'93Install\'94 to finish installation.}
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<installer-gui-script minSpecVersion="2">
<title>DISTRIBUTION_TITLE</title>
<background file="installerBackground.png" scaling="proportional" alignment="bottomleft"/>
<welcome file="Welcome.rtf"/>
<options customize="always" require-scripts="false"/>
<volume-check>
<allowed-os-versions>
<os-version min="10.8"/>
</allowed-os-versions>
</volume-check>
<choices-outline>
<line choice="installer_choice_1">
<line choice="installer_choice_1_1"/>
<line choice="installer_choice_1_2"/>
<line choice="installer_choice_1_3"/>
</line>
<line choice="installer_choice_2">
<line choice="installer_choice_2_1"/>
<line choice="installer_choice_2_2"/>
<line choice="installer_choice_2_3"/>
</line>
<!--
<line choice="installer_choice_3">
<line choice="installer_choice_3_1"/>
<line choice="installer_choice_3_2"/>
</line>
-->
</choices-outline>
<choice id="installer_choice_1_1" start_selected="false" title="INSTALLER_CHOICE_1_1_TITLE" description="INSTALLER_CHOICE_1_1_DESCRIPTION">
<pkg-ref id="com.codeux.app-extensions.textual-scripts-installer-AudioVideo"/>
</choice>
<choice id="installer_choice_1_2" start_selected="false" title="INSTALLER_CHOICE_1_2_TITLE" description="INSTALLER_CHOICE_1_2_DESCRIPTION">
<pkg-ref id="com.codeux.app-extensions.textual-scripts-installer-Fun"/>
</choice>
<choice id="installer_choice_1_3" start_selected="false" title="INSTALLER_CHOICE_1_3_TITLE" description="INSTALLER_CHOICE_1_3_DESCRIPTION">
<pkg-ref id="com.codeux.app-extensions.textual-scripts-installer-Utilities"/>
</choice>
<choice id="installer_choice_1" title="INSTALLER_CHOICE_1_TITLE" description="INSTALLER_CHOICE_1_DESCRIPTION"/>
<choice id="installer_choice_2_1" start_selected="false" title="INSTALLER_CHOICE_2_1_TITLE" description="INSTALLER_CHOICE_2_1_DESCRIPTION">
<pkg-ref id="com.codeux.app-extensions.textual-extension-installer-BlowfishEncryption"/>
</choice>
<choice id="installer_choice_2_2" start_selected="false" title="INSTALLER_CHOICE_2_2_TITLE" description="INSTALLER_CHOICE_2_2_DESCRIPTION">
<pkg-ref id="com.codeux.app-extensions.textual-extension-installer-Caffeine"/>
</choice>
<choice id="installer_choice_2_3" start_selected="false" title="INSTALLER_CHOICE_2_3_TITLE" description="INSTALLER_CHOICE_2_3_DESCRIPTION">
<pkg-ref id="com.codeux.app-extensions.textual-extension-installer-WikiStyleLinkParser"/>
</choice>
<choice id="installer_choice_2" title="INSTALLER_CHOICE_2_TITLE" description="INSTALLER_CHOICE_2_DESCRIPTION"/>
<!--
<choice id="installer_choice_3_1" start_selected="false" title="INSTALLER_CHOICE_3_1_TITLE" description="INSTALLER_CHOICE_3_1_DESCRIPTION">
<pkg-ref id="de.incnet.TXTunes-installer"/>
</choice>
<choice id="installer_choice_3_2" start_selected="false" title="INSTALLER_CHOICE_3_2_TITLE" description="INSTALLER_CHOICE_3_2_DESCRIPTION">
<pkg-ref id="de.incnet.txurldumper-installer"/>
</choice>
<choice id="installer_choice_3" start_visible="false" start_enabled="false" title="INSTALLER_CHOICE_3_TITLE" description=""/>
-->
<pkg-ref id="com.codeux.app-extensions.textual-scripts-installer-AudioVideo" version="1.3">#Scripts-AudioVideo.pkg</pkg-ref>
<pkg-ref id="com.codeux.app-extensions.textual-scripts-installer-Fun" version="1.3">#Scripts-Fun.pkg</pkg-ref>
<pkg-ref id="com.codeux.app-extensions.textual-scripts-installer-Utilities" version="1.3">#Scripts-Utilities.pkg</pkg-ref>
<pkg-ref id="com.codeux.app-extensions.textual-extension-installer-BlowfishEncryption" version="1.0.9">#Extension-BlowfishEncryption.pkg</pkg-ref>
<pkg-ref id="com.codeux.app-extensions.textual-extension-installer-Caffeine" version="1.0.4">#Extension-Caffeine.pkg</pkg-ref>
<pkg-ref id="com.codeux.app-extensions.textual-extension-installer-WikiStyleLinkParser" version="1.0.4">#Extension-WikiStyleLinkParser.pkg</pkg-ref>
<pkg-ref id="com.codeux.app-extensions.textual-extension-installer-BlowfishEncryption">
<must-close>
<app id="com.codeux.apps.textual"/>
<app id="com.codeux.apps.textual-mas"/>
</must-close>
</pkg-ref>
<pkg-ref id="com.codeux.app-extensions.textual-extension-installer-Caffeine">
<must-close>
<app id="com.codeux.apps.textual"/>
<app id="com.codeux.apps.textual-mas"/>
</must-close>
</pkg-ref>
<pkg-ref id="com.codeux.app-extensions.textual-extension-installer-WikiStyleLinkParser">
<must-close>
<app id="com.codeux.apps.textual"/>
<app id="com.codeux.apps.textual-mas"/>
</must-close>
</pkg-ref>
<!--
<pkg-ref id="de.incnet.TXTunes-installer" version="1.0.0">#de.incnet.TXTunes.pkg</pkg-ref>
<pkg-ref id="de.incnet.txurldumper-installer" version="1.0.0">#de.incnet.txurldumper.pkg</pkg-ref>
-->
<domains enable_localSystem="false" enable_currentUserHome="true" enable_anywhere="false"/>
</installer-gui-script>