]> gitweb.fluxo.info Git - trashman.git/commitdiff
Adds hoarder for local installs
authorSilvio Rhatto <rhatto@riseup.net>
Sat, 7 Apr 2018 13:25:03 +0000 (10:25 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Sat, 7 Apr 2018 13:25:03 +0000 (10:25 -0300)
README.md
TODO.md
hoarder [new symlink]
share/hoarder/mps-youtube/info [new file with mode: 0644]
share/hoarder/mps-youtube/unix/linux/debian/install [new file with mode: 0755]
share/hoarder/rainbowstream/info [new file with mode: 0644]
share/hoarder/rainbowstream/unix/linux/debian/install [new file with mode: 0755]
share/trashman/trashman/debian
share/trashman/trashman/functions
trashman

index 5e351d4905db1ff2556a5be6ccc3f38b009799de..cf9abc738a2649a025ddda7917eee54e688e1e1e 100644 (file)
--- a/README.md
+++ b/README.md
@@ -32,6 +32,13 @@ you have to add files into `/etc/apt/trusted.gpg.d`, `trashman` will provide tho
 keys or fingerprints instead of donwloading it from somewhere, in which case it could
 be easily tampered.
 
+## Hoarder
+
+Hoarder is trashman's companion, an equivalent script intended to install packages
+locally, at the current user's folder:
+
+    hoarder install <package>
+
 ## Features
 
 * Multi-arch, multi-OS: you might code packages for any distro,
diff --git a/TODO.md b/TODO.md
index 0b643cfe34683e40d4a87244affa16f80ff367c4..371a7a71f22ead160132c96cf4884050290494ac 100644 (file)
--- a/TODO.md
+++ b/TODO.md
@@ -1,6 +1,7 @@
 TODO
 ====
 
-* Multi-licensing and note on the lack of licensing for some scripts.
 * Support more OSes at `__trashman_distro()`.
 * Argument passing to distro/action scripts as `--param=value`.
+* Run check action (if available) before testing/installing/removing.
+* Multi-licensing and note on the lack of licensing for some scripts.
diff --git a/hoarder b/hoarder
new file mode 120000 (symlink)
index 0000000..aa65f72
--- /dev/null
+++ b/hoarder
@@ -0,0 +1 @@
+trashman
\ No newline at end of file
diff --git a/share/hoarder/mps-youtube/info b/share/hoarder/mps-youtube/info
new file mode 100644 (file)
index 0000000..1a8b940
--- /dev/null
@@ -0,0 +1 @@
+terminal based youtube player and downloader
diff --git a/share/hoarder/mps-youtube/unix/linux/debian/install b/share/hoarder/mps-youtube/unix/linux/debian/install
new file mode 100755 (executable)
index 0000000..46781af
--- /dev/null
@@ -0,0 +1,11 @@
+#!/usr/bin/env sh
+#
+# Install mps-youtube
+# https://github.com/mps-youtube/mps-youtube
+
+# Requirements
+trashman_apt_install_packages python3-pip mpv
+pip3 install --user youtube-dl
+
+# Install
+pip3 install --user -U git+https://github.com/mps-youtube/mps-youtube.git
diff --git a/share/hoarder/rainbowstream/info b/share/hoarder/rainbowstream/info
new file mode 100644 (file)
index 0000000..02c86c9
--- /dev/null
@@ -0,0 +1 @@
+a smart and nice twitter client on terminal written in python
diff --git a/share/hoarder/rainbowstream/unix/linux/debian/install b/share/hoarder/rainbowstream/unix/linux/debian/install
new file mode 100755 (executable)
index 0000000..aa46b9a
--- /dev/null
@@ -0,0 +1,10 @@
+#!/usr/bin/env sh
+#
+# Install rainbowstream
+# https://github.com/orakaro/rainbowstream
+
+# Requirements
+trashman_apt_install_packages python-pip python-dev libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev
+
+# Install
+pip install --user rainbowstream
index abf26126e327cbecc0f67e9884e9b3981be0c41a..1bdd50411522bfad5c4a7a9d53bb4344d4eccf48 100644 (file)
@@ -3,12 +3,16 @@
 # Custom functions for debian-like systems.
 #
 
+trashman_apt_update() {
+  $SUDO apt-get update
+}
+
 trashman_apt_install() {
   if [ -z "$1" ]; then
     return
   fi
 
-  LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -y $*
+  LC_ALL=C DEBIAN_FRONTEND=noninteractive $SUDO apt-get install -y $*
 }
 
 # Machine architecture
@@ -41,12 +45,14 @@ trashman_apt_install_packages() {
     return
   fi
 
+  trashman_apt_update
+
   for package in $*; do
     trashman_apt_check $package
 
     if [ "$?" = "1" ]; then
       trashman_echo "Installing package $package..."
-      DEBIAN_FRONTEND=noninteractive apt-get install $package -y || exit 1
+      DEBIAN_FRONTEND=noninteractive $SUDO apt-get install $package -y || exit 1
     fi
   done
 }
@@ -60,6 +66,6 @@ trashman_install_apt_key() {
     exit 1
   fi
 
-  cp $orig /etc/apt/trusted.gpg.d/$dest || exit 1
-  chown root.root /etc/apt/trusted.gpg.d/$dest && chmod 644 /etc/apt/trusted.gpg.d/$dest || exit 1
+  $SUDO cp $orig /etc/apt/trusted.gpg.d/$dest || exit 1
+  $SUDO chown root.root /etc/apt/trusted.gpg.d/$dest && $SUDO chmod 644 /etc/apt/trusted.gpg.d/$dest || exit 1
 }
index 7478322285117cf85fb2e50c11c78e4037055007..a870736f93857a684e89bbbd0f5b1a09aff1c90d 100644 (file)
@@ -217,3 +217,10 @@ trashman_check_root() {
     exit 1
   fi
 }
+
+# Check for sudo
+trashman_check_sudo () {
+  if [ "`whoami`" != "root" ]; then
+    SUDO="sudo"
+  fi
+}
index 34a1247d97a0eb5fc4505936f158da49f986f234..4758a212445b8656870af0f94cd40e5c7a003cf7 100755 (executable)
--- a/trashman
+++ b/trashman
@@ -1,6 +1,6 @@
 #!/usr/bin/env sh
 #
-# Provision: install stuff using scripts.
+# trashman handles junky software
 #
 # Copyright (C) 2017 Silvio Rhatto - rhatto at riseup.net
 #
@@ -27,14 +27,16 @@ CWD="`pwd`"
 # Set shared files location
 if [ -e "`dirname $(readlink -f $0)`/share/$NAME" ]; then
   # Development or local installation layout
-  SHARE="`dirname $(readlink -f $0)`/share/$NAME"
+  LIB="`dirname $(readlink -f $0)`/share/$NAME"
+  SHARE="`dirname $(readlink -f $0)`/share/$BASENAME"
 else
   # System installation layout
-  SHARE="`dirname $(readlink -f $0)`/../share/$NAME"
+  LIB="`dirname $(readlink -f $0)`/../share/$NAME"
+  SHARE="`dirname $(readlink -f $0)`/../share/$BASENAME"
 fi
 
 # Include basic functions
-. $SHARE/trashman/functions || exit 1
+. $LIB/trashman/functions || exit 1
 
 # Display usage
 trashman_usage() {
@@ -79,7 +81,11 @@ else
         folder="`trashman_actions_folder $package`"
 
         # Checking for privileges
-        trashman_check_root $ACTION
+        if [ "$BASENAME" == "trashman" ]; then
+          trashman_check_root $ACTION
+        else
+          trashman_check_sudo
+        fi
 
         if [ -x "$SHARE/$package/$folder/$ACTION" ]; then
           if [ "$ACTION" != "check" ] && [ "$ACTION" != "test" ]; then