uuid: - value: c8d78160-4a98-441c-a707-c1fde53f9044 langcode: - value: en type: - target_id: daily_email target_type: node_type target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7 revision_timestamp: - value: '2025-05-11T09:00:16+00:00' revision_uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 revision_log: { } status: - value: true uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 title: - value: 'Write programs that do one thing and do it well' created: - value: '2024-03-23T00:00:00+00:00' changed: - value: '2025-05-11T09:00:16+00:00' promote: - value: false sticky: - value: false default_langcode: - value: true revision_translation_affected: - value: true path: - alias: /daily/2024/03/23/write-programs-that-do-one-thing-and-do-it-well langcode: en body: - value: |

Over the last few days, I've written about watchers and running commands such as automated tests when files are changed.

Some tools have this built in, whilst others don't.

I've used different tools to do this and recently switched to entr.

The previous one wasn't showing me the output from running Drupal automated tests, which entr does.

I also like that it follows the UNIX philosophy of doing one thing well and working well with other programs.

For example, to run my automated tests when I change a file, I need to run find web/modules/custom | entr ./run test.

entr isn't concerned with how to find the list of files to watch - only what to do with them.

To get the list of files, I use the find command and provide the files to entr.

I also like to do this with my application code. I like to write small modules and libraries with clear boundaries and responsibilities, do their tasks well, and work well with other parts of the application.

format: full_html processed: |

Over the last few days, I've written about watchers and running commands such as automated tests when files are changed.

Some tools have this built in, whilst others don't.

I've used different tools to do this and recently switched to entr.

The previous one wasn't showing me the output from running Drupal automated tests, which entr does.

I also like that it follows the UNIX philosophy of doing one thing well and working well with other programs.

For example, to run my automated tests when I change a file, I need to run find web/modules/custom | entr ./run test.

entr isn't concerned with how to find the list of files to watch - only what to do with them.

To get the list of files, I use the find command and provide the files to entr.

I also like to do this with my application code. I like to write small modules and libraries with clear boundaries and responsibilities, do their tasks well, and work well with other parts of the application.

summary: null field_daily_email_cta: { }