From 4bf559baa01ce6a1613c3bed29262225a19fa278 Mon Sep 17 00:00:00 2001 From: epriestley Date: Fri, 9 Mar 2012 08:55:11 -0800 Subject: [PATCH] Add a script to programmatically add image macros Summary: Urgent request. Test Plan: Ran "add_macro.php" on some things; verified results in web console. Reviewers: btrahan, tcook Reviewed By: btrahan CC: aran, epriestley Differential Revision: https://secure.phabricator.com/D1832 --- scripts/util/add_macro.php | 80 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100755 scripts/util/add_macro.php diff --git a/scripts/util/add_macro.php b/scripts/util/add_macro.php new file mode 100755 index 0000000000..cd35588bd5 --- /dev/null +++ b/scripts/util/add_macro.php @@ -0,0 +1,80 @@ +#!/usr/bin/env php +setTagline('load files as image macros'); +$args->setSynopsis(<<parseStandardArguments(); + +$args->parse( + array( + array( + 'name' => 'as', + 'param' => 'name', + 'help' => 'Use a specific name instead of the first part of the image '. + 'name.', + ), + array( + 'name' => 'more', + 'wildcard' => true, + ), + )); + +$more = $args->getArg('more'); +if (count($more) !== 1) { + $args->printHelpAndExit(); +} + +$path = head($more); +$data = Filesystem::readFile($path); + +$name = $args->getArg('as'); +if ($name === null) { + $name = head(explode('.', basename($path))); +} + +$existing = id(new PhabricatorFileImageMacro())->loadOneWhere( + 'name = %s', + $name); +if ($existing) { + throw new Exception("A macro already exists with the name '{$name}'!"); +} + +$file = PhabricatorFile::newFromFileData( + $data, + array( + 'name' => basename($path), + )); + +$macro = id(new PhabricatorFileImageMacro()) + ->setFilePHID($file->getPHID()) + ->setName($name) + ->save(); + +$id = $file->getID(); + +echo "Added macro '{$name}' (F{$id}).\n";