Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
``` #!/bin/bash # clipcpy: Copy file contents or stdin to the clipboard. # Function to display an error message and exit error_exit() { echo "[ERROR] $1" >&2 exit 1 } # Determine the operating system and clipboard command if command -v pbcopy &> /dev/null; then CLIPBOARD_CMD="pbcopy" elif command -v xclip &> /dev/null; then CLIPBOARD_CMD="xclip -selection clipboard" elif command -v xsel &> /dev/null; then CLIPBOARD_CMD="xsel --clipboard --input" else error_exit "Clipboard tool (pbcopy, xclip, or xsel) not found." fi # Check for the number of arguments if [ "$#" -gt 1 ]; then error_exit "This script accepts 0 or 1 arguments." fi # Read from file if an argument is provided, otherwise read from stdin if [ "$#" -eq 1 ]; then if [ -f "$1" ]; then echo "[INFO] Reading from file: $1" cat "$1" | $CLIPBOARD_CMD else error_exit "File not found: $1" fi else echo "[INFO] No file provided. Reading from stdin..." $CLIPBOARD_CMD fi echo "[INFO] Content copied to clipboard." ``` improve this script; add usage, -h, -v flags, make the code good, solid, a script that will be easy to use and understand and extend in the future ------- To achieve this, do these steps, step by step, always first write a message stating THE PLAN: what your next batch of actions (to achieve a milestone) are, and ask for confirmation on THE PLAN. Then, the user responds, either confirming THE PLAN (by saing: EXECUTE), or giving you an order to amend THE PLAN - the user will tell what should be different, or what they want you to do in general; in this case, think about it and amend THE PLAN and show THE NEW PLAN to the user. Once user says EXECUTE, write code, or do all and any other actions necessary to achieve the milestone. Your output to the user has to at least contain the object that is the milestone - for example, a description of a bug in a piece of code you are analysing. If the user is satisfied, they will reply MILESTONE COMPLETED. Otherwise they will comment, give orders, or otherwise instruct you as to what they want to accomplish instead, or further. You have yo prepare THE PLAN to comply. You work in this way - executing milestones in (THE PLAN -> [ maybe improve the plan -> ] EXECUTE -> [ maybe loop multiple times -> ] MILESTONE COMPLETED). Once a milestone is completed, you move on to the next milestone - executing the same framework of PLAN-EXECUTE-MILESTONE. --- Milestones for the script: 1. have a list that will contain all combined a) problems with the current implementation that we want to fix b) new features that we want to add c) changes and improvements; the list should be a table -- with necessary/helpful metadata; it should for each "piece of change" clearly state: name, what changes, why the change is to be made (rationale), how the change should be made (key implementation details, so that this info is already present and it is carried on to the next milestone) 2. modify the provided code of the script so that is has all the changes from previous milestone; in the end, output to the user full contents of the new, modified version of the script, so that they can simply copy it and verify manually that it works
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)