Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2893799
add_macro.php
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Advanced/Developer...
View Handle
View Hovercard
Size
1 KB
Referenced Files
None
Subscribers
None
add_macro.php
View Options
#!/usr/bin/env php
<?php
$root
=
dirname
(
dirname
(
dirname
(
__FILE__
)
)
)
;
require_once
$root
.
'/scripts/__init_script__.php'
;
$args
=
new
PhutilArgumentParser
(
$argv
)
;
$args
->
setTagline
(
pht
(
'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'
=>
pht
(
'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
(
pht
(
"A macro already exists with the name '%s'!"
,
$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
pht
(
"Added macro '%s' (%s)."
,
$name
,
"F{$id}"
)
.
"\n"
;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Jan 19, 19:04 (1 d, 11 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1124610
Default Alt Text
add_macro.php (1 KB)
Attached To
Mode
rP Phorge
Attached
Detach File
Event Timeline
Log In to Comment