mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-19 12:00:55 +01:00
12aaa942ac
Summary: CanCDN flag indicates that a file can be served + cached via anonymous content distribution networks. Once D10054 lands, any files that lack the CanCDN flag will require a one-time-use token and headers will prohibit cache to protect sensitive files from unauthorized access. This diff separates the CanCDN changes from the code that enforces these restrictions in D10054 so that the changes can be tested and refined independently. Test Plan: Work in progress Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: rush898, qgil, epriestley, aklapper, Korvin Maniphest Tasks: T5685 Differential Revision: https://secure.phabricator.com/D10166
65 lines
1.4 KiB
PHP
Executable file
65 lines
1.4 KiB
PHP
Executable file
#!/usr/bin/env php
|
|
<?php
|
|
|
|
$root = dirname(dirname(dirname(__FILE__)));
|
|
require_once $root.'/scripts/__init_script__.php';
|
|
|
|
$args = new PhutilArgumentParser($argv);
|
|
$args->setTagline('load files as image macros');
|
|
$args->setSynopsis(<<<EOHELP
|
|
**add_macro.php** __image__ [--as __name__]
|
|
Add an image macro. This can be useful for importing a large number
|
|
of macros.
|
|
EOHELP
|
|
);
|
|
$args->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),
|
|
'canCDN' => true,
|
|
));
|
|
|
|
$macro = id(new PhabricatorFileImageMacro())
|
|
->setFilePHID($file->getPHID())
|
|
->setName($name)
|
|
->save();
|
|
|
|
$id = $file->getID();
|
|
|
|
echo "Added macro '{$name}' (F{$id}).\n";
|