mcdanlj
(Michael K Johnson)
1
我一直在编写一个由 YAML 文件驱动的脚本,用于重新排列 Discourse 站点。这是因为我计划对我的最大站点进行一次相当大规模的重新排列,以使其更易于导航,如果我试图通过 UI 来完成,我将永远无法实现。
我的脚本没有任何单元测试,虽然我长期以来一直是单元测试的坚定支持者,但我没有动力为这个脚本编写任何单元测试。
这个脚本实际上是一个框架,可以在其上进行构建——并非每个人都想要我想要的相同语义。从这个意义上说,它有点像一些迁移脚本,你可以预期人们可能会修改它们以适应自己的需求。
在这些限制下,这是否值得提交一个 PR?或者大家更希望我将其作为代码块发布,也许是在 #documentation:sysadmin?
我主要想帮助任何其他尝试做类似事情的人。此外,实际的函数可能有助于人们了解如何在 rails 控制台中操作。
3 个赞
pfaffman
(Jay Pfaffman)
2
mcdanlj
(Michael K Johnson)
3
我不理解“MSN”,但在我的情况下,我所做的工作包括在类别之间移动帖子、添加标签、更改帖子的父级、隐藏类别、添加重定向……其中一些任务包含在“Administrative Bulk Actions”(批量管理操作)中,有些则不包含,但无论如何,所有这些都来自同一个脚本。
目前,在我的情况下,这是 112 个操作。我不会在 rails c 和 rake 之间来回输入这些内容,可能每小时进行几次,因为我正在与我的网站领导者一起探索网站的不同重组。
问题不是“我该如何完成这项工作?”——我已经写好了,虽然我打算继续改进它(例如,我可能会让它编写一个完整、详细的审计日志,它目前还没有,但我可能希望在实际运行它来处理我的直播网站之前拥有它)。
问题是:如何最好地分享它? 我在 scripts/ 目录中没有看到类似的东西(尽管我可能错过了什么),而且我很欣赏 PR 通常应该附带自动化测试(尽管我不知道这在多大程度上适用于 scripts/ 目录)。同时,它已经超过 150 行并且还在增长,这对于在这里发布分享来说似乎太大了,因为它会比代码框大得多。
pfaffman
(Jay Pfaffman)
4
哎呀。那应该是“maybe”(也许),而不是“MSN”。 
我认为你可以将其发布到 GitHub 并链接到它——要么为它创建一个主题,要么将其添加到管理员批量操作中。
2 个赞
Falco
(Falco)
5
将其创建为一个独立的 GitHub 项目是前进的最佳方式。另外,请确保在此处的 Meta 上创建一个关于该工具的主题,以便人们能够找到它。
4 个赞
mcdanlj
(Michael K Johnson)
6
是的,我绝对希望人们能够找到它!
我开始时使用了:
require_relative "../config/environment"
以便在将其放置在 scripts 目录中时能够正常工作。是否有常见的模式可以将其放在 discourse 目录之外?(我在 .gitignore 中没有看到像 plugins 模式那样用于检出 plugins 之外的内容。)
如果没有,我可以在安装说明中只说“将其复制到 scripts/”,但我想知道是否有我能做得更好的地方。
Falco
(Falco)
7
我们有一个项目,其设置如下:
cd /var/www/discourse/script
git clone https://github.com/user/discourse-config-tool.git
cd ..
bundle exec ruby script/discourse-config-tool/app.rb
类似这样的内容可以用于您工具的安装说明。
3 个赞
mcdanlj
(Michael K Johnson)
8
谢谢!这总是让其他人更容易适应现有模式!
一旦到位,我将把它打包并发布到 #documentation:sysadmin,并提供更具体的信息。
2 个赞