From 92cef93703e939eb7a571a4981be859e4296d9d2 Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Fri, 6 May 2022 03:50:21 +0100 Subject: [PATCH] add initial files --- .drone.yml | 108 ++++++++++++++++++ .gitignore | 1 + README.md | 17 ++- assets/unraid-rip.png | Bin 0 -> 3048 bytes dev.unraid-rip.plg | 73 ++++++++++++ unraid-rip.png | Bin 0 -> 3048 bytes .../plugins/unraid-rip/images/unraid-rip.png | Bin 0 -> 3048 bytes 7 files changed, 198 insertions(+), 1 deletion(-) create mode 100644 .drone.yml create mode 100644 .gitignore create mode 100644 assets/unraid-rip.png create mode 100644 dev.unraid-rip.plg create mode 100644 unraid-rip.png create mode 100644 usr/local/emhttp/plugins/unraid-rip/images/unraid-rip.png diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..cdf04ff --- /dev/null +++ b/.drone.yml @@ -0,0 +1,108 @@ +kind: pipeline +type: docker +name: default + +trigger: + event: + - tag + +concurrency: + limit: 1 + +workspace: + path: /drone/src + +steps: + - name: checkout submodule + image: alpine/git + commands: + - git submodule update --init --recursive + - name: checkout tag + image: alpine/git + commands: + - cd exa + - git fetch --all --tags + - git checkout tags/${DRONE_TAG} + depends_on: + - "checkout submodule" + - name: cargo build + image: rust:latest + commands: + - cd exa + - cargo build --release --target x86_64-unknown-linux-gnu + - cd target/x86_64-unknown-linux-gnu/release + depends_on: + - "checkout tag" + - name: verify + image: rust:latest + commands: + - mkdir /tmp/verify && cd /tmp/verify && touch verify + - /drone/src/exa/target/x86_64-unknown-linux-gnu/release/exa --long + - lines=$(/drone/src/exa/target/x86_64-unknown-linux-gnu/release/exa --long | wc -l) + - if test $lines -ne 1; then exit 1; fi + depends_on: + - "cargo build" + - name: build slackware package + image: vbatts/slackware:14.2 + commands: + - mkdir -p dist/usr/sbin + - cp exa/target/x86_64-unknown-linux-gnu/release/exa ./dist/usr/sbin/exa + - cp -R ./usr ./dist + - chmod +x ./dist/usr/sbin/exa + - cd dist + - makepkg -l y -c y ../unraid-exa-${DRONE_TAG}.txz + depends_on: + - "verify" + - name: prepare release + image: vbatts/slackware:14.2 + commands: + - echo "exa ${DRONE_TAG} - built@$(date '+%FT%TZ') [Drone ${DRONE_SYSTEM_VERSION}]" > ./release_note + - cat ./release_note + depends_on: + - "build slackware package" + - name: publish gitea release + image: plugins/gitea-release + settings: + api_key: + from_secret: GITEA_KEY + base_url: https://git.panaetius.co.uk + files: + - ./unraid-exa-${DRONE_TAG}.txz + checksum: + - md5 + title: ${DRONE_TAG} + note: ./release_note + file_exists: "skip" + when: + event: tag + depends_on: + - "prepare release" + - name: publish github release + image: plugins/github-release + settings: + api_key: + from_secret: GITHUB_KEY + files: + - ./unraid-exa-${DRONE_TAG}.txz + checksum: + - md5 + title: ${DRONE_TAG} + note: ./release_note + file_exists: "skip" + when: + event: tag + depends_on: + - "prepare release" + - name: slack + image: plugins/slack + settings: + webhook: + from_secret: BUILD_STATUS_SLACK_WEBHOOK + username: drone + when: + status: + - "success" + - "failure" + depends_on: + - "publish gitea release" + - "publish github release" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fd5106f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_STORE diff --git a/README.md b/README.md index a740338..f0bf94c 100644 --- a/README.md +++ b/README.md @@ -1 +1,16 @@ -# unraid-rip +# rip + +This is the repository for the unraid rip plugin. + + + +rip is a command-line deletion tool focused on safety, ergonomics, and performance. It favors a simple interface, and does not implement the xdg-trash spec or attempt to achieve the same goals. + +Deleted files get sent to the graveyard (`/tmp/graveyard-$USER` by default, see notes on changing this) under their absolute path, giving you a chance to recover them. No data is overwritten. If files that share the same path are deleted, they will be renamed as numbered backups. + +For more information see the [rip repository](https://github.com/nivekuil/rip). +## dev + +Drone builds the plugin source using cargo on a new tag creation. + +Tag versions follow rip releases. diff --git a/assets/unraid-rip.png b/assets/unraid-rip.png new file mode 100644 index 0000000000000000000000000000000000000000..8b2212587734d0599a0b54964b5cc24fc1c9221c GIT binary patch literal 3048 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 F`X9f&tSJBh literal 0 HcmV?d00001 diff --git a/dev.unraid-rip.plg b/dev.unraid-rip.plg new file mode 100644 index 0000000..3da1c75 --- /dev/null +++ b/dev.unraid-rip.plg @@ -0,0 +1,73 @@ + + + + + + + + + + + +]> + + + + + +### 2022-05-06 + +- Initial release - rip v0.13.1 + + + + + + +file=$(/usr/bin/ls /boot/config/plugins/&name;/&name;*.txz | grep -v '&version;') +if [ ! -z "$file" ] +then + filename=$(basename -- $file) + previous="${filename%.*}" + echo "previous version ${previous} found - uninstalling" + removepkg $previous + rm -f $file +else + echo "no previous version found - first time install" +fi + + + + +&releaseURL; +&md5; + + + + +**rip** + +rip is a command-line deletion tool focused on safety, ergonomics, and performance. It favors a simple interface, and does not implement the xdg-trash spec or attempt to achieve the same goals. + +Deleted files get sent to the graveyard (`/tmp/graveyard-$USER` by default, see notes on changing this) under their absolute path, giving you a chance to recover them. No data is overwritten. If files that share the same path are deleted, they will be renamed as numbered backups. + +For more information see the [rip repository](https://github.com/nivekuil/rip). + + + + + +echo "*** Removing rip ***" + +# Remove plugin related files +removepkg &name;-&version; + +rm -rf &emhttp; +rm -rf &plugin; + +echo +echo "*** Successfully removed rip ***" + + + diff --git a/unraid-rip.png b/unraid-rip.png new file mode 100644 index 0000000000000000000000000000000000000000..8b2212587734d0599a0b54964b5cc24fc1c9221c GIT binary patch literal 3048 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 F`X9f&tSJBh literal 0 HcmV?d00001 diff --git a/usr/local/emhttp/plugins/unraid-rip/images/unraid-rip.png b/usr/local/emhttp/plugins/unraid-rip/images/unraid-rip.png new file mode 100644 index 0000000000000000000000000000000000000000..8b2212587734d0599a0b54964b5cc24fc1c9221c GIT binary patch literal 3048 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 F`X9f&tSJBh literal 0 HcmV?d00001