This is a plugin for Sublime Text 2 that will push and pull theme assets from Shopify.
cd <shopify package directory>
hg clone https://bitbucket.org/dwarburton/sublimeshopify Shopify
There are several commands that can be accessed from Sublime Text's command pallete to interact with Shopify. The first invocation of any of these will instead open the file where your Shopify access credentials must be configured. Follow the instructions at http://wiki.shopify.com/Shopify_Textmate_Bundle to find the values for these settings, with one exception: the Shop Name should only be the first subdomain of the shopify address (.myshopify.com is added automatically).
When the configuration file is saved, then you may immediately use the Shopify commands. Launching any one of the commands will chain together all of the commands necessary to get to the correct asset you would like to edit. For example, if you run the Show Assets command but haven't selected a store or theme, then you will be prompted for those first. The second time you run the Show Assets command, you will not need to choose the store or theme. If you want an asset from a different theme or different store, then run the command to Show Stores or Show Themes to switch.
The downloaded files are uploaded automatically when they are saved. You will see a confirmation or failure message in the status bar after saving.
There is some protection built in to the plugin to prevent overwriting changes on the web that were not part of the asset when it was pulled, but no guarantees are made. The asset will be downloaded everytime it is opened through the command pallete, even if it has not been changed on the web.
The security protecting your API key is not very strong. On Windows and OS X the API key will be transmitted by HTTPS, but the python library used (urllib) does not validate certificates and so the API key could be stolen by a man in the middle attack. On Linux HTTPS cannot be used because the python distributed with Sublime Text 2 Linux Edition was not compiled with SSL and so the API key is available to man in the middle attackers and also attackers on the local network. On all systems the API key will be available to attackers who have administrative access to your PC. These are also limitations of the Shopify TextMate bundle (except the linux/https issue).
Copyright (c) 2012 David Warburton firstname.lastname@example.org
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.